【譯】理解LSTM(通俗易懂版)

循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)

人對(duì)一個(gè)問(wèn)題的思考不會(huì)完全從頭開(kāi)始。比如你在閱讀本片文章的時(shí),你會(huì)根據(jù)之前理解過(guò)的信息來(lái)理解下面看到的文字量承。在理解當(dāng)前文字的時(shí)候,你并不會(huì)忘記之前看過(guò)的文字匣掸,從頭思考當(dāng)前文字的含義播聪。

傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)并不能做到這一點(diǎn)椒振,這是在對(duì)這種序列信息(如語(yǔ)音)進(jìn)行預(yù)測(cè)時(shí)的一個(gè)缺點(diǎn)昭伸。比如你想對(duì)電影中的每個(gè)片段去做事件分類(lèi),傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)是很難通過(guò)利用前面的事件信息來(lái)對(duì)后面事件進(jìn)行分類(lèi)澎迎。

而循環(huán)神經(jīng)網(wǎng)絡(luò)(下面簡(jiǎn)稱(chēng)RNNs)可以通過(guò)不停的將信息循環(huán)操作庐杨,保證信息持續(xù)存在,從而解決上述問(wèn)題夹供。RNNs如下圖所示


1.png

可以看出A是一組神經(jīng)網(wǎng)絡(luò)(可以理解為一個(gè)網(wǎng)絡(luò)的自循環(huán))灵份,它的工作是不停的接收x_{t}并且輸出h_{t}。從圖中可以看出A允許將信息不停的再內(nèi)部循環(huán)哮洽,這樣使得它可以保證每一步的計(jì)算都保存以前的信息填渠。

這樣講可能還是有點(diǎn)暈,更好的理解方式鸟辅,也是很多文章的做法氛什,將RNNs的自循環(huán)結(jié)構(gòu)展開(kāi),像是將同一個(gè)網(wǎng)絡(luò)復(fù)制并連成一條線(xiàn)的結(jié)構(gòu)匪凉,將自身提取的信息傳遞給下一個(gè)繼承者枪眉,如下圖所示。


2.png

這種鏈?zhǔn)降慕Y(jié)構(gòu)揭示了RNNs與序列和列表類(lèi)型的數(shù)據(jù)密切相關(guān)再层。好像他們生來(lái)就是為了處理序列類(lèi)型數(shù)據(jù)的贸铜。

誰(shuí)說(shuō)不是呢!在過(guò)去的幾年里聂受,RNNs在語(yǔ)音識(shí)別蒿秦、文字建模、翻譯饺饭、字幕等領(lǐng)域有很成功的應(yīng)用渤早。在Andrej Karpathy寫(xiě)的博客 The Unreasonable Effectiveness of Recurrent Neural Networks中討論了RNNs取得的驚人成果,這里就不詳細(xì)討論了瘫俊。

很對(duì)成功的案例都有一個(gè)共性鹊杖,就是都用了一種叫LSTMs的特殊的RNNs網(wǎng)絡(luò)結(jié)構(gòu)。下面就來(lái)看看什么是LSTMs扛芽。

長(zhǎng)依賴(lài)存在的問(wèn)題

從之前的描述可以看出來(lái)骂蓖,RNNs理論上是可以將以前的信息與當(dāng)前的任務(wù)進(jìn)行連接,例如使用以前的視頻幀來(lái)幫助網(wǎng)絡(luò)理解當(dāng)前幀川尖。如果RNNs能做到這一點(diǎn)登下,那將會(huì)是非常的有用。但是他們能做到這點(diǎn)嗎?答案是不一定被芳。

有時(shí)候我們需要利用近期的信息來(lái)執(zhí)行來(lái)處理當(dāng)前的任務(wù)缰贝。例如,考慮用一個(gè)語(yǔ)言模型通過(guò)利用以前的文字信息來(lái)預(yù)測(cè)下一個(gè)文字畔濒。如果我們需要預(yù)測(cè)“the clouds are in the sky”這句話(huà)的最后一個(gè)字剩晴,我們不需要其他的信息,通過(guò)前面的語(yǔ)境就能知道最后一個(gè)字應(yīng)該是sky侵状。在這種情況下赞弥,相關(guān)信息與需要該信息的位置距離較近,RNNs能夠?qū)W習(xí)利用以前的信息來(lái)對(duì)當(dāng)前任務(wù)進(jìn)行相應(yīng)的操作趣兄。如下圖所示通過(guò)輸入的x_{1}绽左、x_{2}信息來(lái)預(yù)測(cè)出h_{3}

3.png

