摘要:
1.演算法概述
2.演算法要點與推導
3.演算法特性及優缺點
4.注意事項
5.實現和具體例子
6.適用場合
內容:1.演算法概述
長短期記憶網路(long short term memory networks) 通常叫做 「lstm」,由hochreiter & schmidhuber (1997)提出,乙個lstm cell圖示如下:
現在,我們先來定義一下用到的符號:
在網路結構圖中,每條線都傳遞著乙個向量。其中上面一條直線表示lstm的狀態向量的傳遞;下面一條直線表示由lstm的上一層輸出和這一層輸入組成的合併向量的傳遞;
粉紅色的圓圈表示逐點操作,這裡涉及到1.兩個輸入向量各個元素相加;2.兩個輸入向量各個元素相乘,即矩陣的哈達瑪積(hadamard product)。
黃色的矩形框表示的是乙個神經網路層(就是很多個神經節點);
合併的線表示把兩條線上所攜帶的向量進行合併ht−
1'>x
t'>[ht
−1,x
t]'>;
分開的線表示將線上傳遞的向量複製乙份,傳給兩個地方。
乙個lstm cell是由3個門限結構和1個狀態向量傳輸線組成的,門限分別是遺忘門,傳入門,輸出門;
其中狀態向量傳輸線負責長程記憶,因為它只做了一些簡單的線性操作;3個門限負責短期記憶的選擇,因為門限設定可以對輸入向量做刪除或者新增操作;ht
−1'> 1.1遺忘門:ht
−1'> 遺忘門ht
−1'>ht−
1'>是通過乙個sigmoid 神經層來實現的。 0 表示「不讓任何資訊通過」, 1 表示「讓所有資訊通過」。它的作用是要ht−
1'>決定讓哪些資訊繼續通過這個 cell。ht
1.2傳入門:
傳入門實現需要兩個步驟:首先,乙個sigmoid 層決定哪些資訊需要更新;乙個 tanh 層生成乙個備選的用來更新的內容;再c
t~'>下一步,我們把這兩部分聯合(向量點乘)起來,對 cell 的狀態進行乙個更新。它的作用是決定讓多少新的資訊加入到 cell 狀態中來。ct
1.3輸出門
輸出門實現需要兩個步驟:首先通過c
t'>c
t'>乙個sigmoid層來決定c
t'>哪部分資訊會被輸出;
接著,我們把狀態向量c
t'>通過乙個 tanh 層,然後把 tanh 層的輸出和 sigmoid 層計算出來的權重相乘,這樣就得到了最後輸出的結果。ct
'>c
t'>c
t'>c
t'>輸出門的作用是決定輸出什麼值。
1.4 lstm cell狀態更新:
首先我們把舊的狀態和遺忘門的輸出相乘, 把一些不想保留的資訊忘掉;然後加上輸入門的輸出,這部分資訊就是我們要新增的新內容。
2.演算法要點與推導
符號說明:這裡的「*」代表矩陣的哈達瑪積(hadamard product)
2.1lstm前向傳播公式:
其中設計到引數wf,wi,wc,wo,bf,bi,bc,bo
2.2lstm後向傳播公式:
rnn推導
lstm推導
(譯)理解 lstm 網路 (understanding lstm networks by colah)
3.演算法特性及優缺點
優點:可以擬合序列資料,通過遺忘門和輸出門忘記部分資訊來解決梯度消失的問題。
缺點:4.注意事項
5.實現和具體例子
《tensorflow實戰》實現lstm處理ptb資料
《tensorflow實戰》實現bilstm處理mnist資料
6.適用場合
迴圈神經網路與LSTM
是t時刻的輸入,例如單詞中相應的one hot向量st st是t時刻的隱狀態 memory 基於上一時刻的隱狀態和當前輸入得到 st f ux t ws t 1 st f uxt wst 1 其中f f一般是非線性的啟用函式,在計算s0s0 時,即第乙個單詞的隱藏層狀態,需要用到s 1 s 1,但是...
迴圈神經網路與LSTM
txt 是t時刻的輸入,例如單詞中相應的one hot向量st st是t時刻的隱狀態 memory 基於上一時刻的隱狀態和當前輸入得到 st f ux t ws t 1 st f uxt wst 1 其中f f一般是非線性的啟用函式,在計算s0s0 時,即第乙個單詞的隱藏層狀態,需要用到s 1 s ...
LSTM神經網路
在傳統神經網路中,模型不會關注上一時刻的處理會有什麼資訊可以用於下一時刻,每一次都只會關注當前時刻的處理。舉個例子來說,我們想對一部影片中每一刻出現的事件進行分類,如果我們知道電影前面的事件資訊,那麼對當前時刻事件的分類就會非常容易。實際上,傳統神經網路沒有記憶功能,所以它對每一刻出現的事件進行分類...