1. 程式人生 > >非監督特徵學習與深度學習(十五)--------長短記憶(Long Short Term Memory,LSTM)

非監督特徵學習與深度學習(十五)--------長短記憶(Long Short Term Memory,LSTM)

LSTM

LSTM概述

  長短記憶(Long Short Term Memory,LSTM)是一種 RNN 特殊的型別,可以學習長期依賴資訊,它引入了自迴圈的巧妙構思,以產生梯度長時間持續流動的路徑,解決RNN梯度消失或爆炸的問題。在手寫識別、機器翻譯、語音識別等應用上,LSTM 都取得相當巨大的成功,並得到了廣泛的使用。

  LSTM迴圈網路除了外部的RNN迴圈外,還具有內部的“LSTM細胞”自迴圈,和RNN相比LSTM每個單元有相同的輸入和輸出引數,但也有更多的引數和控制資訊流流動的門控單元系統,門控單元包括輸入門、輸出門、遺忘門。模型圖如下: rnn   如上圖所示,檢視X

t時刻的細胞狀態,細胞彼此迴圈連線,代替一般迴圈網路中的普通的隱藏單元。這裡使用人工的神經元計算輸入特徵,如果sigmoid輸入門允許,它的值可以累加到狀態。狀態單元具有線性自迴圈,其權重由遺忘門控制。細胞的輸出可以被輸出門關閉。所有的門控單元都具有sigmoid非線性,而輸入單元具有任意的壓縮非線性。狀態單元也可以作為門空單元的額外輸入。

LSTM核心思想

LSTM的主要思想是採用一個叫做“細胞狀態(state)”的通道來貫穿整個時間序列。

rnn

  通過精心設計“門”的結構來去除或增加資訊到細胞狀態的能力。門是一種讓資訊選擇式通過的方法。它們包含一個 sigmoid 神經網路層和一個逐元乘法操作。

                   rnn

  Sigmoid 層輸出 0 到 1 之間的數值,描述每個部分有多少量可以通過。0 代表“不許任何量通過”,1 就指“允許任意量通過”。LSTM 擁有三個門,來保護和控制細胞狀態。下面詳細介紹LSTM三個門控。

遺忘門

  • “遺忘門”決定之前狀態中的資訊有多少應該捨棄。它會讀取 ht1xt的內容,σ符號代表Sigmoid函式,它會輸出一個0到1之間的值。其中0代表捨棄之前細胞狀態Ct1中的內容,1代表完全保留之前細胞狀態Ct1中的內容。0、1之間的值代表部分保留之前細胞狀態Ct1中的內容。

rnn

在我們 LSTM 中的第一步是決定我們會從細胞狀態中丟棄什麼資訊。這個決定通過一個稱為忘記門層完成。該門會讀取 h_{t-1} 和 x_t,輸出一個在 0 到 1 之間的數值給每個在細胞狀態 C_{t-1} 中的數字。1 表示“完全保留”,0 表示“完全捨棄”。

輸入門

  • “輸入門”決定什麼樣的資訊保留在細胞狀態Ct中,它會讀取 ht1xt的內容,σ符號代表Sigmoid函式,它會輸出一個0到1之間的值。
  • 和“輸入門”配合的還有另外一部分,即下圖中計算tanh層的部分,這部分輸入也是ht1xt,不過採用tanh啟用函式,將這部分標記為c~(t),稱作為“候選狀態”。 rnn

細胞狀態更新

  • Ct1 計算得到Ct
  • 舊“細胞狀態”Ct1和“遺忘門”的結果進行計算,決定舊的“細胞狀態”保留多少,忘記多少。接著“輸入門”i(t)和候選狀態c~(t)進行計算,將所得到的結果加入到“細胞狀態”中,這表示新的輸入資訊有多少加入到“細胞狀態中”。 rnn

輸出門

  • 和其他門計算一樣,它會讀取 ht1xt的內容,然後計算Sigmoid函式,得到“輸出門”的值。接著把“細胞狀態”通過tanh進行處理(得到一個在-1到1之間的值),並將它和輸出門的結果相乘,最終得到確定輸出的部分。 rnn

參考