本文主要參考這篇文章
Recurrent Neural Networks
遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)主要用于對序列數(shù)據(jù)進行建模和預(yù)測。它允許狀態(tài)不斷轉(zhuǎn)移和留存,這點與HMM有點類似。

通常一個RNN網(wǎng)絡(luò)可以展開為:

Long-Term 依賴的問題
對于一個長序列,RNN將難以有效的傳遞信息:

LSTM 網(wǎng)絡(luò)
所有的RNN網(wǎng)絡(luò)都有一個鏈式的重復(fù)結(jié)構(gòu)。對于一個標準RNN來說,它的重復(fù)部分比較簡單,比如只含有一個tanh層:

而LSTM網(wǎng)絡(luò)則有一個相對復(fù)雜的結(jié)構(gòu):

LSTM的基本思想
核心是memory cel l(記憶單元)。這個記憶單元就像傳送帶一樣將遠處的信息傳遞過來:

它的巧妙之處在于利用了一個遺忘門和輸入門來控制memory的傳遞衰減和信息的流入。

一步步構(gòu)建LSTM
首先需要利用遺忘門(forget gate layer)決定多少信息需要繼續(xù)傳遞。遺忘門的輸出在[0,1]之間,0表示徹底遺忘,1表示不遺忘。

接下來利用輸入門(input gate layer)決定加入多少新信息。輸入門的輸出也在[0,1]之間。

然后是狀態(tài)記憶單元C的狀態(tài)更新:

最后是輸出部分。這里利用輸出門(output gate layer)決定將多少記憶信息輸出為隱含狀態(tài)。tanh用于將記憶信息映射到[-1,1]之間。

一些變體
LSTM有相當多的變體,這里列舉一二。
例如這篇文章,增加了‘peephole connections’,就是每個門的計算都基于已知的所有變量。

這是一個耦合的版本,就是將遺忘和輸入的計算結(jié)合到一起。

更加引人注意的是Gated Recurrent Unit(GRU)網(wǎng)絡(luò)。這個網(wǎng)絡(luò)直接采用updata gate更新隱含狀態(tài)。相當于把輸出門的公式也做了改變。

結(jié)論
最近,還有更多激動人心的最新進展,比如Attention RNN,Grid LSTM,Generative models