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个,参数量更少,降低了过拟合的可能性。

扫描二维码关注公众号,回复: 6103317 查看本文章

五、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)\)

猜你喜欢

转载自www.cnblogs.com/cherrychenlee/p/10804730.html