循环神经网络(RNN)与长短期记忆模型(LSTM)

循环神经网络

1.循环神经网络(Recurrent neural networks,下称"RNN")是一种序列建模的神经网络。传统的简单神经网络输入数据不考虑输入数据的前后关系,输入和输出是相互独立的,而RNN独特之处在于它们能够解决时序数据和时间序列问题,常见的包括带有顺序的文本数据、股价随时间波动的时间序列数据等。

循环神经网络(RNN)与长短期记忆模型(LSTM)_第1张图片

2.RNN简化理解

以文本顺序数据为例,今天天气真好,通过隐藏层的记忆单元来构建前后的关系,当我输入今天的时候,会预测输出下一个文字天气和真好的概率输出值,不过首先要先对文字进行编码,将文字转化成特定的向量传入网络,输出通过softmax处,用向量表示下一个各文字出现的概率。

3.RNN循环神经网络定义及BPTT(时序反向传播)计算

3.1如图,RNN结构每个参数的定义
  • xt:表示每个时刻的输入
  • ot:表示每个时刻的输出
  • st:表示每个时刻隐藏层的输出
  • U:表示输入神经元的权重
  • V:表示输出层的权重
  • W:表示循环神经元的权重
  • U、V、W权重是共享的
    通过展开RNN结构发现,通过 st隐藏层将前后输入数据关联,贯穿整个网络,一定程度上解决传统神经网络中前后数据不关联问题
    循环神经网络(RNN)与长短期记忆模型(LSTM)_第2张图片
3.2定义通用公式(g表示激活函数)

循环神经网络(RNN)与长短期记忆模型(LSTM)_第3张图片

3.3通过BPTT反向更新参数
3.3.1 t=3时刻,对V、W、U的求偏导,L3表示在t3时刻的损失
  • 1.对参数V求导
    在这里插入图片描述
  • 2.对W求导(根据通用公式发现W和S2、S1有关,需要对W进行复合求导)

循环神经网络(RNN)与长短期记忆模型(LSTM)_第4张图片

  • 3针对U求导,同理U和S2、S1有关有关,需要对U进行复合求导
    循环神经网络(RNN)与长短期记忆模型(LSTM)_第5张图片
3.3.2 基于前面t=3时刻进一步推导,对t时刻V、W、U参数进行求偏导
  • 1.对参数V求导
    在这里插入图片描述
  • 2.对W求导,这里注意的是,由于隐藏层是相互关联的,同时都与W有关,那么隐藏层st会与上个隐藏层之间存在连乘项
    循环神经网络(RNN)与长短期记忆模型(LSTM)_第6张图片
  • 3.同理对U求导与对W求导类似,会产生连乘
    在这里插入图片描述
3.3.3 基于前面t时刻进一步推导总的损失函数对V、W、U的影响

循环神经网络(RNN)与长短期记忆模型(LSTM)_第7张图片
这里发现有大量的连乘项,如果连乘项过多很容易梯度消失或梯度爆炸,对此,进行进一步的分析。

3.3.4单独取出上图中红色方框某一项连乘项,对上一项进行求导,由于激活函数是固定的,最终影响RNN梯度消失或者梯度爆炸是W

循环神经网络(RNN)与长短期记忆模型(LSTM)_第8张图片

3.4 由于RNN结构容易产生梯度消失或者梯度爆炸状况,同时随着连乘项过多,距离越远两个数据关系越弱,针对该问题,LSTM网络结构产生

长短期记忆网络模型(LSTM)

1.长短期记忆模型(Long short-term memory,下称"LSTM"),这里的Ct代表细胞状态,用于保存长期记忆,可以理解为LSTM中"long-term memory",ht代表隐藏状态。表示当前时间同步的短期记忆状态,可以被认为是"short-term memory"。比较RNN网络结构,增加门控机制,来建立比较长的网络结构。,LSTM通过门结构的控制来删除或添加细胞状态信息,门可以看成对信息有选择的筛选方式。

循环神经网络(RNN)与长短期记忆模型(LSTM)_第9张图片

2.LSTM网络结构
2.1Ct细胞状态:LSTM细胞状态表示成图表上水平线,细胞状态类似传送带,在链条上只有线性的相互作用,信息很容易沿着它不变地流动。

循环神经网络(RNN)与长短期记忆模型(LSTM)_第10张图片

2.2遗忘门:LSTM 的第一步是决定从细胞中扔掉哪些信息。这需要使用一种称为“遗忘门”的 sigmoid 层来完成,该层检查 ht-1 和 xt,并为每个细胞状态 Ct-1 中的数字输出 0 到 1 之间的数字。一个 1 表示“完全保留此信息”,而 0 表示“完全删除此信息”。试想,我们输入某个词语,但是我们认为是不重要,我们会删除它或者在模型内部来降低它的权重。

循环神经网络(RNN)与长短期记忆模型(LSTM)_第11张图片

2.3输入门:这里需要决定将那些有效信息存储进来,一个是通过sigmod层决定将那些有效信息保存进来,另外通过tanh层创建一个新的潜在向量Ct将信息压缩-1-1之间,两个部分同时结合起来,创建一个更新状态的操作。

循环神经网络(RNN)与长短期记忆模型(LSTM)_第12张图片

2.4更新Ct:这是对遗忘门和输入门的数据进行汇总,来将细胞状态Ct-1更新至细胞状态Ct,我们乘以遗忘门ft,然后结合输入门的更新信息it*Ct,这样得出全新细胞状态Ct

循环神经网络(RNN)与长短期记忆模型(LSTM)_第13张图片

2.5输出门:首先运行sigmod层,决定我们要输出那部分信息,然后将更新的细胞状态Ct通过tanh层,两者结合输出需要的部分Ot

循环神经网络(RNN)与长短期记忆模型(LSTM)_第14张图片

2.6梳理出前面的步骤,得出下面公式

循环神经网络(RNN)与长短期记忆模型(LSTM)_第15张图片

3.为什么LSTM能解决RNN梯度消失和梯度爆炸问题?

这里LSTM中的Ct相当于RNN隐藏层,主要由于ht代表短期记忆,只是Ct的一个输出,表示当前时间段一个记忆的浓缩,而Ct代表长期记忆,是LSTM主要单元,贯穿整个网络中,这里用Ct进行推导

根据前面RNN推导我们发现,由于RNN隐藏层之间存在连乘项,且连乘项越多,代表前面输入数据和后面输入数据之间距离越大,会形成梯度消失或者梯度爆炸情况,而这里截取LSTM Ct和Ct-1,对Ct-1进行求导,如图,求导发现只存在只有遗忘门一项,且通过sigmod激活函数后,取值在在0-1之间,因此,不存在梯度爆炸情况的发生,如果通过控制将值趋近于1,也避免了梯度消失的情况。
循环神经网络(RNN)与长短期记忆模型(LSTM)_第16张图片

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