假設(shè)現(xiàn)在有個(gè)更為復(fù)雜的任務(wù),考慮到下面這句話(huà)“I grew up in France… I speak fluent French.”艇潭,現(xiàn)在需要語(yǔ)言模型通過(guò)現(xiàn)有以前的文字信息預(yù)測(cè)該句話(huà)的最后一個(gè)字拼窥。通過(guò)以前文字語(yǔ)境可以預(yù)測(cè)出最后一個(gè)字是某種語(yǔ)言,但是要猜測(cè)出French蹋凝,要根據(jù)之前的France語(yǔ)境闯团。這樣的任務(wù),不同之前仙粱,因?yàn)檫@次的有用信息與需要進(jìn)行處理信息的地方之間的距離較遠(yuǎn)房交,這樣容易導(dǎo)致RNNs不能學(xué)習(xí)到有用的信息,最終推導(dǎo)的任務(wù)可能失敗伐割。如下圖所示候味。


4.png

理論上RNNs是能夠處理這種“長(zhǎng)依賴(lài)”問(wèn)題的。通過(guò)調(diào)參來(lái)解決這種問(wèn)題隔心。但是在實(shí)踐過(guò)程中RNNs無(wú)法學(xué)習(xí)到這種特征白群。Hochreiter (1991) [German]Bengio, et al. (1994)深入研究過(guò)為什么RNNs沒(méi)法學(xué)習(xí)到這種特征。

幸好LSTMs這種特殊的RNNs是沒(méi)有這個(gè)問(wèn)題的硬霍。

LSTM 網(wǎng)絡(luò)

Long Short Term Memory networks(以下簡(jiǎn)稱(chēng)LSTMs)帜慢,一種特殊的RNN網(wǎng)絡(luò),該網(wǎng)絡(luò)設(shè)計(jì)出來(lái)是為了解決長(zhǎng)依賴(lài)問(wèn)題唯卖。該網(wǎng)絡(luò)由 Hochreiter & Schmidhuber (1997)引入粱玲,并有許多人對(duì)其進(jìn)行了改進(jìn)和普及。他們的工作被用來(lái)解決了各種各樣的問(wèn)題拜轨,直到目前還被廣泛應(yīng)用抽减。

所有循環(huán)神經(jīng)網(wǎng)絡(luò)都具有神經(jīng)網(wǎng)絡(luò)的重復(fù)模塊鏈的形式。 在標(biāo)準(zhǔn)的RNN中橄碾,該重復(fù)模塊將具有非常簡(jiǎn)單的結(jié)構(gòu)卵沉,例如單個(gè)tanh層颠锉。標(biāo)準(zhǔn)的RNN網(wǎng)絡(luò)如下圖所示


5.png

LSTMs也具有這種鏈?zhǔn)浇Y(jié)構(gòu),但是它的重復(fù)單元不同于標(biāo)準(zhǔn)RNN網(wǎng)絡(luò)里的單元只有一個(gè)網(wǎng)絡(luò)層史汗,它的內(nèi)部有四個(gè)網(wǎng)絡(luò)層琼掠。LSTMs的結(jié)構(gòu)如下圖所示。


6.png

在解釋LSTMs的詳細(xì)結(jié)構(gòu)時(shí)先定義一下圖中各個(gè)符號(hào)的含義停撞,符號(hào)包括下面幾種


7.png

圖中黃色類(lèi)似于CNN里的激活函數(shù)操作眉枕,粉色圓圈表示點(diǎn)操作,單箭頭表示數(shù)據(jù)流向怜森,箭頭合并表示向量的合并(concat)操作,箭頭分叉表示向量的拷貝操作

LSTMs的核心思想

LSTMs的核心是細(xì)胞狀態(tài)谤牡,用貫穿細(xì)胞的水平線(xiàn)表示副硅。

細(xì)胞狀態(tài)像傳送帶一樣。它貫穿整個(gè)細(xì)胞卻只有很少的分支翅萤,這樣能保證信息不變的流過(guò)整個(gè)RNNs恐疲。細(xì)胞狀態(tài)如下圖所示


8.png

LSTM網(wǎng)絡(luò)能通過(guò)一種被稱(chēng)為門(mén)的結(jié)構(gòu)對(duì)細(xì)胞狀態(tài)進(jìn)行刪除或者添加信息。

門(mén)能夠有選擇性的決定讓哪些信息通過(guò)套么。其實(shí)門(mén)的結(jié)構(gòu)很簡(jiǎn)單培己,就是一個(gè)sigmoid層和一個(gè)點(diǎn)乘操作的組合。如下圖所示


9.png

因?yàn)閟igmoid層的輸出是0-1的值胚泌,這代表有多少信息能夠流過(guò)sigmoid層省咨。0表示都不能通過(guò),1表示都能通過(guò)玷室。

一個(gè)LSTM里面包含三個(gè)門(mén)來(lái)控制細(xì)胞狀態(tài)零蓉。

一步一步理解LSTM

