梯度消失与梯度爆炸

Posted fpzs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度消失与梯度爆炸相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/qq_25737169/article/details/78847691

产生消失的梯度问题的原因

先看一个极简单的深度神经网络:每一层都只有一个单一的神经元。如下图:

技术分享图片

代价函数C对偏置b1的偏导数的结果计算如下:

技术分享图片

先看一下sigmoid 函数导数的图像:

技术分享图片

该导数在σ′(0) = 1/4时达到最高。现在,如果我们使用标准方法来初始化网络中的权重,那么会使用一个均值为0 标准差为1 的高斯分布。因此所有的权重通常会满足|wj|<1。从而有wjσ′(zj) < 1/4。

技术分享图片

这其实就是消失的梯度出现的本质原因了。

 

可以考虑将权重初始化大一点的值,但这可能又会造成激增的梯度问题。

根本的问题其实并非是消失的梯度问题或者激增的梯度问题,而是在前面的层上的梯度是来自后面的层上项的乘积。所以神经网络非常不稳定。唯一可能的情况是以上的连续乘积刚好平衡大约等于1,但是这种几率非常小。

所以只要是sigmoid函数的神经网络都会造成梯度更新的时候极其不稳定,产生梯度消失或者激增问题。

 

解决梯度消失问题

使用ReLU。
使用ReL 函数时:gradient = 0 (if x < 0), gradient = 1 (x > 0)。不会产生梯度消失问题。、
注:实际上就是梯度计算过程中,w值和激活函数的导数值相乘大于1或者小于1的问题,如果是大于1,那么经历过很多个隐藏层梯度就会越来越大,即梯度爆炸,如果是小于1当然就是梯度消失啦。
 转载:https://www.cnblogs.com/tsiangleo/p/6151560.html

以上是关于梯度消失与梯度爆炸的主要内容,如果未能解决你的问题,请参考以下文章

深度学习面试题08:梯度消失与梯度爆炸

深度学习中的梯度消失与梯度爆炸及解决方案

梯度消失与梯度爆炸

梯度消失与梯度爆炸

TensorFlow2 手把手教你避开梯度消失和梯度爆炸

剑指offer梯度消失和梯度爆炸