码迷,mamicode.com
首页 > 其他好文 > 详细

对于梯度消失和梯度爆炸的理解

时间:2018-08-04 13:02:19      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:消失   导致   初始化   标准   spl   strong   oid   原因   mil   

一、梯度消失、梯度爆炸产生的原因

  假设存在一个网络结构如图:

技术分享图片

  其表达式为:

技术分享图片

 

  若要对于w1求梯度,根据链式求导法则,得到的解为:

 技术分享图片

  通常,若使用的激活函数为sigmoid函数,其导数:

技术分享图片

  这样可以看到,如果我们使用标准化初始w,那么各个层次的相乘都是0-1之间的小数,而激活函数f的导数也是0-1之间的数,其连乘后,结果会变的很小,导致梯度消失。若我们初始化的w是很大的数,w大到乘以激活函数的导数都大于1,那么连乘后,可能会导致求导的结果很大,形成梯度爆炸

   当然,若对于b求偏导的话,其实也是一个道理:

技术分享图片

  推出:

技术分享图片

 三、梯度消失和梯度爆炸哪种经常出现

  事实上,梯度消失更容易出现,因为对于激活函数的求导:

技术分享图片

  可以看到,当w越大,其wx+b很可能变的很大,而根据上面sigmoid函数导数的图像可以看到,wx+b越大,导数的值也会变的很小。因此,若要出现梯度爆炸,其w既要大还要保证激活函数的导数不要太小。

 

 二、如何解决梯度消失、梯度爆炸

 

对于梯度消失和梯度爆炸的理解

标签:消失   导致   初始化   标准   spl   strong   oid   原因   mil   

原文地址:https://www.cnblogs.com/pinking/p/9418280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!