Long Short term memory unit(LSTM)

整理并翻译自吴恩达深度学习系列视频:序列模型第一周。

Prerequisite:Gated Recurrent Unit(GRU)

Long Short term memory unit(LSTM)

在这里插入图片描述
GRU 和 LST的对比。

LTSM计算公式如下:
C ~ < t > = t a n h ( W c [ a < t − 1 > , x < t > ] + b c ) \tilde{C}^{<t>}=tanh(W_c[a^{<t-1>}, x^{<t>}]+b_c) C~<t>=tanh(Wc[a<t1>,x<t>]+bc)
Γ u = σ ( W u [ C < t − 1 > , x < t > ] + b u ) \Gamma_u=\sigma(W_u[C^{<t-1>}, x^{<t>}]+b_u) Γu=σ(Wu[C<t1>,x<t>]+bu)
Γ f = σ ( W f [ C < t − 1 > , x < t > ] + b f ) \Gamma_f=\sigma(W_f[C^{<t-1>}, x^{<t>}]+b_f) Γf=σ(Wf[C<t1>,x<t>]+bf)
Γ o = σ ( W 0 [ C < t − 1 > , x < t > ] + b o ) \Gamma_o=\sigma(W_0[C^{<t-1>}, x^{<t>}]+b_o) Γo=σ(W0[C<t1>,x<t>]+bo)
C < t > = Γ u C ~ < t > + Γ f C < t − 1 > C^{<t>}=\Gamma_u\tilde{C}^{<t>}+\Gamma_fC^{<t-1>} C<t>=ΓuC~<t>+ΓfC<t1>
a < t > = Γ o ∗ C < t > a^{<t>}=\Gamma_o*C^{<t>} a<t>=ΓoC<t>

LSTM有三个门控值,使用 Γ f \Gamma_f Γf替换GRU里的 1 − Γ u 1-\Gamma_u 1Γu,并且增加一个新的 Γ o \Gamma_o Γo来控制输出的值。

LSTM的图示结构如下图所示:
在这里插入图片描述
如图红色直线所示,只要三个门控值 Γ u \Gamma_u Γu Γ f \Gamma_f Γf Γ o \Gamma_o Γo设置得当,我们需要的信息可以一直向后传递。

这种结构的常见变种是peephole connection,即计算门控值时,也使用了前一层的 C < t − 1 > C^{<t-1>} C<t1>,如图中绿色圈起来的部分。

GRU其实是LSTM的一种简化版本,事实上LTSM先于GRU被发明出来。

GRU只有2个门控值,简单,计算快,可以扩展到更大的模型上;LSTM有三个门控值,更强大,更灵活。历史上,LTSM经常被当做首位的默认选择,但最近几年GRU获得了很多团队的支持,因为它很简单,也能做出很好地效果,更容易扩展到更大的问题。

posted @ 2019-01-16 22:15  从流域到海域  阅读(64)  评论(0编辑  收藏  举报