深度學習與神經網路(八) 迴圈神經網路RNN

2021-10-06 08:48:21 字數 1359 閱讀 3141

首先看乙個簡單案例,在某寶的好評/差評檢測中,系統要能夠分析使用者的評價是好評還是差評,那怎樣處理這樣的評價資料呢,例如有一條評價「i hate this boring movie」

機器怎樣解決這樣的問題呢

首先我們在之前的時間序列表示中已經知道了怎樣對乙個單詞進行表示。如果使用glove的話,整句話會表示成乙個[5,100]的tensor

(100是glove規定的) 

我們最簡單的方式是,將這個100維的tensor和乙個線性層相連線來提取其特徵

但這種方式有明顯的缺陷

①如果句子的單詞過長,或者是**這樣的,那麼需要的[w,b]參數量就會非常大

②更為致命的是,我們人類說話是由上下語境資訊的,上一句話說的什麼,下一句話說的什麼,需要聯合起來做乙個語句的推斷。比如「我不喜歡你」,如果只是看到喜歡的話還以為是喜歡呢,所以肯定不能乙個單詞乙個單詞得去分析。所以我們相當於是需要乙個consistent memory

改用權值共享的方式

這是使用了卷積神經網路的weigth sharing的思路,所有單詞的[w,b]都是相同的,來嘗試減少網路的參數量

這代表著我這個線性層的抽取特徵的能力是針對於所有單詞的

這在一定程度上解決了長句子引數量過大的問題

用乙個持續的單元貫穿整個網路,能儲存語境資訊

h單元的功能就是類似memory

摺疊形式的表示形式

非摺疊形式

這兩種方式是等價的

最後的輸出到底是用哪個h完全由自己決定,可以只採用最後時間的ht,也可以把每個時間的ht綜合起來做乙個聚合

rnn和cnn的區別

cnn就是一股腦地往前傳,rnn會不停地自我更新

rnn的啟用函式是tanh,而cnn是relu/sigmoid

whh和wxh整個過程都是一樣的,權值共享

第八章 深度學習之迴圈神經網路與遞迴神經網路

recurrent 時間維度的展開,代表資訊在時間維度從前往後的的傳遞和積累,可以模擬markov假設,後面的資訊的概率建立在前面資訊的基礎上,在神經網路結構上表現為後面的神經網路的隱藏層的輸入是前面的神經網路的隱藏層的輸出 recursive 空間維度的展開,是乙個樹結構,比如nlp裡某句話,用r...

機器學習,深度學習,神經網路,深度神經網路

先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...

(pytorch 深度學習)深度迴圈神經網路

迴圈神經網路只有乙個單向的隱藏層,在深度學習應用裡,我們通常會用到含有多個隱藏層的迴圈神經網路,也稱作深度迴圈神經網路。下圖演示了乙個有l ll個隱藏層的深度迴圈神經網路,每個隱藏狀態不斷傳遞至當前層的下一時間步和當前時間步的下一層。具體來說 第1隱藏層的隱藏狀態和之前的計算一樣 h t 1 xtw...