Recurrent Neural Networks--遞歸神經網絡

翻譯自colah'blog,網址爲http://colah.github.io/posts/2015-08-Understanding-LSTMs/git


RNN遞歸神經網絡github


人類並非每時每刻都從一片空白的大腦開始他們的思考。在你閱讀這篇文章時候,你都是基於本身已經擁有的對先前所見詞的理解來推斷當前詞的真實含義。咱們不會將全部的東西都所有丟棄,而後用空白的大腦進行思考。咱們的思想擁有持久性。微信


傳統的神經網絡並不能作到這點,看起來也像是一種巨大的弊端。例如,假設你但願對電影中的每一個時間點的時間類型進行分類。傳統的神經網絡應該很難來處理這個問題——使用電影中先前的事件推斷後續的事件。
網絡


RNN 解決了這個問題。RNN 是包含循環的網絡,容許信息的持久化。
架構


包含循環的遞歸神經網絡以下圖。post


在上面的示例圖中,神經網絡的模塊,A,正在讀取某個輸入 x_i,並輸出一個值 h_i。循環可使得信息能夠從當前步傳遞到下一步。學習


全部 RNN 都具備一種重複神經網絡模塊的鏈式的形式。在標準的 RNN 中,這個重複的模塊只有一個很是簡單的結構,例如一個 tanh 層。人工智能


這些循環使得 RNN 看起來很是神祕。然而,若是你仔細想一想,這樣也不比一個正常的神經網絡難於理解。RNN 能夠被看作是同一神經網絡的屢次複製,每一個神經網絡模塊會把消息傳遞給下一個。因此,若是咱們將這個循環展開:spa


鏈式的特徵揭示了 RNN 本質上是與序列和列表相關的。他們是對於這類數據的最天然的神經網絡架構。而且 RNN 也已經被人們應用了!在過去幾年中,應用 RNN 在語音識別,語言建模,翻譯,圖片描述等問題上已經取得必定成功,而且這個列表還在增加。.net


而這些成功應用的關鍵之處就是 LSTM 的使用,這是一種特別的 RNN,比標準的 RNN 在不少的任務上都表現得更好。幾乎全部的使人振奮的關於 RNN 的結果都是經過 LSTM 達到的。這篇博文也會就 LSTM 進行展開。

長期依賴(Long-Term Dependencies)問題


RNN 的關鍵點之一就是他們能夠用來鏈接先前的信息到當前的任務上,例如使用過去的視頻段來推測對當前段的理解。若是 RNN 能夠作到這個,他們就變得很是有用。可是真的能夠麼?答案是,還有不少依賴因素。


有時候,咱們僅僅須要知道先前的信息來執行當前的任務。例如,咱們有一個語言模型用來基於先前的詞來預測下一個詞。若是咱們試着預測 「the clouds are in the sky」 最後的詞,咱們並不須要任何其餘的上下文 —— 所以下一個詞很顯然就應該是 sky。在這樣的場景中,相關的信息和預測的詞位置之間的間隔是很是小的,RNN 能夠學會使用先前的信息。

可是一樣會有一些更加複雜的場景。假設咱們試着去預測「I grew up in France... I speak fluent French」最後的詞。當前的信息建議下一個詞多是一種語言的名字,可是若是咱們須要弄清楚是什麼語言,咱們是須要先前提到的離當前位置很遠的 France 的上下文的。這說明相關信息和當前預測位置之間的間隔就確定變得至關的大。


不幸的是,在這個間隔不斷增大時,RNN 會喪失學習到鏈接如此遠的信息的能力。


在理論上,RNN 絕對能夠處理這樣的 長期依賴 問題。人們能夠仔細挑選參數來解決這類問題中的最初級形式,但在實踐中,RNN 確定不可以成功學習到這些知識。Bengio, et al. (1994)等人對該問題進行了深刻的研究,他們發現一些使訓練 RNN 變得很是困難的至關根本的緣由。



本文分享自微信公衆號 - AI MOOC人工智能平臺(AIMOOC_XLAB)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索