深度学习之长短期记忆网络LSTM

 

LSTM(Long Short-Term Memory networks)是一种时间递归神经网络,是RNN的改进之一,解决了RNN不易处理的远距离信息上下文依赖、梯度消失或梯度爆炸等问题。LSTM的结构类似RNN,区别在于将传统神经元用记忆单元代替,这个单元由遗忘门、输入门和输出门组成,根据规则判断信息期限,长期记忆信息可以传到很深的层,短期记忆信息将很快被遗忘。

深度学习之长短期记忆网络LSTM

所有的递归神经网络都由重复的链式模块组成,标准RNN的重复模块只包含一个tanh;LSTM的重复模块包含3个sigmoid和一个tanh。

深度学习之长短期记忆网络LSTM

 

一、LSTM的结构

LSTM的记忆单元由上下两条线构成,每条线表示向量的传递,上面的线表示隐状态中的细胞状态 深度学习之长短期记忆网络LSTM(cell state),类似传送带,直接在整个链上传递,只有少量的线性交互,信息在上面的流传保持不变很容易。

        深度学习之长短期记忆网络LSTM

下面的线为门控结构(gate)计算,门是一种让信息选择式通过的方法,可以增加或减少细胞状态的信息,LSTM中主要有3个门结构来控制细胞状态。

1、遗忘门

决定上一时刻的细胞状态 深度学习之长短期记忆网络LSTM 有多少保留到当前时刻 深度学习之长短期记忆网络LSTM,可以保存很久之前的信息。例如语言模型中预测下一个词时,细胞状态可能包含了当前主语的性别信息(“他”或者“她”)因此可以选出正确的代词;当遇到新的主语时,希望忘记旧的主语选出新的代词。

sigmoid层输出0到1之间的数字,表示信息可以通过门限的比例:0表示不让任何信息通过,1表示让所有信息通过。

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

 

2、输入门

决定当前时刻的输入 深度学习之长短期记忆网络LSTM 有多少保存到细胞状态 深度学习之长短期记忆网络LSTM,可以避免当前无关紧要的内容进入记忆,分为生成临时新状态、更新旧状态两个步骤。sigmoid层决定哪些值需要更新,tanh层创建一个新的候选向量 深度学习之长短期记忆网络LSTM,为状态更新做准备。

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

由于遗忘门和输入门都会作用于细胞状态,将长期记忆 深度学习之长短期记忆网络LSTM深度学习之长短期记忆网络LSTM 相乘,去掉不需要的信息;再加上新的记忆 深度学习之长短期记忆网络LSTM,得到最终更新后的细胞状态,*为Hadamard积:

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

 

3、输出门

控制细胞状态 深度学习之长短期记忆网络LSTM 有多少成为LSTM的输出 深度学习之长短期记忆网络LSTM深度学习之长短期记忆网络LSTM 由两部分组成:第一部分由 深度学习之长短期记忆网络LSTM深度学习之长短期记忆网络LSTM 进行sigmoid**得到,第二部分由细胞状态经过tanh**得到,二者再求Hadamard乘积。

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

 

二、LSTM的前向传播

Forget Gate:

        深度学习之长短期记忆网络LSTM

Input Gate:

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

Cell State:

        深度学习之长短期记忆网络LSTM

Output Gate:

        深度学习之长短期记忆网络LSTM

        深度学习之长短期记忆网络LSTM

Final Output:

        深度学习之长短期记忆网络LSTM

假设深度学习之长短期记忆网络LSTM,每个细胞内有d个门结构,上面公式中的W*、U*分别为深度学习之长短期记忆网络LSTM维。W为总权重,I为总输入,则模型预测输出为:

        深度学习之长短期记忆网络LSTM

 

三、LSTM的反向传播

类似RNN中定义δ,LSTM的前向、后向传播如下所示,为了简化表示隐藏了门的结构。

深度学习之长短期记忆网络LSTM

Output:

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

Cell update:

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

Input:

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

 

四、LSTM结构的变体

1、增加窥视孔层peephole connections

让门层也接受细胞状态的输入,增加了下图中标注的线(许多论文会加入部分的peephole而不是所有的都加)。

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

 

2、coupled遗忘门和输入门

通过耦合忘记门和输入门,不再单独考虑信息的遗忘或增加,而是一起进行考虑。我们仅在要输入信息时遗忘旧的信息,仅在要遗忘旧信息时输入新信息。

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

 

3、Gated Recurrent Unit(GRU)

Cho, et al. (2014)将遗忘门和输入门合并成为一个单一的更新门,同时合并了细胞状态和隐藏状态,结构比LSTM更加简单,是非常流行的LSTM变体。

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

       深度学习之长短期记忆网络LSTM

 

参考资料

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

http://arunmallya.github.io/writeups/nn/lstm/index.html#/

https://www.cnblogs.com/pinard/p/6519110.html

https://www.jianshu.com/p/dcec3f07d3b5