基于门控的循环神经网络

1. 长短期记忆神经网络(LSTM)

1. RNN vs LSTM

参数学习过程中连乘项可能发生极大或极小的情况,从而影响最终结果,也即梯度消失与梯度爆炸问题
深度学习(五)~基于门控的循环神经网络
LSTM采用了累加形式解决这一问题,但它的实现较复杂.与传统的循环神经网络相比,LSTM采用三门机制,输入门、遗忘门以及输出门和一个内部记忆单元.
深度学习(五)~基于门控的循环神经网络
从上图中可以看出,LSTM除了有三个门来控制当前的输入和输出,其他的和RNN是一致的。除了三门机制,LSTM还多了另一个隐藏状态,一般称为细胞状态(Cell State),记为 Ct ,即最上方的长横线

2. LSTM工作机制

LSTM学习过程由信号的正向传播与误差反向传播两个过程组成.

(1).【LSTM前向传播】

深度学习(五)~基于门控的循环神经网络
【遗忘门ft: 控制前一步记忆单元中细胞状态ct-1需要遗忘多少信息】
对前一时刻输出的隐状态选择性遗忘
深度学习(五)~基于门控的循环神经网络
【输入门it:控制当前时刻的候选状态有多少信息需要保存】
对当前输入观测序列进行选择性保留
深度学习(五)~基于门控的循环神经网络
创建候选集:
深度学习(五)~基于门控的循环神经网络
更新细胞状态:①决定哪些历史信息该流入当前细胞状态中(遗忘门控制).②决定哪些新的信息该流入细胞状态中(输入门控制)
深度学习(五)~基于门控的循环神经网络
【输出门ot:控制当前时刻的细胞状态ct有多少信息需要输出给外部状态ht
输出记忆信息序列:
深度学习(五)~基于门控的循环神经网络
输出隐状态(输出门输出的信息与细胞状态信息):
深度学习(五)~基于门控的循环神经网络
输出观测序列(只与当前状态有关):
深度学习(五)~基于门控的循环神经网络
其中每个[**]具体公式如下:
深度学习(五)~基于门控的循环神经网络

(2).【LSTM反向传播】

基本思想: 误差反向传播是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层的误差信号,此误差信号即作为修正单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程周而复始的进行,直到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止.

设t时刻损失函数为Et,则全局损失为:
深度学习(五)~基于门控的循环神经网络
反向求偏导过程同RNN
注意: LSTM模型有两个隐藏状态 ht 和Ct ,需要学习 Wf, Uf, bf, Wc, Uc, bc, Wi, Ui, bi, Wo, Uo, bo ,V以及输出偏置项c这些参数,且其中权重都是拼接的,在学习时需要拆出来求.
深度学习(五)~基于门控的循环神经网络

记忆单元c中保存的信息生命周期要长于短期记忆h,但又远远短于长期记忆,因此称为长短期记忆(Long Short-Term Memory)

  • 一般在深度学习中参数初始化值比较小,但是训练LSTM时,过小的值会使得遗忘门的值比较小,使得大部分先前信息丢失,难以捕捉长期信息,导致梯度弥散问题,因此遗忘的参数初始值一般设的比较大,其偏置向量bf设为1或2.

2. 门控循环单元网络(GRU)

GRU是在LSTM上进行简化而得到的,不引入额外的记忆单元,只有两个门,分别为更新门和重置门
深度学习(五)~基于门控的循环神经网络

1. GRU工作机制

【GRU前向传播】
【重置门(reset):候选隐含状态使用了重置门来控制过去有多少信息被遗忘】
深度学习(五)~基于门控的循环神经网络
【更新门(update):控制当前状态需要从历史状态中接受多少新信息】
深度学习(五)~基于门控的循环神经网络
当zt=0时,当前状态ht和前一时刻的状态ht-1之前为非线性函数关系;当zt=1时,当前状态ht和前一时刻的状态ht-1之前为线性函数关系

候选状态:
深度学习(五)~基于门控的循环神经网络
GRU网络状态更新:
深度学习(五)~基于门控的循环神经网络
可以看出,当zt=0,rt=1时,GRU退化为简单神经网络;当zt=0,rt=0时,当前状态只与当前输入有关,与历史状态无关;当zt=1时,ht=ht-1,当前状态与当前输入无关.
深度学习(五)~基于门控的循环神经网络
全局误差:
深度学习(五)~基于门控的循环神经网络