本文基於Understanding-LSTMs進行歸納整理,對LSTM進行一個簡單的介紹git
LSTM(Long Short Term Memory networks)能夠解決傳統RNN的長期依賴(long-term dependencies)問題。它對傳統RNN的隱層進行告終構上的改進。github
這是傳統的RNN的結構,內部有一個tanh層
LSTM和傳統RNN結構相似,然而內部結構卻有所不一樣網絡
圖中所示的水平線就是LSTM中的狀態信息,能夠把這個理解爲記憶(memory)post
下面介紹門的概念,LSTM中的門能夠選擇性的控制信息的流動,一般由一個sigmoid神經網絡層和一個point wise(或者叫element wise)的乘法操做組成。
spa
LSTM中有三種門:blog
遺忘門:
能夠看到這裏的\(f_{t}\)由輸入的\(x_t\)和\(h_{t-1}\)獲得,用來控制\(C_{t-1}\)中的信息的遺忘程度。\(f_{t}\)中的每一個值都是0-1中的一個數,下界0表明徹底遺忘,上界1表明徹底不變。ci
輸入門:
遺忘門決定了歷史狀態信息的遺忘程度,那麼輸入門的做用就是往狀態信息中添加新東西。一樣,由輸入的\(x_t\)和\(h_{t-1}\)獲得當前的\(i_t\)用以控制新狀態信息的更新程度。這裏新狀態信息\(\tilde{C}\)也是經過輸入的\(x_t\)和\(h_{t-1}\)計算得出。element
那麼當前新的狀態信息\(C_t\)就很顯然能夠經過上式計算得出,通俗的說就是遺忘一些舊信息,更新一些新信息進去。get
歸納一下:it
Gers & Schmidhuber (2000)提出的增長peephole connections
圖中所示,在全部的門以前都與狀態線相連,使得狀態信息對門的輸出值產生影響。但一些論文裏只是在部門門前加上這樣的鏈接,而不是全部的門
這一種變體是將遺忘門和輸入門耦合在一塊兒,簡單來講就是遺忘多少就更新多少新狀態,沒有遺忘就不更新狀態,所有遺忘那就新狀態所有更新進去。
這是目前比較流行的LSTM變種,不只將遺忘門和輸入門統一爲更新們,並且將h和c也給合併了。可參考Cho, et al. (2014)