前面提到LSTM由三個(gè)門(mén)來(lái)控制細(xì)胞狀態(tài),這三個(gè)門(mén)分別稱(chēng)為忘記門(mén)穷缤、輸入門(mén)和輸出門(mén)敌蜂。下面一個(gè)一個(gè)的來(lái)講述。

LSTM的第一步就是決定細(xì)胞狀態(tài)需要丟棄哪些信息津肛。這部分操作是通過(guò)一個(gè)稱(chēng)為忘記門(mén)的sigmoid單元來(lái)處理的章喉。它通過(guò)查看h_{t-1}x_{t}信息來(lái)輸出一個(gè)0-1之間的向量,該向量里面的0-1值表示細(xì)胞狀態(tài)C_{t-1}中的哪些信息保留或丟棄多少身坐。0表示不保留秸脱,1表示都保留。忘記門(mén)如下圖所示部蛇。

10.png

下一步是決定給細(xì)胞狀態(tài)添加哪些新的信息撞反。這一步又分為兩個(gè)步驟,首先搪花,利用h_{t-1}x_{t}通過(guò)一個(gè)稱(chēng)為輸入門(mén)的操作來(lái)決定更新哪些信息遏片。然后利用h_{t-1}x_{t}通過(guò)一個(gè)tanh層得到新的候選細(xì)胞信息\tilde C_{t}嘹害,這些信息可能會(huì)被更新到細(xì)胞信息中。這兩步描述如下圖所示吮便。

11.png

下面將更新舊的細(xì)胞信息C_{t-1}笔呀,變?yōu)樾碌募?xì)胞信息C_{t}。更新的規(guī)則就是通過(guò)忘記門(mén)選擇忘記舊細(xì)胞信息的一部分髓需,通過(guò)輸入門(mén)選擇添加候選細(xì)胞信息\tilde C_{t}的一部分得到新的細(xì)胞信息C_{t}许师。更新操作如下圖所示

12.png

更新完細(xì)胞狀態(tài)后需要根據(jù)輸入的h_{t-1}x_{t}來(lái)判斷輸出細(xì)胞的哪些狀態(tài)特征,這里需要將輸入經(jīng)過(guò)一個(gè)稱(chēng)為輸出門(mén)的sigmoid層得到判斷條件僚匆,然后將細(xì)胞狀態(tài)經(jīng)過(guò)tanh層得到一個(gè)-1~1之間值的向量微渠,該向量與輸出門(mén)得到的判斷條件相乘就得到了最終該RNN單元的輸出。該步驟如下圖所示

13.png

還是拿語(yǔ)言模型來(lái)舉例說(shuō)明咧擂,在預(yù)測(cè)動(dòng)詞形式的時(shí)候逞盆,我們需要通過(guò)輸入的主語(yǔ)是單數(shù)還是復(fù)數(shù)來(lái)推斷輸出門(mén)輸出的預(yù)測(cè)動(dòng)詞是單數(shù)形式還是復(fù)數(shù)形式。

LSTM的變種

之前描述的LSTM結(jié)構(gòu)是最為普通的松申。在實(shí)際的文章中LSTM的結(jié)構(gòu)存在各種變式云芦,雖然變化都不會(huì)太大,但是也值得一提贸桶。
其中一個(gè)很受歡迎的變式由Gers & Schmidhuber (2000)提出舅逸,它在LSTM的結(jié)構(gòu)中加入了“peephole connections.”結(jié)構(gòu),peephole connections結(jié)構(gòu)的作用是允許各個(gè)門(mén)結(jié)構(gòu)能夠看到細(xì)胞信息皇筛,具體如下圖所示琉历。

14.png

上圖描繪的是所有門(mén)都能看到細(xì)胞信息,還有一些變式是在其中的某些門(mén)引入細(xì)胞信息水醋。

還有一種變式是在忘記門(mén)與輸入門(mén)之間引入一個(gè)耦合善已。不同于之前的LSTM結(jié)構(gòu),忘記門(mén)和輸入門(mén)是獨(dú)立的离例,這個(gè)變式是在忘記門(mén)刪除歷史信息的位置加入新的信息换团,在加入新信息的位置刪除舊信息。該結(jié)構(gòu)如下圖所示宫蛆。


15.png

一種比其他形式變化更為顯著的LSTM變式是由 Cho, et al. (2014)提出的門(mén)循環(huán)單元(GRU)艘包。它將忘記門(mén)和輸入門(mén)合并成一個(gè)新的門(mén),稱(chēng)為更新門(mén)耀盗。GRU還有一個(gè)門(mén)稱(chēng)為重置門(mén)想虎。如下圖所示

16.png

