理解LSTM

本文主要參考這篇文章

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容