网上那张彩图感觉有的点乱感觉这张图表达更清晰,懒得重新画了,直接放照片
z
=
t
a
n
h
(
W
z
[
h
t
−
1
,
x
t
]
)
(
输
入
值
)
z=tanh(W_z[h_{t-1},x_t])~~~~~~~~~(输入值)
z=tanh(Wz[ht−1,xt]) (输入值)
i
=
s
i
g
m
o
i
d
(
W
i
[
h
t
−
1
,
x
t
]
)
(
输
入
门
)
i=sigmoid(W_i[h_{t-1},x_t])~~~~~~~~~(输入门)
i=sigmoid(Wi[ht−1,xt]) (输入门)
f
=
s
i
g
m
o
i
d
(
W
f
[
h
t
−
1
,
x
t
]
)
(
遗
忘
门
)
f=sigmoid(W_f[h_{t-1},x_t])~~~~~~~~~(遗忘门)
f=sigmoid(Wf[ht−1,xt]) (遗忘门)
o
=
s
i
g
m
o
i
d
(
W
o
[
h
t
−
1
,
x
t
]
)
(
输
出
门
)
o=sigmoid(W_o[h_{t-1},x_t])~~~~~~~~~(输出门)
o=sigmoid(Wo[ht−1,xt]) (输出门)
c
t
=
f
⋅
c
t
−
1
+
i
⋅
z
(
新
状
态
)
c_t=f\cdot c_{t-1}+i\cdot z~~~~~~~~~~~(新状态)
ct=f⋅ct−1+i⋅z (新状态)
h
t
=
o
⋅
t
a
n
h
(
c
t
)
(
输
出
)
h_t=o\cdot tanh(c_t)~~~~~~~~~~~~~~~(输出)
ht=o⋅tanh(ct) (输出)
解释:
1.input与h进行concat操作,[ht-1,xt]
2.x分别于权重矩阵w(f),w(i),w(j),w(o)进行矩阵点乘操作,分别得到结果矩阵f、i、j、o,其中w(f),w(i),w(j),w(o)就是该LSTM细胞的核心权重参数,训练的目的也就是训练这四个权重矩阵参数
3.对矩阵f进行sigmod操作即sigmod(f),对矩阵i也进行sigmod操作,即sigmod(i),对矩阵j进行tanh操作,即tanh(j),对矩阵o进行sigmod操作即sigmod(o)
4.计算新的c ,新c=老c*sigmod(f)+(sigmod(i)*tanh(j))
5.计算新的h ,新h=tanh(新c)*sigmod(o)