赞
踩
这部分内容基本都是来自Step-by-step to LSTM: 解析LSTM神经网络设计原理,只是摘录了部分内容并添加了一些贫僧的想法。
LSTM(Long Short Term Memory,长短期记忆,注意这里的“长短期”,后面会提到是什么意思)的作者是个有点奇怪的人1,他的名字是Jürgen Schmidhuber(发音也挺奇怪)。LSTM的作者很有意思,如果读者感兴趣的话可以自己去看看相关资料(一定要去看作者本人的个人网站)。
接下来我们直接看LSTM,放一张网络上极为常见的图:
图片来自Understanding LSTM Networks,(丑的要死的)红色字体是贫僧加的。
注意图中hidden state(短期记忆)和cell state(长期记忆)的传递,以及输出其实就是 h t h_t ht。
然后就是LSTM的计算公式:
输入门:
i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) i_t = \sigma (W_i \cdot [h_{t-1}, x_t] + b_i) it=σ(Wi⋅[ht−1,xt]+bi)
遗忘门:
f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma (W_f \cdot [h_{t-1}, x_t] + b_f) ft=σ(Wf⋅[ht−1,xt]+bf)
C t ~ = tanh ( W C ⋅ [ h t − 1 , x t ] + b C ) \tilde{C_t} = \tanh{(W_C \cdot [h_{t-1}, x_t] + b_C)} Ct~=tanh(WC⋅[ht−1,xt]+bC)
输出门:
o t = σ ( W o [ h t − 1 , x t ] + b o ) o_t = \sigma (W_o [h_{t-1}, x_t] + b_o) ot=σ(Wo[ht−1,xt]+bo)
两种记忆:
长记忆: C t = f t ∗ C t − 1 + i t ∗ C t ~ C_t = f_t * C_{t-1} + i_t * \tilde{C_t} Ct=ft∗Ct−1+it∗Ct~
短记忆: h t = o t ∗ tanh ( C t ) h_t = o_t * \tanh(C_t) ht=ot∗tanh(Ct
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。