那么为什么会出现梯度消失的现象呢?因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷到正无穷的数映射到0和1之间,并且对这个函数求导的结果是f′(x)=f(x)(1−f(x))f′(x)=f(x)(1−f(x))。因此两个0到1之间的数相乘,得到的结果就会变得很小了。神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,最终就会变为0,从而导致层数比较浅的权重没有更新,这就是梯度消失。
那么什么是梯度爆炸呢?梯度爆炸就是由于初始化权值过大,前面层会比后面层变化的更快,就会导致权值越来越大,梯度爆炸的现象就发生了。
https://blog.csdn.net/weixin_37933986/article/details/69255863
理解看这篇文章。https://zhuanlan.zhihu.com/p/25631496
RNN的梯度消失和爆炸问题,看https://zhuanlan.zhihu.com/p/28687529和https://zhuanlan.zhihu.com/p/44163528
原文:https://www.cnblogs.com/nicolelfhe/p/11632432.html