RNN 循环神经网络
RNN主要处理有时序关系的变长序列问题。每个神经元在每一时刻都一个特殊的hidden状态h(t),由当前节点的输入I(t)和上一时刻t-1隐藏状态h(t-1)加权求和后经过一个非线性**函数得到,具体表示成公式如下:
深度学习-RNN LSTM BI-LSTM
每个神经元t时刻隐状态
深度学习-RNN LSTM BI-LSTM
参数Whh决定了当前神经元以多少比例接受之前所有时刻[0,t-1]的输入信息

阻碍RNN发展的两个严重问题是:梯度爆炸 和 梯度消失、

RNN的对隐状态h(0)进行反向传播:
深度学习-RNN LSTM BI-LSTM
利用RNN时序上的依赖关系对上式深度学习-RNN LSTM BI-LSTM进行展开,得到(注意,下式成立的前提是**函数简化为线性函数):
深度学习-RNN LSTM BI-LSTM
继续对深度学习-RNN LSTM BI-LSTM进行矩阵奇异值分解(SVD):
深度学习-RNN LSTM BI-LSTM
因此最后要计算的目标为:
深度学习-RNN LSTM BI-LSTM
如果时间序列较长,深度学习-RNN LSTM BI-LSTM的奇异值如果>1,t个深度学习-RNN LSTM BI-LSTM连乘后会非常大,反之则会非常小

基于RNN的这个缺点,引入了LSTM

LSTM (Long-Short-Term-Memory)
LSTM相比RNN其实就是多了一个门(gate)机制和细胞记忆单元(cell-state)用来存储,用来记录信息。
深度学习-RNN LSTM BI-LSTM
深度学习-RNN LSTM BI-LSTM
复杂版的LSTM神经元机制
LSTM的化简过程
第一次化简

LSTM中有三个门控单元,,因为三者的计算方法都相同,区别只是使用了不同的权重矩阵以便反向传播时对三个门独立更新,因此可以不再特别考虑它们。
深度学习-RNN LSTM BI-LSTM
输入门、遗忘门、输出门
第二次化简

LSTM对各维度特征的门控单元也是独立更新的,为了简化表示,可以只考虑一维的情况。从一维推广到多维是很直观的。化简到一维后,最初的公式中向量内积可以转化成数和向量的乘积。
深度学习-RNN LSTM BI-LSTM
化简后的cell_state
第三次化简

三个门控单元经过sigmoid变化归一化到了[0,1]区间,因此可以看成是二值输出[0,1],也就是说门控单元可以看成是控制信息流通的开关。
深度学习-RNN LSTM BI-LSTM
sigmoid函数
用一张图表示

LSTM中的cell_state其实就相当于RNN中的隐藏神经元。为了方便用图表示,调整一下第二次化简中公式的顺序:
深度学习-RNN LSTM BI-LSTM
深度学习-RNN LSTM BI-LSTM
化简后的LSTM遗忘机制
由上图可以看出,当深度学习-RNN LSTM BI-LSTM时,LSTM退化为RNN

各个控制单元的作用

输出门深度学习-RNN LSTM BI-LSTM:用于保存深度学习-RNN LSTM BI-LSTM中对深度学习-RNN LSTM BI-LSTM有用的信息

输入门深度学习-RNN LSTM BI-LSTM:用于判断当前输入深度学习-RNN LSTM BI-LSTM是否对context有作用,当深度学习-RNN LSTM BI-LSTM时,使用深度学习-RNN LSTM BI-LSTM作为输入

遗忘门深度学习-RNN LSTM BI-LSTM:用于判断当前cell_state深度学习-RNN LSTM BI-LSTM对上一个cell_sate深度学习-RNN LSTM BI-LSTM的依赖程度,当前输入深度学习-RNN LSTM BI-LSTM如果依赖上文信息,关闭遗忘门即可。

细胞状态深度学习-RNN LSTM BI-LSTM:它包含了当前输入深度学习-RNN LSTM BI-LSTM和上一时刻细胞状态深度学习-RNN LSTM BI-LSTM的信息,并且由于深度学习-RNN LSTM BI-LSTM深度学习-RNN LSTM BI-LSTM之间是“短路连接”(由公式可以看出两者之间是线性关系),因此反向传播时,深度学习-RNN LSTM BI-LSTM的梯度可以直接传播给深度学习-RNN LSTM BI-LSTM,这也是LSTM能够有效缓解RNN中梯度消失和梯度爆炸的关键。

链接:https://www.jianshu.com/p/0040e56baa8f

相关文章:

  • 2021-10-15
  • 2021-06-17
  • 2022-01-14
  • 2021-06-16
  • 2021-11-26
  • 2021-06-13
  • 2022-01-01
猜你喜欢
  • 2021-05-17
  • 2022-01-06
  • 2021-08-24
  • 2021-06-12
  • 2021-04-07
  • 2021-06-10
  • 2021-12-13
  • 2021-06-19
相关资源
相似解决方案