为什么RNN会产生梯度爆炸与消失,LSTM为什么可以解决这一问题

为什么RNN会产生梯度爆炸与消失,LSTM为什么可以解决这一问题


原文链接–知乎
首先明确: 梯度消失带来的后果后面层的输出误差很难影响前面层的计算
经典的RNN结构如下图所示:
在这里插入图片描述
假设我们的时间序列只有三段, S_{0} 为给定值,神经元没有激活函数,则RNN最简单的前向传播过程如下:
在这里插入图片描述
假设在t=3时刻,损失函数为 在这里插入图片描述

则对于一次训练任务的损失函数为在这里插入图片描述 ,即每一时刻损失值的累加。
使用随机梯度下降法训练RNN其实就是对 Wx 、 Ws 、 Wo 以及 b1,b2 求偏导,并不断调整它们以使L尽可能达到最小的过程。

现在假设我们我们的时间序列只有三段,t1,t2,t3。

我们只对t3时刻的 Wx、Ws、Wo求偏导(其他时刻类似):
在这里插入图片描述
可以看出对于 W_{0} 求偏导并没有长期依赖,但是对于 Wx、Ws 求偏导,会随着时间序列产生长期依赖。因为 St 随着时间序列向前传播,而 St 又是 Wx、Ws的函数。

根据上述求偏导的过程,我们可以得出任意时刻对 Wx、Ws 求偏导的公式:
在这里插入图片描述
任意时刻对W_{s} 求偏导的公式同上。如果加上激活函数,在这里插入图片描述在这里插入图片描述
激活函数tanh和它的导数图像如下。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
其实这就是LSTM做的事情。
为什么LSTM 可以解决:见https://weberna.github.io/blog/2017/11/15/LSTM-Vanishing-Gradients.html#fnref:1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值