【神經網路篇】--RNN遞迴神經網路初始與詳解

LHBlog發表於2018-05-13

一、前述

傳統的神經網路每個輸入節點之間沒有聯絡,

 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為例

E3t0t3時刻xW共同確定 Δ 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更實用。

 

相關文章