其中重置門(mén)為上圖中前面那個(gè)門(mén),決定了如何將新的輸入信息與前面的記憶相結(jié)合叛拷。更新門(mén)為上圖中后面那個(gè)門(mén)舌厨,定義了前面記憶保存到當(dāng)前時(shí)間步的量。由于該變式的簡(jiǎn)單有效忿薇,后來(lái)被廣泛應(yīng)用裙椭。

這里介紹的只是一些較為有名的LSTM變式躏哩,關(guān)于LSTM的變式其實(shí)還有很多種,像 Yao, et al. (2015)提出的Depth Gated RNNs揉燃。還有其他用于解決長(zhǎng)依賴(lài)問(wèn)題的方法扫尺,如由 Koutnik, et al. (2014)提出的 Clockwork RNNs。

至于哪種變式效果最好炊汤?各種差異對(duì)LSTM的影響有多少正驻?這些問(wèn)題 Greff, et al. (2015)做了一些對(duì)比,結(jié)論是他們基本是一樣的抢腐。 Jozefowicz, et al. (2015)測(cè)試了一萬(wàn)多種RNN結(jié)構(gòu)姑曙,發(fā)現(xiàn)在某些指定任務(wù)上有些變式還是由于標(biāo)準(zhǔn)LSTMs的。

總結(jié)

之前也提到過(guò)RNNs取得了不錯(cuò)的成績(jī)迈倍,這些成績(jī)很多是基于LSTMs來(lái)做的伤靠,說(shuō)明LSTMs適用于大部分的序列場(chǎng)景應(yīng)用。
一般文章寫(xiě)法會(huì)堆一堆公式嚇唬人授瘦,希望本文一步一步的拆分能有助于大家的理解。
LSTMs對(duì)于RNNs的使用是一大進(jìn)步竟宋。那么現(xiàn)在還有個(gè)問(wèn)題提完,是否還有更大的進(jìn)步?對(duì)于很多研究者來(lái)說(shuō)丘侠,但是是肯定的徒欣,那就是attention的問(wèn)世。attention的思想是讓RNN在每一步挑選信息的時(shí)候都能從更大的信息集里面挑選出有用信息蜗字。例如打肝,利用RNN模型為一幀圖片生成字母,它將會(huì)選擇圖片有用的部分來(lái)得到有用的輸入挪捕,從而生成有效的輸出粗梭。事實(shí)上, Xu, et al.(2015) 已經(jīng)這么做了级零,如果你想更深入的了解attention断医,這會(huì)是一個(gè)不錯(cuò)的開(kāi)始。attention方向還有一些振奮人心的研究奏纪,但還有很多東西等待探索......

在RNN領(lǐng)域attention并不是唯一一個(gè)可以研究的點(diǎn)鉴嗤。比如Kalchbrenner, et al. (2015)提出的Grid LSTMs,Gregor, et al. (2015), Chung, et al. (2015), 和 Bayer & Osendorfer (2015)將RNNs用于生成模型的研究都非常有意思序调。
在過(guò)去幾年RNNs方面的研究非常的多醉锅,相信以后的研究成果也會(huì)更為豐富。

致謝

同原文

歡迎加入OCR交流群:785515057(此群已滿(mǎn))
歡迎加入OCR交流群2:826714963

原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末发绢,一起剝皮案震驚了整個(gè)濱河市硬耍,隨后出現(xiàn)的幾起案子垄琐,更是在濱河造成了極大的恐慌,老刑警劉巖默垄,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此虑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡口锭,警方通過(guò)查閱死者的電腦和手機(jī)朦前,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鹃操,“玉大人韭寸,你說(shuō)我怎么就攤上這事【0” “怎么了恩伺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)椰拒。 經(jīng)常有香客問(wèn)我晶渠,道長(zhǎng),這世上最難降的妖魔是什么燃观? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任褒脯,我火速辦了婚禮,結(jié)果婚禮上缆毁,老公的妹妹穿的比我還像新娘番川。我一直安慰自己,他們只是感情好脊框,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布颁督。 她就那樣靜靜地躺著,像睡著了一般浇雹。 火紅的嫁衣襯著肌膚如雪沉御。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天昭灵,我揣著相機(jī)與錄音嚷节,去河邊找鬼。 笑死虎锚,一個(gè)胖子當(dāng)著我的面吹牛硫痰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窜护,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼效斑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了柱徙?” 一聲冷哼從身側(cè)響起缓屠,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奇昙,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后敌完,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體储耐,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年滨溉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了什湘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晦攒,死狀恐怖闽撤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脯颜,我是刑警寧澤哟旗,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站栋操,受9級(jí)特大地震影響闸餐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矾芙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一舍沙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蠕啄,春花似錦场勤、人聲如沸戈锻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)格遭。三九已至哈街,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拒迅,已是汗流浹背骚秦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璧微,地道東北人作箍。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像前硫,于是被迫代替她去往敵國(guó)和親胞得。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容