Bootstrap

LSTM详解

目录

一.什么是LSTM

二.LSTM的原理

2.1 LSTM的网络结构

2.1.1 普通的全连接神经网络

2.1.2 RNN

2.1.3 LSTM

2.2 LSTM网络中节点的内部结构

2.3 LSTM的计算过程


一.什么是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循环单元,整个网络可以建立较长距离的时序依赖关系,以上公式可以简洁地描述为

;