1. 程式人生 > >理解循環神經網絡的來龍去脈

理解循環神經網絡的來龍去脈

計算 change 變體 公式 auto 困難 上下 com img

一、為什麽會出現循環神經網絡?

  傳統的語言模型中,計算特定序列中多個單詞出現概率的公式為(以下式子),P(w1,,wm)一般只考慮前 n 個單詞而不是考慮全部之前的單詞。

技術分享圖片

上式對語音、翻譯系統中判斷一個詞序列是否是輸入句子的準確翻譯起了重要作用。這些只依賴前面1個詞(bigram)、依賴前面2個詞(trigram)、... 、依賴前面連續n個單詞窗口的方式可能不足以捕獲足夠的上下文信息。在所有傳統語言模型中,隨著窗口n的增大,系統所需的運行內存也會呈現指數級增長,使得幾乎不可能對較大型的詞窗口的語言模型建模,因為很可能會out of memory。

  但循環神經網絡RNN不同於傳統的語言模型,它有能力以語料庫中所有前面的單詞為條件進行建模。RNN是包含循環的網絡,允許信息的持久化。網絡結構圖及展開圖如下所示:

技術分享圖片

二、RNN存在的問題及其改進LSTM的原理?

  理論上,RNN可以處理來自前邊相當遠處的信息,但實際上,由於在反向傳播過程中,從前面時間步回傳過來的梯度值會逐漸消失,出現梯度消失,所以在這個間隔不斷增大時,RNN 會喪失學習到連接如此遠的信息的能力。所以在實際中,RNN很難解決這樣的長期依賴問題,這樣訓練RNN變得相當困難。

LSTM 通過刻意的設計(門控單元)來避免長期依賴問題。記住長期的信息在實踐中是 LSTM 的默認行為,而非需要付出很大代價才能獲得的能力!

   LSTM的圖如下:

技術分享圖片

   具體解釋如下:包含3個門(輸入門input gate、遺忘門forget gate、輸出門output gate)、new/candidate memory cell(ct~)、final memory cell(ct)、隱藏狀態ht

技術分享圖片

三、LSTM及其變體GRU的比較?

  GRU是LSTM的變體,簡化版。相比LSTM,GRU將輸入門和遺忘門合成了單一的更新門update gate(在圖中為zt),同時它還混合了new/candatate cell state和hidden state。

  GRU有兩個門,一個是reset gate(重置門)(用於對ht-1的信息進行控制,負責確定 ht?1 對總結 h?t的重要程度。如果確定 ht?1與新的記憶的計算無關,則復位門能夠完全消除過去的隱藏狀態,即忽略之前隱藏的信息)、一個是update gate(更新門),負責確定有多少 ht?1可以向前傳遞到下一個狀態。例如,如果 u

t≈0,那麽ht?1幾乎是完全向前傳遞到下一個隱藏狀態。反過來,如果 ut≈1,那麽大部分的新的記憶 h?t向前傳遞到下一個隱藏狀態。

  GRU的圖如下:

技術分享圖片

  具體公式如下:

技術分享圖片

四、雙向RNN

  雙向深度神經網絡;在每個時間步 t,這個網絡維持兩個隱藏層,一個是從左到右傳播而另外一個是從右到左傳播。為了在任何時候維持兩個隱藏層,該網絡要消耗的兩倍存儲空間來存儲權值和偏置參數。最後的分類結果 y?,是結合由兩個 RNN 隱藏層生成的結果得分產生。下圖展示啊了雙向 RNN的網絡結構。

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

五、帶attention機制的LSTM

理解循環神經網絡的來龍去脈