如何簡(jiǎn)單的理解LSTM——其實(shí)沒(méi)有那么復(fù)雜

譯自原文:Understanding LSTM Networks

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

人類(lèi)針對(duì)每個(gè)問(wèn)題的思考,一般不會(huì)是完全的從頭開(kāi)始思考豌汇。正如當(dāng)你閱讀這篇譯文的時(shí)候幢炸,你會(huì)根據(jù)已經(jīng)閱讀過(guò)的內(nèi)容來(lái)對(duì)后面的內(nèi)容進(jìn)行理解,你不會(huì)把之前的東西都丟掉從頭進(jìn)行思考拒贱,你對(duì)內(nèi)容的理解是貫穿的宛徊。

傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)做不到這一點(diǎn),而這似乎是一個(gè)主要的缺點(diǎn)柜思。 例如岩调,假設(shè)您想對(duì)電影中的每個(gè)事件進(jìn)行分類(lèi)。我們無(wú)法想象傳統(tǒng)神經(jīng)網(wǎng)絡(luò)如何能夠利用前面的場(chǎng)景去干預(yù)后面的預(yù)測(cè)赡盘。

幸好循環(huán)神經(jīng)網(wǎng)絡(luò)解決了這個(gè)問(wèn)題号枕, 它們是具有循環(huán)的網(wǎng)絡(luò),允許信息持續(xù)存在陨享,示意圖如下葱淳。


帶循環(huán)的遞歸神經(jīng)網(wǎng)絡(luò)

在上圖中,一組神經(jīng)網(wǎng)絡(luò) A接收某些輸入xt抛姑,并輸出一個(gè)值ht赞厕。 循環(huán)允許信息從網(wǎng)絡(luò)的一個(gè)步驟傳遞到下一個(gè)。

這些循環(huán)使得循環(huán)神經(jīng)網(wǎng)絡(luò)看起來(lái)很神秘定硝。 然而皿桑,如果你再多考慮一下,你就會(huì)發(fā)現(xiàn)其實(shí)它和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)并不是完全不同。 一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)可以被認(rèn)為是同一個(gè)網(wǎng)絡(luò)的多個(gè)副本诲侮,每一個(gè)都傳遞一個(gè)消息給后繼者镀虐。 我們考慮一下如果將循環(huán)展開(kāi)會(huì)發(fā)生什么:(示意如下)

循環(huán)神經(jīng)網(wǎng)絡(luò)的展開(kāi)式

這種鏈狀特征揭示了循環(huán)神經(jīng)網(wǎng)絡(luò)與序列和列表密切相關(guān)。 它們是用于此類(lèi)數(shù)據(jù)的自然神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)沟绪。

他們肯定是有用的刮便! 在過(guò)去的幾年里,RNN應(yīng)在語(yǔ)音識(shí)別绽慈、語(yǔ)言建模恨旱、翻譯,圖像字幕等各種問(wèn)題上取得了巨大成功坝疼。在Andrej Karpathy的這篇博文——RNN的難以理解的有效性(The Unreasonable Effectiveness of Recurrent Neural Networks)中討論了RNN取得的驚人成果搜贤,他們真的很神奇

這些成功的案例的共同點(diǎn)就是都是用了LSTM,這是一種非常特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)裙士,對(duì)于許多任務(wù)來(lái)說(shuō)入客,它們比基準(zhǔn)版本好的多。 幾乎所有令人興奮的結(jié)果都是基于循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)的腿椎,這篇文章將探討這些LSTM,帶你解開(kāi)LSTM的神秘面紗夭咬。

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

RNN顯著的魅力是將以前的信息連接到當(dāng)前任務(wù)的這種思路啃炸,例如使用先前的視頻幀可以有助于對(duì)當(dāng)前幀的理解。 如果RNN可以做到這一點(diǎn)卓舵,這將非常有用南用。 但他可以嗎?這要看情況掏湾。

有時(shí)裹虫,為了處理當(dāng)前的任務(wù),我們只需要查看最近的信息融击。 例如筑公,考慮一種語(yǔ)言模型,該模型根據(jù)前面的詞語(yǔ)來(lái)預(yù)測(cè)下一個(gè)單詞尊浪。 如果我們?cè)噲D預(yù)測(cè)““the clouds are in the sky”的最后一個(gè)單詞匣屡,我們不需要任何其他的語(yǔ)境信息——下一個(gè)單詞顯然是sky。 在相關(guān)信息和需要該信息的距離較近的時(shí)候拇涤,RNN能夠?qū)W會(huì)去利用歷史信息捣作。

