赞
踩
LSTM,长短期记忆 RNN,是 RNN 的变体,优点在于能学习长期依赖的信息,相当于有记忆功能。
LSTM 的关键就是 细胞状态(cell state),水平线在图上方贯穿运行。细胞状态类似于传送带,直接在整个链上运行,只有一些少量的线性交互。信息在上面流传比较容易保持不变。
LSTM 有通过精心设计的称作为“门“的结构来 去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid
神经网络层和一个按位的乘法操作。sigmoid
层输出 0 到 1 之间的数值,该数值控制着多少量的信息可以通过。0 代表不允许任何信息通过,1 代表任何信息都可通过。
LSTM 拥有三个门,来保护和控制细胞状态。
首先是遗忘门,它决定会从细胞状态中丢弃什么信息。 f t = 0 f_t = 0 ft=0 表示完全舍弃, f t = 1 f_t = 1 ft=1 表示完全保留。
然后是确定什么样的新信息被存放在细胞状态中。这里包含两个部分。第一,sigmoid
层称 “输入门层” 决定什么值我们将要更新。然后,一个 tanh
层创建一个新的候选值向量。
C
~
t
\tilde{C}_t
C~t 会被加入到状态中。
然后就是对细胞状态进行更新。
最终,需要确定输出值
h
t
h_t
ht。这个输出将会基于当前的细胞状态,但是也是一个过滤后的版本。首先,运行一个 sigmoid
层来确定隐藏状态的哪个部分将输出出去。接着,把细胞状态通过 tanh
进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid
门的输出相乘,最终输出该部分。
于是,整个传播过程由公式表示如下:
i
t
=
σ
(
W
i
i
x
t
+
b
i
i
+
W
h
i
h
t
−
1
+
b
h
i
)
f
t
=
σ
(
W
i
f
x
t
+
b
i
f
+
W
h
f
h
t
−
1
+
b
h
f
)
g
t
=
tanh
(
W
i
g
x
t
+
b
i
g
+
W
h
g
h
t
−
1
+
b
h
g
)
o
t
=
σ
(
W
i
o
x
t
+
b
i
o
+
W
h
o
h
t
−
1
+
b
h
o
)
c
t
=
f
t
⊙
c
t
−
1
+
i
t
⊙
g
t
h
t
=
o
t
⊙
tanh
(
c
t
)
it=σ(Wiixt+bii+Whiht−1+bhi)ft=σ(Wifxt+bif+Whfht−1+bhf)gt=tanh(Wigxt+big+Whght−1+bhg)ot=σ(Wioxt+bio+Whoht−1+bho)ct=ft⊙ct−1+it⊙gtht=ot⊙tanh(ct)
itftgtotctht=σ(Wiixt+bii+Whiht−1+bhi)=σ(Wifxt+bif+Whfht−1+bhf)=tanh(Wigxt+big+Whght−1+bhg)=σ(Wioxt+bio+Whoht−1+bho)=ft⊙ct−1+it⊙gt=ot⊙tanh(ct)
num_layers=2
意味着将两个 LSTM 堆叠在一起形成一个堆叠的 LSTM,第二个 LSTM 接收第一个 LSTM 的输出并计算最终结果。默认值:1;False
,则该层不使用偏置权重 b_ih
和 b_hh
。默认为 True
;True
,则输入和输出张量提供为 (batch, seq, feature) 而不是 (seq, batch, feature)。请注意,这不适用于隐藏或单元状态。默认值:False
;True
,则成为双向 LSTM。默认值:False
;batch_first=False
时,shape 为
(
L
,
N
,
H
i
n
)
(L, N, H_{in})
(L,N,Hin);当 batch_first=True
时,shape 为
(
N
,
L
,
H
i
n
)
(N, L, H_{in})
(N,L,Hin);h_t
。对于 unbatched 输入,shape 为
(
L
,
D
∗
H
out
)
\left(L, \ D * H_{\text {out }}\right)
(L, D∗Hout ),当 batch_first=False
时,shape 为
(
L
,
N
,
D
∗
H
o
u
t
)
(L, N, D * H_{out})
(L,N,D∗Hout);当 batch_first=True
时,shape 为
(
N
,
L
,
D
∗
H
o
u
t
)
(N, L, D * H_{out})
(N,L,D∗Hout);Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。