迴圈神經(LSTM)網路學習總結

2022-01-10 08:23:48 字數 2393 閱讀 9396

摘要:

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神經網路

在傳統神經網路中,模型不會關注上一時刻的處理會有什麼資訊可以用於下一時刻,每一次都只會關注當前時刻的處理。舉個例子來說,我們想對一部影片中每一刻出現的事件進行分類,如果我們知道電影前面的事件資訊,那麼對當前時刻事件的分類就會非常容易。實際上,傳統神經網路沒有記憶功能,所以它對每一刻出現的事件進行分類...