但也有需要更多上下文的情況。 考慮嘗試預(yù)測(cè)文本中的最后一個(gè)單詞“I grew up in France… I speak fluent French.”鹅士。最近的信息表明券躁,下一個(gè)單詞可能是一種語(yǔ)言的名稱(chēng),但如果我們想縮范圍確定那種語(yǔ)言,我們需要從前面獲取法國(guó)的背景也拜。 相關(guān)信息和需要該信息的地方的距離變得非常大的情況是很可能的旭贬。

不幸的是,隨著距離的增加搪泳,RNN無(wú)法有效的利用歷史信息稀轨。

在理論上,RNN絕對(duì)有能力處理這樣的“長(zhǎng)依賴(lài)”問(wèn)題岸军。人們可以仔細(xì)挑選參數(shù)來(lái)解決這種形式的問(wèn)題奋刽。 可悲的是,在實(shí)踐中艰赞,RNN似乎無(wú)法學(xué)習(xí)到這些特征佣谐。HochreiterBengio,曾經(jīng)深入的研究過(guò)這個(gè)問(wèn)題方妖,他們發(fā)現(xiàn)一些根本性的原因狭魂,能夠解釋RNN為什么不work。

謝天謝地党觅,LSTM沒(méi)有這個(gè)問(wèn)題雌澄!

LSTM Networks

長(zhǎng)短記憶神經(jīng)網(wǎng)絡(luò)——通常稱(chēng)作LSTM,是一種特殊的RNN杯瞻,能夠?qū)W習(xí)長(zhǎng)的依賴(lài)關(guān)系镐牺。 他們由Hochreiter&Schmidhuber引入,并被許多人進(jìn)行了改進(jìn)和普及魁莉。他們?cè)诟鞣N各樣的問(wèn)題上工作的非常好睬涧,現(xiàn)在被廣泛使用。

LSTM是為了避免長(zhǎng)依賴(lài)問(wèn)題而精心設(shè)計(jì)的旗唁。 記住較長(zhǎng)的歷史信息實(shí)際上是他們的默認(rèn)行為畦浓,而不是他們努力學(xué)習(xí)的東西。

所有循環(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中的重復(fù)模塊的單層神經(jīng)網(wǎng)絡(luò)

LSTM也擁有這種鏈狀結(jié)構(gòu)秽梅,但是重復(fù)模塊則擁有不同的結(jié)構(gòu)。與神經(jīng)網(wǎng)絡(luò)的簡(jiǎn)單的一層相比剿牺,LSTM擁有四層企垦,這四層以特殊的方式進(jìn)行交互。

LSTM中的重復(fù)模塊包含的四層交互神經(jīng)網(wǎng)絡(luò)層

不要過(guò)早擔(dān)心細(xì)節(jié)問(wèn)題晒来, 稍后我們將一步一步地剖析LSTM钞诡。 現(xiàn)在,讓我們先熟悉一下我們將要使用的符號(hào)。

在上圖中荧降,每一行都帶有一個(gè)向量接箫,該向量從一個(gè)節(jié)點(diǎn)輸出到其他節(jié)點(diǎn)的輸入。 粉紅色圓圈表示點(diǎn)向運(yùn)算朵诫,如向量加法辛友、點(diǎn)乘,而黃色框是學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)層剪返。 線的合并表示連接废累,而線的交叉表示其內(nèi)容正在復(fù)制,副本將轉(zhuǎn)到不同的位置脱盲。

LSTM背后的核心理念

LSTM的關(guān)鍵是細(xì)胞狀態(tài)邑滨,表示細(xì)胞狀態(tài)的這條線水平的穿過(guò)圖的頂部。

細(xì)胞的狀態(tài)類(lèi)似于輸送帶钱反,細(xì)胞的狀態(tài)在整個(gè)鏈上運(yùn)行掖看,只有一些小的線性操作作用其上,信息很容易保持不變的流過(guò)整個(gè)鏈面哥。

LSTM確實(shí)具有刪除或添加信息到細(xì)胞狀態(tài)的能力哎壳,這個(gè)能力是由被稱(chēng)為門(mén)(Gate)的結(jié)構(gòu)所賦予的。

門(mén)(Gate)是一種可選地讓信息通過(guò)的方式幢竹。 它由一個(gè)Sigmoid神經(jīng)網(wǎng)絡(luò)層和一個(gè)點(diǎn)乘法運(yùn)算組成耳峦。

