理解LSTM
本文基于Understanding-LSTMs進行概括整理,對LSTM進行一個簡單的介紹
什么是LSTM
LSTM(Long Short Term Memory networks)可以解決傳統RNN的長期依賴(long-term dependencies)問題。它對傳統RNN的隱層進行了結構上的改進。
LSTM的內部結構
這是傳統的RNN的結構,內部有一個tanh層
LSTM和傳統RNN結構類似,然而內部結構卻有所不同
圖中所示的水平線就是LSTM中的狀態信息,可以把這個理解為記憶(memory)
下面介紹門的概念,LSTM中的門可以選擇性的控制信息的流動,通常由一個sigmoid神經網絡層和一個point wise(或者叫element wise)的乘法操作組成。
LSTM中有三種門:
遺忘門:
可以看到這里的\(f_{t}\)由輸入的\(x_t\)和\(h_{t-1}\)得到,用來控制\(C_{t-1}\)中的信息的遺忘程度。\(f_{t}\)中的每個值都是0-1中的一個數,下界0代表完全遺忘,上界1代表完全不變。輸入門:
遺忘門決定了歷史狀態信息的遺忘程度,那么輸入門的作用就是往狀態信息中添加新東西。同樣,由輸入的\(x_t\)和\(h_{t-1}\)得到當前的\(i_t\)用以控制新狀態信息的更新程度。這里新狀態信息\(\tilde{C}\)也是通過輸入的\(x_t\)和\(h_{t-1}\)計算得出。
那么當前新的狀態信息\(C_t\)就很顯然可以通過上式計算得出,通俗的說就是遺忘一些舊信息,更新一些新信息進去。
- 輸出門:
最后就是輸出門了。類似地,根據\(x_t\)和\(h_{t-1}\)得出\(o_{t}\)用以控制哪些信息需要作為輸出。
概括一下:
- 狀態信息\(C_t\)的依賴于遺忘門\(f_t\)和輸入門\(i_t\)
- 遺忘門\(f_t\)和輸入門\(i_t\)依賴于輸入參數中的\(h_{t-1}\)
- 而當前隱層輸出\(h_t\)依賴于\(C_t\)
LSTM的一些變種
增加peephole connections
Gers & Schmidhuber (2000)提出的增加peephole connections
圖中所示,在所有的門之前都與狀態線相連,使得狀態信息對門的輸出值產生影響。但一些論文里只是在部門門前加上這樣的連接,而不是所有的門
耦合遺忘門和輸入門
這一種變體是將遺忘門和輸入門耦合在一起,簡單來說就是遺忘多少就更新多少新狀態,沒有遺忘就不更新狀態,全部遺忘那就新狀態全部更新進去。
GRU
這是目前比較流行的LSTM變種,不僅將遺忘門和輸入門統一為更新們,而且將h和c也給合并了。可參考Cho, et al. (2014)
參考
Understanding-LSTMs
轉載于:https://www.cnblogs.com/micrari/p/9222297.html
總結
- 上一篇: 《SaltStack技术入门与实践》——
- 下一篇: ReactiveStream01