为什么RNN会比CNN更容易出现梯度消失或爆炸

在这里插入图片描述
公式:
在这里插入图片描述
输出层
ot表示输出值,输出层是一个全连接层与隐藏层的每一个节点连接,V是输出层的权重矩阵,g表示激活函数,
循环层
st 表示隐藏层的值,U是输入的权重矩阵,xt表示输入的值,W是上一时间步st-1作为当前时间步st的输入权重矩阵,f表示激活函数,
从上述公式可知:st的值不仅仅取决于输入的x,还取决于st-1
将st带入Ot的计算公式 得:
在这里插入图片描述
从上式可知循环网络的输出,和xt,xt-1,xt-3有关,这就是循环网络具有记忆的特性

RNN的BPTT(Backpropagation Through Time)

在这里插入图片描述

  • 前向计算每一个神经元的输出值
  • 反向计算每一个神经元的误差值,它是损失函数对神经元的加权输入求偏导数
  • 计算每一个权重的梯度
  • 利用梯度下降算法更新权重

以S3的权重梯度反向传播为例推导
在这里插入图片描述
根据上述分析整理可得, 对于任意时刻t对W求偏导的公式为
在这里插入图片描述
总结:从S3的梯度计算结果可知,如果W是一个一个大于0小于1的数,随着时间步的增加,W将以指数级减小,也就是出现了梯度消失的现象,这也是为什么RNN不能捕获长文本序列之间语义的原因。,如果W是一个一个大于1的数,则W将以指数级增加,也就是出现了梯度爆炸的原因

RNN的训练和CNN训练一样,同样适用BP算法的损失计算反向传播,区别是,RNN中参数U、V、W是共享的,并且在随机梯度下降算法中,每一步输出不仅仅依赖当前步的网络,而且还需要当前步之前时间步的网络,在CNN中,每一层的参数W1 ,W2,W3是互相独立的,W1 ,W2W3 进行连乘,一方面它们都是稀疏矩阵,另一方面W1 ,W2,W3 互不相同,很大程度上都能抵消掉梯度爆炸的影响,这就是为什么RNN会比CNN更容易出现梯度消失或爆炸的原因

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值