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))
原文地址:https://www.cnblogs.com/cherrychenlee/p/10804730.html