論文學習「翻譯」:《Understanding LSTM Netword》,附原文

遞歸神經網絡

人類並不是每一秒都從頭開始思考。當你閱讀這篇文章時,你會根據對前幾個詞的理解來理解每個詞。你不會扔掉一切,然後再從頭開始思考。你的思想是有持久性的。

傳統的神經網絡並不能做到這一點,這似乎是一個主要的缺點。例如,想象一下你要對影片中每個時間點發生的事件進行分類。目前傳統的神經網絡還不清楚如何利用其對電影中先前事件的推理來告知後來的事件。

遞歸神經網絡解決了這個問題。它們是包含循環的網絡,允許信息留存。

遞歸神經網絡具有循環

在上圖中,神經網絡塊A,查看一些輸入x_{t}輸出值h_{t}循環允許將信息從網絡的一個步驟傳遞到下一個步驟

這些循環使遞歸神經網絡看起來有點神祕。但是,如果你多想一點,事實證明它們並沒有與正常的神經網絡多麼不同。遞歸神經網絡可以看作是同一網絡的多個副本,每個副本將消息傳遞給後續。請考慮如果我們展開循環會發生什麼情況:

展開的遞歸神經網絡

這種鏈狀的性質揭示了遞歸神經網絡與序列和列表密切相關。它們是用於此類數據的神經網絡的自然體系結構。

