【CV】梯度消失和梯度爆炸

简介: 介绍一下梯度消失和梯度爆炸
1. 什么是梯度消失,梯度爆炸
1.1. 什么是梯度消失

梯度消失是指在反向传播过程中梯度逐渐降低到0,导致参数不可学习的情况。

1.2. 什么是梯度爆炸

与梯度消失相反,在反向传播过程中,由于梯度过大导致模型无法收敛的情况。

总结:无论梯度消失还是梯度爆炸都跟模型学习过程中的链式求导有关。
当模型的层数过多的时候,计算梯度的时候就会出现非常多的乘积项。用下面这个例子来理解:
在这里插入图片描述
这是每层只有1个神经元的例子,每个神经元的激活函数都是sigmoid,然后我们想要更新b1这个参数。按照大家都公认的符号来表示:
在这里插入图片描述可以得到这个偏导数:
在这里插入图片描述
然后化简:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因此经常会有这样的现象:
在这里插入图片描述
图中,分别表示4层隐藏层的梯度变化幅度。可以看到,最浅的那个隐藏层,梯度更新的速度,是非常小的。【图中纵轴是指数变化的】。
在这里插入图片描述
【总结】

  1. 梯度消失和梯度爆炸是指前面几层的梯度,因为链式法则不断乘小于(大于)1的数,导致梯度非常小(大)的现象;
  2. sigmoid导数最大0.25,一般都是梯度消失问题。
2. 解决梯度消失,梯度爆炸的方法
2.1. 更换激活函数

最常见的方案就是更改激活函数,现在神经网络中,除了最后二分类问题的最后一层会用sigmoid之外,每一层的激活函数一般都是用ReLU。

【ReLU】:如果激活函数的导数是1,那么就没有梯度爆炸问题了。
在这里插入图片描述
在这里插入图片描述

【leakyReLU】:在ReLU的负数部分,增加了一定的斜率:
在这里插入图片描述
解决了ReLU中会有死神经元的问题。

【ELU】:跟Leaky ReLU一样是为了解决死神经元问题,但是增加的斜率不是固定的:
在这里插入图片描述
但是相比Leaky ReLU,计算量更大。

2.2. 添加Batch Norm(BN)层

这个是非常给力的成功,在图像处理中必用的层了。BN层提出来的本质就是为了解决反向传播中的梯度问题。

在神经网络中,有这样的一个问题:Internal Covariate Shift。假设第一层的输入数据经过第一层的处理之后,得到第二层的输入数据。这时候,第二层的输入数据相对第一层的数据分布,就会发生改变,所以这一个batch,第二层的参数更新是为了拟合第二层的输入数据的那个分布。然而到了下一个batch,因为第一层的参数也改变了,所以第二层的输入数据的分布相比上一个batch,又不太一样了。然后第二层的参数更新方向也会发生改变。层数越多,这样的问题就越明显。

但是为了保证每一层的分布不变的话,那么如果把每一层输出的数据都归一化0均值,1方差不就好了?但是这样就会完全学习不到输入数据的特征了。不管什么数据都是服从标准正太分布,想想也会觉得有点奇怪。所以BN就是增加了两个自适应参数可以通过训练学习的那种参数。这样把每一层的数据都归一化到β均值,γ标准差的正态分布上。

【将输入分布变成正态分布,是一种去除数据绝对差异,扩大相对差异的一种行为,所以BN层用在分类上效果的好的。对于Image-to-Image这种任务,数据的绝对差异也是非常重要的,所以BN层可能起不到相应的效果。】

2.3. 残差结构

在这里插入图片描述
==残差结构,简单的理解,就是让深层网络通过走捷径,让网络不那么深层。这样梯度消失的问题就缓解了。==

2.4. 梯度剪切、正则化

梯度剪切:
这个方案主要是针对梯度爆炸提出的,其思想是设置一个剪切阈值,如果更新梯度时,梯度超过了这个阈值,那么就将其强制限制在这个范围之内。这样可以防止梯度爆炸。

正则化:
在这里插入图片描述

另一种防止梯度爆炸的手段是采用权重正则化,正则化主要是通过对网络权重做正则来限制过拟合。通过限制正则化项的大小,也可以在一定程度上限制梯度爆炸的发生。

2.5. LSTM结构

LSTM不太容易发生梯度消失,主要原因在于LSTM内部复杂的“门(gates)”

2.6. 预训练加fine-tunning

此方法来自Hinton在06年发表的论文上,其基本思想是每次训练一层隐藏层节点,将上一层隐藏层的输出作为输入,而本层的输出作为下一层的输入,这就是逐层预训练。

训练完成后,再对整个网络进行“微调(fine-tunning)”。

此方法相当于是找全局最优,然后整合起来寻找全局最优,但是现在基本都是直接拿imagenet的预训练模型直接进行finetunning。

  • 最后说:,梯度消失和梯度爆炸问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应
