深度学习(五)~ LSTM 与 GRU

深度学习(五)~ LSTM 与 GRU

  • 基于门控的循环神经网络
    • 1. 长短期记忆神经网络(LSTM)
      • 1. RNN vs LSTM
      • 2. LSTM工作机制
        • (1).【LSTM前向传播】
        • (2).【LSTM反向传播】
    • 2. 门控循环单元网络(GRU)
      • 1. GRU工作机制

基于门控的循环神经网络

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

1. RNN vs LSTM

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

2. LSTM工作机制

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

(1).【LSTM前向传播】

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

(2).【LSTM反向传播】

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

设t时刻损失函数为Et,则全局损失为:
在这里插入图片描述
反向求偏导过程同RNN
注意: LSTM模型有两个隐藏状态 ht 和Ct ,需要学习 Wf, Uf, bf, Wc, Uc, bc, Wi, Ui, bi, Wo, Uo, bo ,V以及输出偏置项c这些参数,且其中权重都是拼接的,在学习时需要拆出来求.
深度学习(五)~ LSTM 与 GRU_第4张图片

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

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

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

GRU是在LSTM上进行简化而得到的,不引入额外的记忆单元,只有两个门,分别为更新门和重置门
深度学习(五)~ LSTM 与 GRU_第5张图片

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,当前状态与当前输入无关.
在这里插入图片描述
全局误差:
在这里插入图片描述

你可能感兴趣的:(深度学习)