ai梯度在哪(梯度消失和梯度爆炸是什么)
导语:AI疯狂进阶——梯度消失和爆炸
本文作者专注于AI进阶算法,正在推出AI疯狂进阶之基础理论进阶篇,如有兴趣可持续关注我。
核心导读:
1.什么是梯度消失和爆炸?
2.如何防止梯度消失和爆炸?
1.什么是梯度消失和爆炸?
我们在之前的章节中介绍了神经网络梯度下降的原理,先看下梯度下降的公式:
如果减号后面的梯度值为0,那么无论学习率设置多少,参数不再跟新,而如果梯度过大,那么参数的值也可能超过上限,导致异常。那么,梯度消失和爆炸在什么情况下会出现呢?两种情况下梯度消失经常出现,一是在深层网络中,二是采用了不合适的损失函数,比如sigmoid;梯度爆炸一般出现在深层网络和权值初始化值太大的情况下。
2.如何防止梯度消失和爆炸?
(1)梯度裁剪
梯度剪切这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸
(2)L2正则化
正则化是通过对网络权重做正则限制过拟合,L2正则化通常会使网络的参数数值变小,限制梯度爆炸的发生。
(3)Batchnorm
Batchnorm是深度学习发展以来提出的最重要的成果之一了,目前已经被广泛的应用到了各大网络中,具有加速网络收敛速度,提升训练稳定性的效果,Batchnorm本质上是解决反向传播过程中的梯度问题。batchnorm全名是batch normalization,简称BN,即批规范化,通过规范化操作将输出信号x规范化到均值为0,方差为1保证网络的稳定性。Batchnorm就是通过对每一层的输出规范为均值和方差一致的方法,消除了w带来的放大缩小的影响,进而解决梯度消失和爆炸的问题。如果相对Batchnorm有更深入的了解,请关注《正则化篇》。
(4)残差结构
《Deep Residual Learning for Image Recognition》起源于这篇文章,采用shortcut跨层连接结构,可以较好的将深层梯度信息传递到浅层,缓解了梯度消失过快的问题。
(5)RELU系列激活函数
思想也很简单,如果激活函数的导数为1,那么就不存在梯度消失爆炸的问题了,每层的网络都可以得到相同的更新速度,relu就这样应运而生。
3小结:
从深层网络角度来讲,不同的层学习的速度差异很大,表现为网络中靠近输出的层学习的情况很好,靠近输入的层学习的很慢,有时甚至训练了很久,前几层的权值和刚开始随机初始化的值差不多。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小迪创作整理编辑!