由于梯度消失,RNN很难处理长序列的数据,LSTM(Long Short-Term Memory)对RNN进行改进,可以避免常规RNN的梯度消失,在工业界得到了广泛的应用。
1. 从RNN到LSTM
RNN具有如下的结构,每个序列索引位置t都有一个隐藏状态h(t)。
如果略去每层都有的,则RNN的模型可以简化成如下图的形式:
图中可以很清晰看出在隐藏状态后一方面用于当前层的模型损失计算,另一方面用于计算下一层的
。
由于RNN梯度消失的问题,大牛们对于序列索引位置t的隐藏结构做了改进,可以说通过一些技巧让隐藏结构复杂了起来,来避免梯度消失的问题。由于LSTM有很多的变种,这里我们以最常见的LSTM为例讲述。LSTM的结构如下图:
2. LSTM模型结构剖析
在每个序列索引位置t时刻向前传播的除了和RNN一样的隐藏状态,还多了另一个隐藏状态,称为细胞状态(Cell State),记为C(t),如图中上面的长横线。
除了细胞状态,LSTM图中还有门控结构(Gate)。LSTM在每个序列索引位置t的门一般包括遗忘门,输入门和输出门三种。下面介绍LSTM的遗忘门,输入门和输出门以及细胞状态。
2.1 LSTM之遗忘门
遗忘门(forget gate)是控制是否遗忘的,在LSTM中以一定的概率控制是否遗忘上一层的隐藏细胞状态。遗忘门子结构如下图所示:
2.2 LSTM之输入门
输入门(input gate)负责处理当前序列位置的输入,它的子结构如下图:
2.3 LSTM之细胞状态更新
2.4 LSTM之输出门
有了新的隐藏细胞状态C(t),输出门子结构如下:
3. LSTM前向传播算法
4. LSTM反向传播算法推导关键点
LSTM反向传播算法思路和RNN算法一致,通过梯度下降法迭代更新所有的参数,关键点在于计算所有参数基于损失函数的偏导数。