Naive RNN vs LSTM vs GRU、attention基礎


原文地址:https://www.jianshu.com/p/b8653f8b5b2b

一、Recurrent Neural Network

圖1.1 Recurrent Neural Network1
圖1.2 Recurrent Neural Network2
圖1.3 Recurrent Neural Network3

二、Naive RNN

圖2.1 Naive RNN1
圖2.2 Naive RNN2

Naive RNN更新參數時易出現梯度消失/爆炸的問題。

三、LSTM

圖3.1 LSTM1
圖3.2 LSTM2

  • peephole

圖3.3 LSTM3

  • Naive RNN vs LSTM
    記憶更新部分的操作,Naive RNN為乘法,LSTM為加法。因此LSTM能記得更久些。
    \(\delta_c^t=\frac{\partial L}{\partial c^t}=\frac{\partial L}{\partial c^{t+1}}\frac{\partial c^{t+1}}{\partial c^t}=\delta_c^{t+1}(z^f+\cdots)\)。當\(z^f=1\)時,即使其他項很小,梯度也能夠很好地傳達到上一個時刻;當\(z^f=0\)時,上一個時刻的記憶不會影響當前時刻,梯度也不會回傳回去。因此,\(z^f\)控制了梯度回傳的衰減程度。
    能有效地緩解梯度消失/爆炸問題。

圖3.4 LSTM4

  • LSTM設計原因

圖3.5 LSTM5

標准形式的LSTM能工作得很好;輸入門與遺忘門聯動(類似GRU)以及沒有peephole也能工作得很好。
輸出激活函數、遺忘門對於LSTM的表現很重要。

四、GRU

圖4.1 GRU1
圖4.2 GRU2

與LSTM相比,GRU可以看做是輸入門和遺忘門聯動。由4個矩陣乘法變為了3個,參數量更少,降低了過擬合的可能性。

五、attention基礎

  • dot
    \(S_{ab}=h_a^Th_b\)
  • general
    \(S_{ab}=h_a^T W h_b\)
  • concat
    \(S_{ab}=v^T tanh(W_a h_a+W_b h_b)\)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM