梯度消失 梯度爆炸

本文探讨了在深度学习中遇到的梯度爆炸和梯度消失问题。通过一个函数f(x,y,z)的例子展示了前向传播与反向传播的过程,解释了当输入模值过大或过小时,如何导致梯度在反向传播过程中急剧增大或减小,进而引发梯度爆炸或消失的现象。这种情况可能导致模型训练困难,影响神经网络的性能。解决这些问题对于优化深度学习模型至关重要。
摘要由CSDN通过智能技术生成

假设我们现在需要计算一个函数f(x,y,z)=(x+y)*z,在x = -2,y = 5,z = -4时的梯度,那么首先可以做出如下所示的计算图。
将x = -2,y = 5,z = -4带入,其中,令x+y = q ,一步步计算,很容易就能得出f(-2,5,-4) = -12 。
这就是前向传播(计算图上部分绿色打印字体与蓝色手写字体),前向传播是从输入一步步向前计算输出,而反向传播则是从输出反向一点点推出输入的梯度(计算图下红色的部分)。
在这里插入图片描述
注:这里的反向传播假设输出端接受之前回传的梯度为1(也可以是输出对输出求导=1)观察上述反向传播,不难发现,在输出端梯度的模值,经过回传扩大了3、4倍。这是由于反向传播结果的数值大小不止取决于求导的式子,很大程度上也取决于输入的模值。当计算图每次输入的模值都大于1,那么经过很多层回传,梯度将不可避免地呈几何倍数增长(每次都变成3、4倍,重复上万次,想象一下310000有多大……),直到Nan。这就是梯度爆炸现象。
当然反过来,如果我们每个阶段输入的模恒小于1,那么梯度也将不可避免地呈几何倍数下降(比如每次都变成原来的三分之一,重复一万次就是3-10000),直到0。这就是梯度消失现象。值得一提的是,由于人为的参数设置,梯度更倾向于消失而不是爆炸。

转自:https://www.zhihu.com/question/64494691/answer/786270699

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值