一、前述
傳統的神經網路每個輸入節點之間沒有聯絡,
RNN (對中間資訊保留):
由圖可知,比如第二個節點的輸入不僅依賴於本身的輸入U1,而且依賴上一個節點的輸入W0,U0,同樣第三個節點依賴於前兩個節點的輸入,
假設每一個節點分別代表著“我出生在中國,我說——”的一個預測,則“說”後面則是依賴於前面的說的每個單詞的所有組合。
xt表示第t,t=1,2,3...步(step)的輸入
st為隱藏層的第t步的狀態,它是網路的記憶單元。
st=f(Uxt+Wst−1),其中f一般是非線性的啟用函式。
ot是第t步的輸出,如下個單詞的向量表示softmax(Vst)(多分類)。
二、具體
1、遞迴神經網路的反向傳播
損失函式有多個,以E3為例
E3由t0-t3時刻x,W共同確定 Δ W的確定要考慮E3在各個時刻對w導數。
t3:
t2:
t1:
不僅更新當前節點的輸入梯度,還更新當前節點的所有記憶單元,一直傳播下去。
2、RNN侷限性問題
I am Chines, I Love China
遞迴神經網路引數太多,資訊量冗餘(因為最後的預測可能只 依賴它最近的詞,但我們輸入的時候是所有的詞,所以資訊量冗餘)、梯度消失或者爆炸。
3、LSTM(長短記憶網路)
為了解決RNN的一些缺點,RNN與LSTM對比
C:控制引數
決定什麼樣的資訊會被保留什麼樣的會被遺忘
具體操作:
門是一種讓資訊選擇式通過的方法sigmoid 神經網路層和一乘法操作。
Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”!
Sigmoid函式
具體過程:
丟棄的資訊:
先把當前節點的輸入和之前記憶的輸入傳遞進來,然後通過sigmod函式組合起來後得到的函式值(0,1)之間,然後再跟Ct-1組合,決定丟棄什麼資訊。Ct是永遠更新維護的值。
保留的資訊:
最後總的資訊:
分兩部分,遺忘的資訊Cti-1和保留Ct的資訊。先走遺忘的資訊,再走保留的資訊。Ct從開始到最後一直更新。
輸出:
LSTM整體架構:
與RNN對比會有一部分資訊保留,一部分資訊丟棄。LSTM比RNN更實用。