而且他們確實是被使用了!在過去的幾年,將 RNN 應用於各種問題取得了令人難以置信的成功:語音識別、語言建模、翻譯、自動圖像描述...還有很多。我將把關於使用 RNNs 可以實現的驚人壯舉的討論留在Andrej Karpathy的優秀博客文章:The Unreasonable Effectiveness of Recurrent Neural Networks(http://karpathy.githun.io/2015/05/21/rnn-effectiveness)。它們是真的很神奇。

這些成功的關鍵是使用“ LSTMs ”,這是一種非常特殊的遞歸神經網絡,對於許多任務來說,它比標準版本要好的多得多。幾乎所有基於遞歸神經網絡的令人興奮的結果都是通過它們實現的。本文將探討的是這些 LSTMs


長期依賴問題

       RNN 的吸引力之一是,它們也許能夠將以前的信息連接到當前任務,例如使用以前的視頻幀,可能有助於形成對當前幀的理解。如果  RNN 能夠做到這一點,它們將非常有用。但是他們可以嗎?這得看情況。

有時,我們只需要查看最近的信息來執行當前任務。例如,考慮一個嘗試根據前面的詞預測下一個詞的語言模型。如果我們試圖預測“the clouds are in the sky”的最後一個詞,我們不需要任何更多的上下文——很明顯,下一個詞就是sky。在這種情況下,如果相關信息與所需位置之間的距離很小,RNNs 可以學習使用過去的信息。

但是,在某些情況下,我們需要更多的上下文。考慮嘗試預測“I grew up in France… I speak fluent French.”文本中的最後一個詞。最近的信息表明,下一個詞可能是一種語言的名稱,但如果我們想要縮小到具體是哪種語言,我們需要回溯很遠距離找到的 France 上下文。相關信息與需要的點之間的差距變得非常大是完全可能的。

不幸的是,隨着這種距離的擴大,RNNs 變得無法學會連接信息了。

從理論上講,RNNs絕對能夠處理此類“長期依賴關係”。人類可以仔細選擇參數,以解決這種形式的小問題。可悲的是,在實踐中, RNNs 似乎無法學習它們。Hochreiter(1991年)[德國](http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf)和Bengio等人(1994年)(http://www.dsi.ing.unifi.it/~paolo/ps/tnn-94-gradient.pdf)已經深入探討了這個問題,他們發現了一些爲什麼很難實現的最本質原因。

謝天謝地,LSTM 沒有這個問題!


LSTM網絡

長期短期記憶網絡(通常稱爲“ LSTMs ”)是一種能夠學習長期依賴關係的特殊 RNN 。它們由Hochreiter和Schmidhuber(1997年)(http://www.bioinf.jku.at/publications/older/2604.pdf)提出,並在後續工作中被許多人提煉和推廣。它們在各種問題上表現非常出色,現已得到廣泛應用。

LSTMs 被明確設計來避免長期依賴問題。長時間記住信息實際上是他們的默認行爲,而不是他們難以學習的東西!

所有遞歸神經網絡都有神經網絡重複模塊鏈的形式。在標準 RNNs 中,此重複模塊將有一個非常簡單的結構,例如一個單tanh層。

標準RNN中的重複模塊包含一個單層

LSTMs 也有此類似的鏈式結構,但重複模塊具有不同的結構。不是隻有一個單神經網絡層,而是有四個,它們以非常特殊的方式交互

LSTM中的重複模塊包含四個交互層

不要擔心事情的細節。稍後我們將逐步瀏覽 LSTM 關係圖。現在,讓我們試着熟悉一下我們將要使用的符號。

在上圖中,每個連線都攜帶一個完整的矢量,從一個節點的輸出到其他節點的輸入。粉紅色圓圈表示點操作(如矢量添加),而黃色框是訓練好的神經網絡層。合併的連線表示串聯,而分叉的連線表示正在複製其內容,副本將複製到不同位置。


LSTM背後的核心理念

       LSTMs 的關鍵是細胞狀態,即貫穿關係圖頂部的水平線。

細胞狀態有點像傳送帶。它沿着整個鏈條直接運行,只有一些小的線性交互。信息很容易隨其流動而保持不變。

LSTM 確實能夠向細胞狀態刪除或添加信息,這是由稱爲 gate 的結構小心控制的。

門是一種選擇性地讓信息通過的方法。它們由 sigmoid 神經網絡層和點乘法操作組成。

sigmoid 層輸出 0 和 1 之間的數字,描述了每個組件應允許通過多少信息。0 表示“什麼都不通過”,而值爲 1 則表示“全部通過!”

LSTM 具有三個這樣的門,用於保護和控制細胞狀態。


分步LSTM演練

LSTM 的第一步是決定我們將從細胞狀態中丟棄哪些信息。這個決定是由一個稱爲“forget gate layer”的sigmoid層來完成。它關注h_{t-1}x_{t} ,併爲記憶細胞C_{t-1}中的每一個數字輸出 0 1 之間的數字。 1 表示“完全保留這個”,相反 0 表示“完全刪掉這個”

讓我們回到一個語言模型的示例,該示例試圖根據之前的所有詞預測下一個詞。在這種情況下,細胞狀態可能包括當前研究對象的性別,以便可以使用正確的代詞。當我們看到一個新的研究對象時,我們想忘記之前研究對象的性別。

語言模型的示例,該示例試圖根據之前的所有詞預測下一個詞。在這種情況下,細胞狀態可能包括當前研究對象的性別,以便可以使用正確的代詞。當我們看到一個新的研究對象時,我們想忘記之前研究對象的性別。

下一步是決定我們將在細胞狀態中存儲哪些新信息。這有兩個部分。首先,稱爲“input gate layer”的 sigmoid 層決定了我們將更新哪些值。接下來, tanh 層將創建新候選值的矢量,\tilde{C}_{t},該矢量可以添加到細胞狀態。在下一步中,我們將合併這兩個來創建狀態的更新。

在我們的語言模型示例中,我們希望將新研究對象的性別添加到細胞狀態中,以取代我們遺忘的舊研究對象。

現在是時候更新舊的細胞狀態C_{t-1},然後進入新的細胞狀態C_{t}。前面的步驟已經決定了該做什麼,我們只需要實際完成就行。

我們把舊的細胞狀態乘以f_{t},遺忘我們決定早點忘記的事情。然後我們再加上i_{t}\tilde{C}_{t}。這是新的候選值,根據我們決定更新每個狀態值的程度進行縮放。

對於語言模型,我們實際上會刪除有關舊研究對象性別的信息並添加新信息,正如我們在前面的步驟中所決定的。

最後,我們需要決定要輸出的內容。此輸出將基於我們的細胞狀態,但將是一個篩選版本。首先,我們運行一個sigmoid層,該層決定要輸出細胞狀態的哪些部分。然後,我們把細胞狀態通過tanh(將值推送到 -1 1 之間),然後乘以 sigmoid 門的輸出,以便我們只輸出我們決定的部分。

對於語言模型示例,因爲它只是看到了一個研究對象,所以它可能希望輸出與動詞相關的信息,以防接下來會發生什麼。例如,它可以輸出主語是單數還是複數,這樣我們就可以知道一個動詞接下來應該變成什麼形式。


長短期記憶的變體

到目前爲止,我描述的是一個相當普通的 LSTM 。但並非所有 LSTMs 都與上述相同。事實上,幾乎每一篇涉及 LSTMs 的論文都使用略有不同的版本。差異很小,但值得一提。

Gers 和 Schmidhuber (2000)(ftp://ftp.idsia.ch/pub/juergen/TimeCount-IJCNN2000.pdf)推出的一個流行的 LSTM 變體,該變體添加了“poophole connections”。這意味着我們讓門層來查看細胞狀態。

上圖爲所有的門增加了窺視孔,但許多論文會給出一些窺視孔,而不是其他。

另一種變化是使用耦合的遺忘和輸入門。我們不是單獨決定忘記什麼和應該添加什麼新信息,而是一起做這些決定。我們只會忘記什麼時候在它的位置上輸入東西。我們只在忘記舊的值時才向狀態輸入新值。

LSTM 上一個稍微戲劇性的變化是由 Cho 等人引入的 Gated Recurrent Unit(GRU)(http://arxic.org/pdf/1406.1078v3.pdf)。它將遺忘和輸入門合併到一個“更新門”中。它還合併細胞狀態和隱藏狀態,並進行一些其他更改。生成的模型比標準 LSTM 模型更簡單,並且越來越受歡迎。

這些只是幾個最值得注意的 LSTM 變體。還有很多其他,像Yao等人(2015年)(http://arxic.org/pdf/1508.03790v2.pdf)的 Depth Gated RNNs。解決長期依賴性的方法也完全不同,如Koutnik等人的 Clockword RNNs(2014年)(http://arxiv.org/pdf/1402.3511vz.pdf)。

這些變體中哪一個最好?分歧重要嗎?Greff等人(2015年)(http://arxiv.org/pdf/1503.04069.pdf)對流行的變體做了很好的比較,發現它們都是一樣的。Jozefowicz等人(2015年)(http://jmlr.prg/proceedings/papers/v37/jozefowicz15.pdf)測試了超過一萬個 RNN 架構,發現一些在某些任務中比LSTM效果更好的結構。


結論

早些時候,我提到人們使用 RNN 取得的顯著成果,基本上所有這些都是使用 LSTM 實現的。對於大多數任務,他們真的工作得更好!

作爲一組方程來寫,LSTM 看起來很嚇人。希望在這篇文章中一步一步地介紹它們能使它們更容易理解。

LSTMs 是我們使用 RNNs 實現目標的一大步。人們很自然地會想:還會有更大的進步嗎?研究人員普遍認爲:“是的!下一步就是集中注意力!這個想法是讓 RNN 的每一步都從更大的信息集合中挑選信息。例如,如果你使用RNN來創建描述圖像的標題,它可能會選擇圖像的一部分來查看它輸出的每個單詞。事實上,Xu等人(2015)(http://arxiv.org/pdf/1502.03044v2.pdf)正是這樣做的——如果你想探索注意力,這可能是一個有趣的起點!已經有很多使用注意力的令人興奮的結果,而且似乎更多的結果即將出現……

注意力並不是 RNN 研究中唯一令人興奮的線索。例如,Kalchbrenner等人(2015)(http://arxic.org/pdf/1507.01526vz.pdf)的 Grid LSTMs 似乎非常有前途。在生成模型中使用RNNs的工作——如Gregor等人(2015)(http://arxiv.org/pdf/1502.04623.pdf)、Chung等人(2015)(http://arxiv.org/pdf/1506.02216v3.pdf)或Bayer 和 Osendorfer等人(2015)(http://arxiv.org/pdf/1411.7610v3.pdf)——似乎也非常有趣。過去的幾年對於遞歸神經網絡來說是激動人心的一年,而未來的幾年將會更加激動人心!

資源:https://download.csdn.net/download/qq_41297934/12250760

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章