LSTM(Long short-Term Memory)長短期記憶網

本文是看了[譯] 理解 LSTM(Long Short-Term Memory, LSTM) 網絡之後寫的筆記。

1.Long Short Term 網絡—— 一般就叫做 LSTM ——是一種 RNN 特殊的類型,可以學習長期依賴信息。

LSTM 通過刻意的設計來避免長期依賴問題。記住長期的信息在實踐中是 LSTM 的默認行爲,而非需要付出很大代價才能獲得的能力!

所有 RNN 都具有一種重複神經網絡模塊的鏈式的形式。在標準的 RNN 中,這個重複的模塊只有一個非常簡單的結構,例如一個 tanh 層。


LSTM 同樣是這樣的結構,但是重複的模塊擁有一個不同的結構。不同於 單一神經網絡層,這裏是有四個,以一種非常特殊的方式進行交互。


2.LSTM 的核心思想

LSTM 的關鍵就是細胞狀態,水平線在圖上方貫穿運行。

細胞狀態類似於傳送帶。直接在整個鏈上運行,只有一些少量的線性交互。信息在上面流傳保持不變會很容易。

細胞狀態流轉

控結構

LSTM 使用“門”的結構來去除或者增加信息細胞狀態的能力。門是一種讓信息選擇式通過的方法
包含sigmoid 神經網絡層和一個 pointwise乘法操作[0,1]
Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”!
LSTM 擁有三個門,來保護和控制細胞狀態:輸入門、輸出門、遺忘門
3.逐步理解 LSTM
(1)遺忘門(忘記門)
在我們 LSTM 中的第一步是決定我們會從細胞狀態中丟棄什麼信息。這個決定通過一個稱爲忘記門層完成。該門會讀取h_{t-1}x_t,輸出一個在 0 到 1 之間的數值給每個在細胞狀態C_{t-1}中的數字。1 表示“完全保留”,0 表示“完全捨棄”。

(2)輸入門
確定什麼樣的新信息被存放在細胞狀態中。這裏包含兩個部分
Ø第一sigmoid稱“輸入門層” 決定什麼值我們將要更新
Ø第二,tanh創建一個新的候選值向量,\tilde{C}_t,會被加入到狀態中
以語言模型爲例,我們希望增加新的代詞細胞狀態中,來替代舊忘記代詞

(3)更新細胞狀態

現在是更新舊細胞狀態的時間了,C_{t-1}更新爲C_t。前面的步驟已經決定了將會做什麼,我們現在就是實際去完成。
我們把舊狀態與f_t相乘,丟棄掉我們確定需要丟棄的信息。接着加上i_t * \tilde{C}_t。這就是新的候選值,根據我們決定更新每個狀態的程度進行變化。

具體操作:把舊狀態與f_t相乘,丟棄掉我們確定需要丟棄的信息;接着加上新的候選信息,即i_t* \tilde{C}_t

在語言模型的例子中,這就是我們實際根據前面確定的目標,丟棄舊代詞的性別信息並添加新的信息的地方。



(4)更新細胞狀態,輸出門

最終,我們需要確定輸出什麼值。這個輸出將會基於我們的細胞狀態,但是也是一個過濾後的版本。

輸出信息:輸出“過濾後”的細胞狀態。首先,我們運行一個sigmoid層(輸出門)來確定細胞狀態的哪個部分將輸出出去。接着,我們把細胞狀態通過tanh進行處理(得到一個在-11之間的值)並將它sigmoid的輸出相乘得到輸出信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章