[模型基础] RNN | LSTM

目录

RNN

RNN:在 t 时间点上将 t-1 时间点的隐节点 h(t-1) 作为当前时间点的输入(即每一个时间点的输出不仅仅取决于当前时间点的特征,还包括上一个时间点的信息)
传统模型:每一个时间点的隐节点输出只取决于当前时间点的输入特征。

每个时间点的隐因子:

  1. 计算当前时间点的输出
  2. 计算下一个时间点的隐因子

RNN问题:

  • 梯度消失/爆炸(权值矩阵循环相乘导致,相同函数的多次组合会导致极端的非线性行为,RNN中每个时间片使用相同的权值矩阵)

梯度爆炸解决方法:梯度截断,将超过某个阈值的梯度,截断到阈值(虽然改变了梯度,但是仍然可以保证loss下降)。

梯度消失,不能采用梯度截断方法来解决。因为长时间的依赖也会产生小的梯度,如果截断(会提高梯度值),对于模型而言,失去了捕捉长时间依赖的能力(改变了模型梯度,使得模型梯度没有往希望的变小方向变化)。

LSTM

LSTM:Long Short Term Memory,长短期记忆网络。针对上述RNN不能捕捉长期依赖的问题,提出了LSTM。

  • 【遗忘门】(由上一个隐层和当前输入共同决定,激活函数是sigmod)。控制前一个单元状态的信息,可以用于当前单元状态
  • 【输入门】(由上一个隐层和当前输入共同决定,激活函数是sigmod】。控制哪些特征,可以更新单元状态更新值
  • 【单元状态更新值】,由上一个隐层和当前输入共同决定,激活函数是tanh。
  • 【输入门】,由上一个隐层和当前输入共同决定,激活函数是sigmod】。
  • 当前单元状态,由遗忘门和输入门共同决定,后续计算当前隐层。
  • 当前隐层,由输入门和当前单元状态共同决定。
  • 当前输出,由当前隐层决定(与RNN相同)
    LSTM和RNN在公式上的不同,在于获得当前隐层时,采用的门进行信息的控制(遗忘门,输入门,输出门),分别对不同信息及进行控制。

【遗忘门】,【输入门】,【输出门】,【单元状态更新值】,都是由当前输入和上一时刻的隐层得到,前三个的激活函数是sigmoid,最后一个的激活函数是tanh。

RNN是一个链式结构,每个输出由权值W,偏置值b,激活函数决定,每个时间点使用的参数相同。

参考:

  1. 详解LSTM:https://zhuanlan.zhihu.com/p/42717426

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年6月8日 上午11:57
下一篇 2022年6月8日 上午11:59

相关推荐