Sigmoid神經(jīng)網(wǎng)絡(luò)層輸出0和1之間的數(shù)字,這個(gè)數(shù)字描述每個(gè)組件有多少信息可以通過(guò)焕毫, 0表示不通過(guò)任何信息,1表示全部通過(guò)

LSTM有三個(gè)門(mén)驶乾,用于保護(hù)和控制細(xì)胞的狀態(tài)邑飒。

一步步的拆解LSTM

LSTM的第一步是決定我們要從細(xì)胞狀態(tài)中丟棄什么信息。 該決定由被稱(chēng)為“忘記門(mén)”的Sigmoid層實(shí)現(xiàn)级乐。它查看ht-1(前一個(gè)輸出)和xt(當(dāng)前輸入)疙咸,并為單元格狀態(tài)Ct-1(上一個(gè)狀態(tài))中的每個(gè)數(shù)字輸出0和1之間的數(shù)字。1代表完全保留风科,而0代表徹底刪除撒轮。

讓我們回到語(yǔ)言模型的例子,試圖根據(jù)以前的語(yǔ)料來(lái)預(yù)測(cè)下一個(gè)單詞贼穆。 在這樣的問(wèn)題中题山,細(xì)胞狀態(tài)可能包括當(dāng)前主題的性別,從而決定使用正確的代詞故痊。 當(dāng)我們看到一個(gè)新主題時(shí)顶瞳,我們想要忘記舊主題的性別。

下一步是決定我們要在細(xì)胞狀態(tài)中存儲(chǔ)什么信息。 這部分分為兩步慨菱。 首先焰络,稱(chēng)為“輸入門(mén)層”的Sigmoid層決定了我們將更新哪些值。 接下來(lái)一個(gè)tanh層創(chuàng)建候選向量Ct,該向量將會(huì)被加到細(xì)胞的狀態(tài)中符喝。 在下一步中闪彼,我們將結(jié)合這兩個(gè)向量來(lái)創(chuàng)建更新值。

在我們的語(yǔ)言模型的例子中协饲,我們希望將新主題的性別添加到單元格狀態(tài)畏腕,以替換我們忘記的舊對(duì)象。

現(xiàn)在是時(shí)候去更新上一個(gè)狀態(tài)值Ct?1了囱稽,將其更新為Ct郊尝。簽名的步驟以及決定了應(yīng)該做什么,我們只需實(shí)際執(zhí)行即可战惊。

我們將上一個(gè)狀態(tài)值乘以ft流昏,以此表達(dá)期待忘記的部分。之后我們將得到的值加上 it?C? t吞获。這個(gè)得到的是新的候選值况凉, 按照我們決定更新每個(gè)狀態(tài)值的多少來(lái)衡量.

在語(yǔ)言模型的例子中,對(duì)應(yīng)著實(shí)際刪除關(guān)于舊主題性別的信息各拷,并添加新信息刁绒,正如在之前的步驟中描述的那樣。

最后烤黍,我們需要決定我們要輸出什么知市。 此輸出將基于我們的細(xì)胞狀態(tài),但將是一個(gè)過(guò)濾版本速蕊。 首先嫂丙,我們運(yùn)行一個(gè)sigmoid層,它決定了我們要輸出的細(xì)胞狀態(tài)的哪些部分规哲。 然后跟啤,我們將單元格狀態(tài)通過(guò)tanh(將值規(guī)范化到-1和1之間),并將其乘以Sigmoid門(mén)的輸出唉锌,至此我們只輸出了我們決定的那些部分隅肥。

對(duì)于語(yǔ)言模型的例子,由于只看到一個(gè)主題袄简,考慮到后面可能出現(xiàn)的詞腥放,它可能需要輸出與動(dòng)詞相關(guān)的信息。 例如痘番,它可能會(huì)輸出主題是單數(shù)還是復(fù)數(shù)捉片,以便我們知道動(dòng)詞應(yīng)該如何組合在一起平痰。

LSTM的變種

到目前為止,所描述的是一個(gè)很正常的LSTM伍纫。 但并不是所有的LSTM都與上述相同宗雇。 事實(shí)上,似乎幾乎每一篇涉及LSTM的論文都使用了一個(gè)略有不同的版本莹规,差異很小赔蒲,但有一些值得一看。

一個(gè)比較流行的LSTM變種是由Gers & Schmidhuber (2000)提出的良漱,添加“peephole connections”舞虱。這意味著,我們?cè)试Sgate層去看細(xì)胞的狀態(tài)母市。

