LSTM
LSTM原文下载地址
LSTM介绍
lstm的全称为Long Short Term Memory,译作长短期记忆网络,由Hochreiter & Schmidhuber于1977年提出,在深度学习兴起后,经过多位大佬的努力,LSTM开始发光发热。
LSTM解决的问题
LSTM解决的是RNN中遇到的长期依赖问题(主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题)
LSTM unit
unit配图 之后补上
LSTM的门机制
- 输入门
- 遗忘门
- 输出门
遗忘门:
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)
输入门:
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)
细胞(单位)状态更新
C ~ t = t a n h ( W c ⋅ [ h t − 1 , x t ] + b c ) \tilde{C}_{t}=tanh(W_{c}\cdot[h_{t-1},x_{t}]+b_{c}) C~t=tanh(Wc⋅[ht−1,xt]+bc)
输出门:
o t = σ ( W o ⋅ ( [ h t − 1 , x t ] + b o ) ) o_{t}=\sigma({W_{o}\cdot([h_{t-1},x_{t}]+b_{o}})) ot=σ(Wo⋅([ht−1,xt]+bo))
lstm迭代过程:
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∗C~t
h
t
=
o
t
∗
t
a
n
h
(
C
t
)
h_{t}=o_{t}*tanh(C_{t})
ht=ot∗tanh(Ct)