一、前述
傳統的神經網絡每個輸入節點之間沒有聯系,
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更實用。