上面的圖中所有的Sigmoid層都增加了窺視矾兜,但許多論文實(shí)現(xiàn)不是針對(duì)所有都增加窺探,而是有針對(duì)性的增加患久。

另一種變化是使用耦合的忘記和輸入門(mén)椅寺,而不是單獨(dú)決定要忘記什么、添加什么蒋失,這個(gè)決定需要一起做返帕。 只有當(dāng)需要輸入某些信息的時(shí)候,我們才會(huì)忘記這個(gè)位置的歷史信息篙挽。只有當(dāng)我們忘記一些歷史信息的時(shí)候荆萤,我們才在狀態(tài)中添加新的信息。

LSTM的一個(gè)稍微更顯著的變化是由Cho介紹的門(mén)控循環(huán)單元(或GRU)铣卡。 它將忘記和輸入門(mén)組合成一個(gè)單一的“更新門(mén)”链韭。它還將單元格狀態(tài)和隱藏狀態(tài)合并,并進(jìn)行了一些其他更改煮落。 所得到的模型比標(biāo)準(zhǔn)LSTM模型更簡(jiǎn)單梧油,并且越來(lái)越受歡迎。

這些只是最顯著的LSTM變體中的幾個(gè), 還有很多其他的州邢,比如Depth Gated RNNs,還有一些完全不同的處理長(zhǎng)期依賴(lài)的方法褪子,例如Clockwork量淌。哪些變體最好、差異的重要性等嫌褪, Greff做一個(gè)很好的變體的比較呀枢,發(fā)現(xiàn)他們都差不多。 Jozefowicz測(cè)試了大量的RNN架構(gòu)笼痛,發(fā)現(xiàn)一些RNN結(jié)構(gòu)在某些任務(wù)上要比LSTM更好裙秋。

結(jié)論

此前琅拌,我提到人們通過(guò)RNN實(shí)現(xiàn)了顯著的成果。 基本上所有這些都是使用LSTM實(shí)現(xiàn)的摘刑。 對(duì)于大多數(shù)任務(wù)而言LSTM很有效进宝。

一般介紹LSTM的文章大部分會(huì)寫(xiě)一大組方程式,這使得LSTM看起來(lái)很?chē)樔恕?希望通過(guò)這篇文章的逐步講解枷恕,幫助讀者更好的理解LSTM党晋。

LSTM是我們使用RNN的一個(gè)巨大進(jìn)步。 很自然的想法:更大的進(jìn)步嗎徐块? 研究人員的共同觀點(diǎn)是——有未玻,那就是注意力模型。這個(gè)想法是讓RNN的每一步挑選信息的過(guò)程都參照上層的主題信息胡控,關(guān)于Attention模型后面我會(huì)再進(jìn)行詳盡的描述扳剿,這里不再討論。

希望通過(guò)本文讓想了解和使用LSTM的人能夠了解其工作原理昼激,能更好的使用庇绽,不被大量的數(shù)學(xué)公式和推導(dǎo)所阻礙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末癣猾,一起剝皮案震驚了整個(gè)濱河市敛劝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纷宇,老刑警劉巖夸盟,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異像捶,居然都是意外死亡上陕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)拓春,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)释簿,“玉大人,你說(shuō)我怎么就攤上這事硼莽∈埽” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵懂鸵,是天一觀的道長(zhǎng)偏螺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)匆光,這世上最難降的妖魔是什么套像? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮终息,結(jié)果婚禮上夺巩,老公的妹妹穿的比我還像新娘贞让。我一直安慰自己,他們只是感情好柳譬,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布喳张。 她就那樣靜靜地躺著,像睡著了一般征绎。 火紅的嫁衣襯著肌膚如雪蹲姐。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天人柿,我揣著相機(jī)與錄音柴墩,去河邊找鬼。 笑死凫岖,一個(gè)胖子當(dāng)著我的面吹牛江咳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哥放,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼歼指,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了甥雕?” 一聲冷哼從身側(cè)響起踩身,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎社露,沒(méi)想到半個(gè)月后挟阻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峭弟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年附鸽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞒瘸。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坷备,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出情臭,到底是詐尸還是另有隱情省撑,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布俯在,位于F島的核電站丁侄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏朝巫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一石景、第九天 我趴在偏房一處隱蔽的房頂上張望劈猿。 院中可真熱鬧拙吉,春花似錦、人聲如沸揪荣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仗颈。三九已至佛舱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挨决,已是汗流浹背请祖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脖祈,地道東北人肆捕。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像盖高,于是被迫代替她去往敵國(guó)和親慎陵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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