对于梯度消失和梯度爆炸的理解
Posted pinking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于梯度消失和梯度爆炸的理解相关的知识,希望对你有一定的参考价值。
一、梯度消失、梯度爆炸产生的原因
假设存在一个网络结构如图:
其表达式为:
若要对于w1求梯度,根据链式求导法则,得到的解为:
通常,若使用的激活函数为sigmoid函数,其导数:
这样可以看到,如果我们使用标准化初始w,那么各个层次的相乘都是0-1之间的小数,而激活函数f的导数也是0-1之间的数,其连乘后,结果会变的很小,导致梯度消失。若我们初始化的w是很大的数,w大到乘以激活函数的导数都大于1,那么连乘后,可能会导致求导的结果很大,形成梯度爆炸。
当然,若对于b求偏导的话,其实也是一个道理:
推出:
三、梯度消失和梯度爆炸哪种经常出现
事实上,梯度消失更容易出现,因为对于激活函数的求导:
可以看到,当w越大,其wx+b很可能变的很大,而根据上面sigmoid函数导数的图像可以看到,wx+b越大,导数的值也会变的很小。因此,若要出现梯度爆炸,其w既要大还要保证激活函数的导数不要太小。
二、如何解决梯度消失、梯度爆炸
以上是关于对于梯度消失和梯度爆炸的理解的主要内容,如果未能解决你的问题,请参考以下文章
深度学习100问之深入理解Vanishing/Exploding Gradient(梯度消失/爆炸)
机器学习面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?