3. 如何知道网络中是否有梯度爆炸问题?

在网络训练过程中,如果发生梯度爆炸,那么会有一些明显的迹象表明这一点,例如:

  • 模型无法在训练数据上收敛(比如,损失函数值非常差);
  • 模型不稳定,在更新的时候损失有较大的变化;
  • 模型的损失函数值在训练过程中变成NaN值;

如果你遇到上述问题,我们就可以深入分析网络是否存在梯度爆炸问题。还有一些不太为明显的迹象可以用来确认网络中是否存在梯度爆炸问题:

  • 模型在训练过程中,权重变化非常大;
  • 模型在训练过程中,权重变成NaN值;
  • 每层的每个节点在训练时,其误差梯度值一直是大于1.0;
4. 如何知道网络中是否有梯度消失问题?
  • 模型无法从训练数据中获得更新,损失几乎保持不变。
参考

https://blog.csdn.net/weixin_39853245/article/details/90085307

https://mp.weixin.qq.com/s/IdtX_wWTfsimU7AMDCnccw

https://zhuanlan.zhihu.com/p/263067159

(这里包含很多面经,面试题等,值得关注和学习)
https://mp.weixin.qq.com/s/s5MO8RXvc64kgw2YQueXkA

https://www.cnblogs.com/ZFJ1094038955/p/12158583.html

https://www.jianshu.com/p/3f35e555d5ba

https://mp.weixin.qq.com/s/6xHC5woJND14bozsBNaaXQ

相关文章
|
存储 算法 定位技术
PCL--点云配准--ICP使用
PCL--点云配准--ICP使用
PCL--点云配准--ICP使用
|
7月前
|
机器学习/深度学习 人工智能 算法
分位数回归+共形预测:Conformalized Quantile Regression实现更可靠的预测区间
预测不确定性量化在数据驱动决策中至关重要,分位数回归(QR)虽能生成自适应预测区间,但缺乏严格覆盖保证;共形预测(CP)则提供覆盖保证但缺乏强自适应性。Conformalized Quantile Regression (CQR)融合两者优势,通过校准分位数回归模型,生成既适应数据特性又具备统计保证的预测区间。本文深入探讨CQR理论、实现与应用,展示其在医疗、金融等领域提升预测可靠性的潜力,为高风险决策提供更精确和可信的支持。
233 0
分位数回归+共形预测:Conformalized Quantile Regression实现更可靠的预测区间
|
机器学习/深度学习 算法 安全
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:An overview of machine unlearning
本文提供了机器遗忘的全面定义、问题方程、精确与近似遗忘的概念,并分类总结了机器遗忘方法,讨论了其在联邦学习和终身学习中的应用,提出了未来研究方向,为机器遗忘研究领域奠定了理论基础并指出了实际应用的潜力与挑战。
861 5
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:An overview of machine unlearning
github无法访问?vscode 无法使用github登录同步? 改 hosts 吧
github无法访问?vscode 无法使用github登录同步? 改 hosts 吧
一步步教你将包含其他文件的 Python 脚本等打包成 EXE
最近我编写了一个Python脚本,该脚本需要依赖两个同级目录下的文件才能正常运行。然而,当我将脚本打包成EXE程序后,必须将这两个文件放在EXE文件的同级目录下才能正常执行。为了简化部署,我希望能将这两个文件一起打包到EXE文件中,这时候该怎么办呢?
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
898 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
机器学习/深度学习 算法 文件存储
【博士每天一篇文献-算法】 PNN网络启发的神经网络结构搜索算法Progressive neural architecture search
本文提出了一种名为渐进式神经架构搜索(Progressive Neural Architecture Search, PNAS)的方法,它使用顺序模型优化策略和替代模型来逐步搜索并优化卷积神经网络结构,从而提高了搜索效率并减少了训练成本。
256 9
|
人工智能 自然语言处理 算法
阿里云PAI大模型评测最佳实践
在大模型时代,模型评测是衡量性能、精选和优化模型的关键环节,对加快AI创新和实践至关重要。PAI大模型评测平台支持多样化的评测场景,如不同基础模型、微调版本和量化版本的对比分析。本文为您介绍针对于不同用户群体及对应数据集类型,如何实现更全面准确且具有针对性的模型评测,从而在AI领域可以更好地取得成就。
|
机器学习/深度学习 算法 搜索推荐
KNN算法(k近邻算法)原理及总结
KNN算法(k近邻算法)原理及总结
1078 0
|
机器学习/深度学习 人工智能 算法
开发者入门必读:最值得看的十大机器学习公开课
在当下的机器学习热潮,人才匮乏十分显著。截至目前,国内开设人工智能(AI)专业的高校不多,相当多的开发者是跨界入门,需要自学大量知识并摸索。因而优质的学习资源至关重要。因此,雷锋网搜集了全世界范围内最受欢迎的机器学习课程,整理成这份“机器学习十大入门公开课”盘点,集中呈现给各位。
7348 0