目录
一.什么是LSTM
RNN可以用来解决文本生成、语音识别、机器翻译以及时序分析等NLP领域的问题,由于RNN在长序列训练过程中会出现梯度消失和梯度爆炸问题,而LSTM是RNN的一种变种,可以有效地解决RNN的梯度爆炸或者消失问题。
LSTM的改进在于增加了新的记忆单元与门控机制
记忆单元
LSTM进入了一个新的记忆单元,用于进行线性的循环信息传递,同时输出信息给隐藏层的外部状态。在每个时刻 t,记录了到当前时刻为止的历史信息。
门控机制
LSTM引入门控机制来控制信息传递的路径。LSTM中的三个门为遗忘门,输入门和输出门
- 控制上一个时刻的记忆单元,需要遗忘多少信息,
- 控制当前时刻的候选状态有多少信息需要存储
- 控制当前时刻的记忆单元,有多少信息需要输出给外部状态,下面我们就看看改进的新内容在LSTM的结构中是如何体现的。
二.LSTM的原理
2.1 LSTM的网络结构
2.1.1 普通的全连接神经网络
2.1.2 RNN
2.1.3 LSTM
2.2 LSTM网络中节点的内部结构
LSTM网络由一个个的LSTM单元连接而成,一个LSTM单元的内部结构如下图所示。
下图描述了节点内部结构中各种元素的图标,从左到右分别为,神经网络(σ 表示sigmoid)、向量元素操作(× 表示向量元素乘,+ 表示向量元素相加),向量传输的方向、向量连接、向量复制
2.3 LSTM的计算过程
1.遗忘门
在这一步中,遗忘门读取和,经由sigmoid,输入一个在0到1之间数值给每个在记忆单元中的数字,1表示完全保留,0表示完全舍弃。
2.输入门
输入门将确定什么样的信息内存放在记忆单元中,这里包含两个部分。
- sigmoid层同样输出[0,1]的数值,决定候选状态有多少信息需要存储
- tanh层会创建候选状态
更新记忆单元
随后更新旧的细胞状态,将更新为
首先将旧状态与相乘,遗忘掉由所确定的需要遗忘的信息,然后加上,由此得到了新的记忆单元
3.输出门
结合输出门将内部状态的信息传递给外部状态。同样传递给外部状态的信息也是个过滤后的信息,首先sigmoid层确定记忆单元的哪些信息被传递出去。然后,把细胞状态通过 tanh 层进行处理(得到 [-1,1] 的值)并将它和输出门的输出相乘,最终外部状态仅仅会得到输出门确定输出的那部分。
通过LSTM循环单元,整个网络可以建立较长距离的时序依赖关系,以上公式可以简洁地描述为