(Unfinished)尚未完成
一、说明
二、LSTM
前向计算step by step
1、结构review
- 我们知道
RNN
的结构如下图- 注意
cell
中的神经元可以有多个
- 注意
LSTM
就是对cell
结构的改进
- 符号说明
LSTM
的关键就是state
,就是对应上面的主线数据的传递
2、前向计算step by step
(1) 决定抛弃的信息
- 遗忘门 (
forget gate layer
) -
σ
是
Sigmoid
激励函数,因为它的值域是(0,1)
,0
代表遗忘所有信息,1
代表保留所有信息
(2) 决定存储的新信息
- 包括两个部分
- 第一个是输入门 (
input gate layer
),对应的是Sigmoid
函数 - 第二个是经过
tanh
激励函数
- 第一个是输入门 (
(3) 更新state
Ct−1
成
Ct
-
ft
是经过
Sigmoid
函数的,所以值域在(0,1)
之间, Ct−1 点乘0-1
之间的数实际就是对 Ct−1 的一种缩放,(可以认为是记住之前信息的程度) - 然后加入进来的新的信息
(4) 最后计算输出
- 输出门(
output gate layer
)
- 最后再放一下之前的图, 数据流向可能更清晰
三、GRU (Gated Recurrent Unit)
1、结构和前向计算
- 如下图所示
- 相比
LSTM
,GRU
结合了遗忘门和输入门 - 同样也合并了
cell state
和hidden state
(就是LSTM
中的c
和h
) GRU
比LSTM
更加简单
- 相比
Reference
- https://colah.github.io/posts/2015-08-Understanding-LSTMs/
- https://r2rt.com/written-memories-understanding-deriving-and-extending-the-lstm.html#dealing-with-vanishing-and-exploding-gradients
- http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf
原文地址: http://lawlite.me/2017/06/21/RNN-%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%B9%8BLSTM%E5%92%8CGRU-04%E4%BB%8B%E7%BB%8D%E5%8F%8A%E6%8E%A8%E5%AF%BC/