网站除了做流量还需要什么软件吗,视频号视频下载助手app,假的建设银行网站,黑龙江建筑工程网梯度爆炸和梯度消失
一、概念解析
#xff08;一#xff09;梯度爆炸
定义 在深度神经网络训练的反向传播过程中#xff0c;梯度爆炸是指梯度的值过大的现象。这会使模型的参数更新出现异常。 产生原因 深层网络与链式法则#xff1a;深度神经网络按链式法则计算某层权重…梯度爆炸和梯度消失
一、概念解析
一梯度爆炸
定义 在深度神经网络训练的反向传播过程中梯度爆炸是指梯度的值过大的现象。这会使模型的参数更新出现异常。 产生原因 深层网络与链式法则深度神经网络按链式法则计算某层权重的梯度时要把从输出层到该层的所有梯度连乘。如果每层的梯度都比较大经过多层相乘后梯度就会变得极大。就像一个多层的传递过程每一步都放大一点到最后就会变得非常大。权重初始化不当如果神经网络的权重一开始就设置得太大每层激活函数的输出值也会很大。这样在反向传播计算梯度时就容易出现梯度爆炸。比如激活函数输出过大即使它的导数可能很小但由于前面输出值变化大梯度还是可能爆炸。
二梯度消失
定义 梯度消失是反向传播时梯度的值过小小到几乎不能有效更新网络权重的情况。 产生原因 激活函数选择不当有些激活函数像sigmoid函数它的导数在某些范围很小。当网络层数很多时多层激活函数的导数相乘梯度就会越来越小最后趋近于0。深层网络与梯度传递和梯度爆炸类似在深层网络里根据链式法则计算梯度要连乘多层局部梯度。要是每层局部梯度都小于1经过多层相乘后梯度就会很快趋近于0。
二、危害
一对模型训练的影响
梯度爆炸的危害 权重更新失控梯度爆炸会让权重更新的幅度太大使模型参数在训练时很不稳定。比如在更新权重时可能一下子把权重变成一个特别大的值导致模型输出不正常甚至让模型没办法收敛。无法收敛模型可能找不到最优解因为太大的梯度会让优化算法跳过损失函数的最小值区域训练过程就会出问题损失函数也不能收敛到一个比较小的值。 梯度消失的危害 权重更新缓慢梯度消失会让权重更新变得超级慢。因为梯度接近0时按照权重更新公式权重几乎不会改变。训练停滞在深层神经网络里这种情况更明显。底层的网络层因为梯度消失很难学到有用的特征表示模型就没办法好好训练也不能很好地拟合数据。
三、预防措施
一梯度裁剪
原理 梯度裁剪是防止梯度爆炸的好方法。简单来说就是设定一个梯度的最大值。当计算出来的梯度超过这个最大值时就把梯度调整到这个最大值。这样就可以避免梯度过大。 示例 假设我们在训练过程中得到了一个很大的梯度我们就把它限制在一个我们能接受的范围。就像给一个可能会跑太远的东西设置一个围栏不让它超出我们设定的界限。
二合适的权重初始化
方法 Xavier初始化对于线性层Xavier初始化可以缓解梯度问题。它是根据输入和输出神经元的数量来初始化权重的目的是让每层输入和输出的方差尽量一样。这样可以避免因为权重初始化不当导致的梯度问题。He初始化在使用ReLU等激活函数时He初始化更好。它是按照ReLU激活函数的特点来初始化权重的能够帮助模型更好地训练减少梯度问题。
三选择合适的激活函数
ReLU及其变体 ReLURectified Linear UnitReLU函数在大于0的时候是线性的计算简单而且在一定程度上能避免梯度消失。它在大于0的部分梯度是1这样就不会出现像sigmoid函数那样因为导数过小导致的梯度消失问题。Leaky ReLULeaky ReLU是在ReLU的基础上改进的。当输入小于0时它不是直接输出0而是输出一个比较小的倍数的输入。这样就解决了ReLU在输入小于0时梯度为0的问题能更好地缓解梯度消失。PReLUParametric ReLUPReLU和Leaky ReLU很像但是它的系数是可以在训练过程中学习的。这样它就能根据数据和模型的情况自己调整更好地适应避免梯度消失的需求。
四残差网络
结构特点 残差网络有一个很特别的结构叫残差连接。在这个网络里每一层的输出不是直接给下一层而是和下一层的输入相加之后再给下一层。 工作原理 这种结构让梯度在反向传播时有更直接的路可以走。就算网络很深梯度也能比较好地传播。因为有了这个直接的连接梯度不需要经过很多复杂的层的乘积就可以避免梯度消失。