长短期记忆网络(Long Short-Term Memory networks( 二 )


3LSTM
长短记忆神经网络——通常称作LSTM,是一种特殊的RNN,能够学习长的依赖关系 。他们由&引入,并被许多人进行了改进和普及 。
LSTM是为了避免长依赖问题而精心设计的 。记住较长的历史信息实际上是他们的默认行为,而不是他们努力学习的东西 。
所有循环神经网络都具有神经网络的重复模块链的形式 。在标准的RNN中,该重复模块将具有非常简单的结构,例如单个tanh层 。
图5标准RNN中的重复模块的单层神经网络
LSTM也拥有这种链状结构,但是重复模块则拥有不同的结构 。与神经网络的简单的一层相比,LSTM拥有四层,这四层以特殊的方式进行交互 。
图6LSTM中的重复模块包含的四层交互神经网络层
现在,让我们先熟悉一下我们将要使用的符号 。
图7
在上图中,
4LSTM背后的核心理念
LSTM的关键是细胞状态,表示细胞状态的这条线水平的穿过图的顶部 。
细胞的状态类似于输送带,细胞的状态在整个链上运行,只有一些小的线性操作作用其上,信息很容易保持不变的流过整个链 。
图8
LSTM确实具有删除或添加信息到细胞状态的能力,这个能力是由被称为门(Gate)的结构所赋予的 。
门(Gate)是一种可选地让信息通过的方式 。它由一个神经网络层和一个点乘法运算组成 。

长短期记忆网络(Long Short-Term Memory networks

文章插图
图9门(Gate)
神经网络层输出0和1之间的数字,这个数字描述每个组件有多少信息可以通过,0表示不通过任何信息,1表示全部通过 。
LSTM有三个门,用于保护和控制细胞的状态 。
5一步步的拆解LSTM
5. gate忘记门(遗忘门)
图10
LSTM的第一步是决定我们要从细胞状态中丢弃什么信息 。该决定由被称为“忘记门”的层实现 。它查看
(前一个输出)和
(当前输入),并为单元格状态
(上一个状态)中的每个数字输出0和1之间的数字 。1代表完全保留,而0代表彻底删除 。
让我们回到语言模型的例子,试图根据以前的语料来预测下一个单词 。在这样的问题中,细胞状态可能包括当前主语的性别,从而决定使用正确的代词 。当我们看到一个新主语时,我们想要忘记旧主语的性别 。
5. gate输入门
图11
下一步是决定我们要在细胞状态中存储什么信息 。这部分分为两步 。
首先,称为“输入门层”的层决定了我们将更新哪些值 。接下来一个tanh层创建候选向量Ct,该向量将会被加到细胞的状态中 。
在下一步中,我们将结合这两个向量来创建更新值 。
在我们的语言模型的例子中,我们希望将新主语的性别添加到单元格状态,以替换我们忘记的旧主语 。
5.3更新上一个状态值Ct?1
图12
现在是时候去更新上一个状态值
了,将其更新为
。之前的步骤已经决定了应该做什么,我们只需实际执行即可 。
我们将上一个状态值乘以
,以此表达期待忘记的部分 。之后我们将得到的值加上
。这个得到的是新的候选值,按照我们决定更新每个状态值的多少来衡量 。
在语言模型的例子中,对应着实际删除关于旧主语性别的信息,并添加新信息,正如在之前的步骤中描述的那样 。
5.4 输出门 gate
图13
最后,我们需要决定我们要输出什么 。此输出将基于我们的细胞状态,但将是一个过滤版本 。首先,我们运行一个层,它决定了我们要输出的细胞状态的哪些部分 。然后,我们将单元格状态通过tanh(将值规范化到-1和1之间),并将其乘以门的输出,至此我们只输出了我们决定的那些部分 。