RNN之LSTM

LSTM作为一种改进的RNN,解决了传统RNN在处理长序列时梯度消失的问题。通过其特有的门控机制,LSTM实现了"constant error carrousels",确保了错误传播的稳定性。在LSTM中,通过巧妙的设计,如cell state的维护,使得在网络中有一个不变的错误传播流,从而避免了梯度爆炸或消失。本文深入探讨了LSTM的误差流动原理及其对长序列处理的优势。
摘要由CSDN通过智能技术生成
开始学习lstm,从《LONG SHORT-TERM MEMORY》这篇论文读起,但是论文中涉及到太多基础理论和公式.
所以还是看了很多blog(eg:http://colah.github.io/posts/2015-08-Understanding-LSTMs/等)之后再读paper,开始有所研究。

paper中提到LSTM与传统RNN重要的不同点在于对梯度的截断:truncating the gradient where this does not do harm,其重要特性“constant error carrousels(CEC)”——设置的各种gate就是去学习怎么access 和open to the CEC。RNN不能处理很长的序列是因为反向传播时参数会指数爆炸blow up或者消亡vanish。LSTM中存在一个重要不同就是结构中在特殊的单元内会执行一个不变“constant”的错误传播流。

误差——传统的BPTT:对于第k个单元在t时刻的输出表示为$d_{k}(t)$,使用均方误差,则单元k的错误信号为:

这里写图片描述:结果求导乘上误差值就是反响更新的误差量。
这里写图片描述:结果是通过对网络的输出再激活得出,这里的f是可以为不同的激活函数。
这里写图片描述:网络输出是将输入乘以相应的权重求和,这里的输入就是上一层单元的输出。
这里写图片描述:如果是非输出层的误差更新则是为导数乘以其到下一层所有单元中贡献的输入之和。
dk(t) 表示单元k在t时刻的期望输出(就是label)。经过数学推到上述公式分析会得出error flow会vanish,具体的不在此细述。
下面介绍constant error flow——naive approach:
在j时刻,单元j的local error flow是:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值