非監督特徵學習與深度學習(十五)--------長短記憶(Long Short Term Memory,LSTM)
LSTM
LSTM概述
長短記憶(Long Short Term Memory,LSTM)是一種 RNN 特殊的型別,可以學習長期依賴資訊,它引入了自迴圈的巧妙構思,以產生梯度長時間持續流動的路徑,解決RNN梯度消失或爆炸的問題。在手寫識別、機器翻譯、語音識別等應用上,LSTM 都取得相當巨大的成功,並得到了廣泛的使用。
LSTM迴圈網路除了外部的RNN迴圈外,還具有內部的“LSTM細胞”自迴圈,和RNN相比LSTM每個單元有相同的輸入和輸出引數,但也有更多的引數和控制資訊流流動的門控單元系統,門控單元包括輸入門、輸出門、遺忘門。模型圖如下: 如上圖所示,檢視時刻的細胞狀態,細胞彼此迴圈連線,代替一般迴圈網路中的普通的隱藏單元。這裡使用人工的神經元計算輸入特徵,如果sigmoid輸入門允許,它的值可以累加到狀態。狀態單元具有線性自迴圈,其權重由遺忘門控制。細胞的輸出可以被輸出門關閉。所有的門控單元都具有sigmoid非線性,而輸入單元具有任意的壓縮非線性。狀態單元也可以作為門空單元的額外輸入。
LSTM核心思想
LSTM的主要思想是採用一個叫做“細胞狀態(state)”的通道來貫穿整個時間序列。
通過精心設計“門”的結構來去除或增加資訊到細胞狀態的能力。門是一種讓資訊選擇式通過的方法。它們包含一個 sigmoid 神經網路層和一個逐元乘法操作。
Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”。LSTM 擁有三個門,來保護和控制細胞狀態。下面詳細介紹LSTM三個門控。
遺忘門
- “遺忘門”決定之前狀態中的資訊有多少應該捨棄。它會讀取 和 的內容,符號代表Sigmoid函式,它會輸出一個0到1之間的值。其中0代表捨棄之前細胞狀態中的內容,1代表完全保留之前細胞狀態中的內容。0、1之間的值代表部分保留之前細胞狀態中的內容。
在我們 LSTM 中的第一步是決定我們會從細胞狀態中丟棄什麼資訊。這個決定通過一個稱為忘記門層完成。該門會讀取 h_{t-1} 和 x_t,輸出一個在 0 到 1 之間的數值給每個在細胞狀態 C_{t-1} 中的數字。1 表示“完全保留”,0 表示“完全捨棄”。
輸入門
- “輸入門”決定什麼樣的資訊保留在細胞狀態中,它會讀取 和 的內容,符號代表Sigmoid函式,它會輸出一個0到1之間的值。
- 和“輸入門”配合的還有另外一部分,即下圖中計算tanh層的部分,這部分輸入也是 和 ,不過採用tanh啟用函式,將這部分標記為,稱作為“候選狀態”。
細胞狀態更新
- 由 計算得到
- 舊“細胞狀態”和“遺忘門”的結果進行計算,決定舊的“細胞狀態”保留多少,忘記多少。接著“輸入門”和候選狀態進行計算,將所得到的結果加入到“細胞狀態”中,這表示新的輸入資訊有多少加入到“細胞狀態中”。
輸出門
- 和其他門計算一樣,它會讀取 和 的內容,然後計算Sigmoid函式,得到“輸出門”的值。接著把“細胞狀態”通過tanh進行處理(得到一個在-1到1之間的值),並將它和輸出門的結果相乘,最終得到確定輸出的部分。