LSTM 与 GRU
一、综述
LSTM 与 GRU是RNN的变种,由于RNN存在梯度消失或梯度爆炸的问题,所以RNN很难将信息从较早的时间步传送到后面的时间步。LSTM和GRU引入门(gate)的机制,通过门控制序列信息中要丢弃或保留的数据,在一定程度上缓解了RNN无法将信息传送到较后时间步的问题。
二、LSTM
Long Shot-Term Memory(长短时记忆网络),通过引入门的机制,实现对信息的“记忆”。
- 记忆是一种随时间变化的状态。
- 决定记忆状态的两大因素:选择性的输入、选择性的遗忘。
LSTM中的主要概念:
- 细胞的状态
- 输入门
- 遗忘门
- 输出门
- 图中黄色类似于CNN里的激活函数操作
- 粉色圆圈表示点操作
- 单箭头表示数据流向
- 箭头合并表示向量的合并(concat)操作
- 箭头分叉表示向量的拷贝操作
2.1 细胞状态
LSTMs的核心是细胞状态,用贯穿细胞的水平线表示。
细胞状态像传送带一样,贯穿整个细胞 却只有很少的分支,这样能保证信息不变的流过整个RNNs。(人的记忆状态贯穿人的一生。)
2.2 门
LSTM网络能通过一种被称为门的结构对细胞状态进行删除或则添加信息。
门能够有选择性地决定 让哪些信息通过。其实门的结构很简单,就是一个sigmoid层和一个点乘操作的组合。
因为sigmoid层的输出是0-1的值,这代表有多少信息能够流过sigmoid层。0表示都不能通过,1表示都能通过。
一个LSTM里面包含三个门:
- 忘记门
- 输入门
- 输出门
2.2.1 忘记门(forget gate)
LSTM的第一步就是决定细胞状态需要丢弃哪些信息。
这部分操作是通过一个被称为忘记门的sigmoid单元来处理的。它通过查看
h
t
−
1
h_{t-1}
ht−1和
x
t
x_t
xt来输出一个0-1之间的向量,该向量里面的0-1值表示细胞状态
C
t
−
1
C_{t-1}
Ct−1中的哪些信息保留或丢弃多少。0表示不保留,1表示都保留。
2.2.2 输入门(input gate)
第二步:决定给细胞状态添加哪些新的信息。
分为两个步骤,首先 利用
h
t
−
1
h_{t-1}
ht−1和
x
t
x_t
xt通过一个称为输入门的操作来决定更新哪些信息。
再利用
h
t
−
1
h_{t-1}
ht−1和
x
t
x_t
xt通过
t
a
n
h
tanh
tanh层得到新的候选细胞信息
C
t
~
\widetilde{C_t}
Ct
,这些信息可能会被更新到细胞信息中。
第三步:更新旧的细胞信息
C
t
−
1
C_{t-1}
Ct−1,变为新的细胞信息
C
t
C_t
Ct。
更新的规则,通过忘记门选择忘记旧细胞信息的一部分,通过输入门选择添加候选细胞信息
C
t
~
\widetilde{C_t}
Ct
的一部分得到新的细胞信息
C
t
C_t
Ct.
注:⊙为Hadamard积
2.2.3 输出门(output gate)
第四步: 根据输入的
h
t
−
1
h_{t-1}
ht−1和
x
t
x_t
xt来判断输出细胞的哪些状态特征。
需要将输入经过一个称为输出门的sigmoid层得到判断条件,然后将细胞状态经过tanh层得到一个 -1~1之间值的向量,该向量与输出门得到的判断条件相乘就得到了最终该RNN单元的输出。
2.2.4 总结
三、GRU
在GRU模型中只有两个门:
- 重置门(r):控制前一状态有多少 信息被写入到当前的候选状态 ℎ̃上 的程度,重置门越小,前一状态的信 息被写入的越少。
- 更新门(z):控制前一时刻的状态 信息与候选状态信息被带入到当前状 态中的程度。