用於解決輸入資料為,序列到序列(時間序列)資料,不能在傳統的前饋神經網路(FNN)很好應用的問題。時間序列資料是指在不同時間點上收集到的資料,這類資料反映了某一事物、現象等隨時間的變化狀態或程度,即輸入內容的上下文關聯性強。
x、o為向量,分別表示輸入層、輸出層的值;U、V為權重矩陣,U是輸入層到隱藏層的權重矩陣,V是隱藏層到輸出層的權重矩陣,W 是上一次的值 S(t-1) 作為這一次的輸入的權重矩陣,S(t)是當前的隱藏層矩陣。
MatMul表示矩陣乘積。
這裡的h也就是s,都是RNN層函數的輸出結果。RNN層的處理常式是tanh,輸出結果是h,因此RNN層具有"狀態",這也是其具有記憶性的原因。
RNN隱藏層的輸出結果,也被稱為隱藏狀態或是隱藏狀態向量,一般用h或s表示。
藍線表示反向傳播的線路圖
由於啟用函數Tanh其反向傳播時,會導致梯度為0或趨於很大的數值,導致梯度消失或爆炸。
通過引入輸入門、遺忘門和輸出門,解決RNN模型下帶來的梯度消失的問題。
輸出門的結果用o來表示,其計算公式如下:
遺忘門的結果用f表示,其計算公式如下:
輸入門的結果用i表示,其計算公式如下:
遺忘門從上一時刻的記憶單元中刪除了應該忘記的東西,但需要新增一些應當記住的新資訊,新的記憶單元g,其計算公式如下:
要注意的是,不同的門輸出所代表的意義不一樣,因為其最後流向的地方不一樣,分別是轉換為了新的記憶單元c,新的隱藏狀態h。
最終彙總後的整體結構如下
藍線代表反向傳播路徑,記憶單元的反向傳播僅流過「+」和「×」節點。「+」節點將上游傳來的梯度原樣流出,所以梯度沒有變化(退化)。
LSTM的優化可以從三個方面