【机器学习300问】77、什么是梯度消失和梯度爆炸?

news2025/1/16 16:19:32

一、梯度消失(Vanishing gradients)

(1)定义

        在训练深度神经网络时,随着误差梯度从输出层向输入层逐层回传,梯度可能因为连乘效应逐渐减小。当使用激活函数的导数的最大值小于1时,深度网络中越前面的层(靠近输入层的层)在梯度回传过程中梯度变小得越快。如果梯度过小,它会使得网络的权重几乎不更新,从而导致学习过程中先导层训练缓慢,这就是所谓的梯度消失问题。

        梯度下降算法的权重更新公式:

W_{new} = W_{old} - \eta \frac{\partial J}{\partial W}

        其中W是权重,\eta是学习率,\frac{\partial J}{\partial W}是权重的梯度。梯度消失问题表现为\frac{\partial J}{\partial W}接近于0,导致权重的更新量变得非常小。

(2)举例理解

① 比喻举例 

        假设有一场“传话游戏”,有5个人在操场上站成一排,从队列中的最后一个孩子开始,让他们一个接一个地传递给最前面的孩子。在这个过程中,每个孩子只能复述他们听到的内容,且由于各种原因(比如声音太轻、风声干扰、听不清等),每传一次,信息就可能会变得模糊一些。当信息传到队伍前端时,原本清晰的信息可能已经变得难以辨认,甚至完全消失。这就是“信息消失”的现象。

② 具体案例 

        使用Sigmoid激活函数的深层神经网络容易出现梯度消失问题。Sigmoid函数在两端的导数值非常接近零,这意味着当网络层次加深时,反向传播的梯度经过多层Sigmoid函数后,会迅速衰减到几乎为零,使得前几层的权重几乎得不到有效更新。

        假设上面这个图中的神经网络激活函数是线性激活函数g(z)=z,这样一来输出就可以写成:

\hat y=W^{[l]}W^{[l-1]}W^{[l-2]}...W^{[3]}W^{[2]}W^{[1]}x

        如果使用激活函数(如Sigmoid)的导数的最大值小于1时(比如0.5),那么得到的输出是\hat y=\frac{1}{2^L}层数越深,激活函数输出以指数级递减。这样的情况也适用于与层数L相关的导数或梯度函数,也是呈指数级递减。

 

二、梯度爆炸(Exploding gradients)

(1)定义

        在训练深度神经网络时,权重的更新梯度成指数级增长。如此大的梯度值会导致权重的大幅波动,使得网络模型无法稳定下来,或者导致数值计算上溢,变得无法继续学习。梯度爆炸通常在RNNs中较为常见,尤其当时间序列数据非常长的时候。

        梯度下降算法的权重更新公式:

W_{new} = W_{old} - \eta \frac{\partial J}{\partial W}

        其中W是权重,\eta是学习率,\frac{\partial J}{\partial W}是权重的梯度。梯度爆炸则表现为\frac{\partial J}{\partial W}极大,使得更新步长非常大,可能在数值上溢(梯度值超过了计算机浮点数的表示范围)或者导致权重变得非常大以至于模型不稳定。

(2)举例理解

③ 比喻举例 

        假设有5个话筒和5个扬声器喇叭,他们是一对一对的组成5对,现在把他们收尾相连即“(话筒1,喇叭1) > (话筒2,喇叭2)>...>(话筒5,喇叭5)”,当你在第一个话筒处发出声音,声音会被一层层放大,直至超过喇叭的最大输出响度,产生啸叫。

④ 具体案例

        假设上面这个图中的神经网络激活函数是线性激活函数g(z)=z,这样一来输出就可以写成:

\hat y=W^{[l]}W^{[l-1]}W^{[l-2]}...W^{[3]}W^{[2]}W^{[1]}x

        如果使用激活函数(如Sigmoid)的导数的最大值大于1时(比如1.5),那么得到的输出是\hat y=1.5^L层数越深,激活函数输出以指数级递增。这样的情况也适用于与层数L相关的导数或梯度函数,也是呈指数级递增。

三、避免梯度消失和梯度爆炸的方法

(1)避免梯度消失

  • 选择合适的激活函数:使用ReLU激活函数及其变种(如Leaky ReLU, ELU等),它们的导数不会随着输入值的增大而减小,有助于缓解梯度消失问题。
  • 合适的初始化权重:采用He初始化或Xavier/Glorot初始化等策略,可以根据网络中每层的输入和输出尺寸来适当设定权重的初始化值,从而帮助梯度更平稳地流动。

(2)避免梯度爆炸

  • 选择合适的优化算法:如使用具有动量项的SGD或Adam等,以确保梯度在反向传播过程中保持在一个可控范围内,从而使模型能够稳健地学习和优化。
  • 使用梯度裁剪:在反向传播时,如果计算出的梯度超出了某个阈值,就将它限制在这个阈值范围内。这个技术对于防止梯度爆炸尤其有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软考】软件设计师中级

视频课 计算机组成原理 进制转换 定点数vs浮点数 校验码 计算机体系结构 指令系统 I/O 存储系统 直接映射:简单粗暴的死板派 全相联映射:跳脱的自由发挥派 组相联映射:折中派,组间直接映射&组内全相联映射 命中率&#xf…

百度网盘超级会员2024最新白嫖30天教程

百度网盘超级会员服务是百度网盘提供的一项高级服务,它为用户提供了许多特权和功能,旨在为用户带来更加便捷、高效的文件存储和管理体验。以下是关于百度网盘超级会员服务的详细介绍: 百度网盘VIP领取入口: 关注公众号回复&#x…

为什么选择TikTok直播专线而不是节点?

TikTok直播已成为许多商家的重要营销手段,而网络质量作为营销直播效果的关键因素,使得商家们开始应用TikTok直播专线。虽然与节点相比,专线的价格稍高,但更多商家都倾向于选择TikTok直播专线。那么,为什么TikTok直播更…

Java零基础入门到精通_Day 7

1.3 什么是类? 类是对现实生活中一类具有共同属性和行为的事物的抽象。 类的特点: 类是对象的数据类型 类是具有相同属性和行为的一组对象的集合 1.4 什么是对象的属性 属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。 1.5 什么是对象的行为 行为:对…

vue快速入门(三十三)scoped解决组件样式冲突

注释很详细&#xff0c;直接上代码 上一篇 新增内容 scoped解决样式冲突的用法 源码 MyHeader.vue <!-- 用于测试全局注册组件 --> <template><div id"myHeader"><h1>又可以愉快的学习啦</h1></div> </template><scri…

万物皆可计算|下一个风口:近内存计算-1

传统的冯诺依曼架构虽然广泛应用于各类计算系统&#xff0c;但其分离的数据存储与处理单元导致了数据传输瓶颈&#xff0c;特别是在处理内存密集型任务时&#xff0c;CPU或GPU需要频繁地从内存中读取数据进行运算&#xff0c;然后再将结果写回内存&#xff0c;这一过程涉及大量…

【idea插件】IDEA 书签Bookmarks 高效使用

当我们在查看源码时&#xff0c;由于源码调用链路很长可能涉及到非常多的类文件&#xff0c;查找起来并不容易。有时候可能还需要查找某段代码的入口函数&#xff0c;当类文件的代码量很大时&#xff0c;很难快速定位到代码段。 设置书签 要想将一行代码添加到 IDEA 的 Bookm…

创新电商模式:免单优选引领销售新潮流

免单优选&#xff0c;这一新颖的电商销售概念&#xff0c;通过独特的价格策略、奖励制度以及社交网络的融合应用&#xff0c;成功点燃了消费者的购买激情&#xff0c;引领销售迅猛增长。 一、合规经营&#xff0c;摒弃复杂奖励 免单优选坚守合法经营的原则&#xff0c;摒弃了复…

【点云语义分割】自适应一致性正则化的弱监督点云分割

Reliability-Adaptive Consistency Regularization for Weakly-Supervised Point Cloud Segmentation 摘要&#xff1a; 本文探讨了将弱监督学习中常用的一致性正则化应用于具有多种特定数据增强功能的点云学习中&#xff0c;而对这一问题的研究还不够深入。我们发现&#xff…

大数据操作第二天

文章目录 大数据命令的方式现在有三个命令的方式 启动一个计算圆周率的jar包方式什么是文件系统数据元数据传统的存储方式分布式存储方式元数据记录文件位置信息副本机制的方式 hafs 存储方式shell 操作大数据的方式创建目录查看文件目录下的方式上传文件的方式 大数据命令的方…

【若依】代码生成详细教程(单表、主从表、树形表增删改查)

若依代码生成开发接口 修改代码生成配置一、单表实现增删改查1. 新建数据库表结构2. 新建模块&#xff0c;解决项目依赖3. 启动项目&#xff0c;新建菜单4. 导入数据表&#xff0c;自动生成代码5. 将生成代码粘贴到对应的模块&#xff0c;执行生成的sql&#xff08;用于生成菜单…

【情侣博客网站】

效果图 PC端 建塔教程 第一步&#xff1a;下载网站源码&#xff08;在文章下方有下载链接&#xff09; 第二步&#xff1a;上传到服务器或虚拟主机&#xff0c;解压。 第三步&#xff1a;这一步很关键&#xff0c;数据库进行连接&#xff0c;看图 admin/connect.php就是这…

【学习笔记】Vue3源码解析:第五部分 - 实现渲染(2)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第五部分-&#xff1a;&#xff08;对应课程的第33 - 35节&#xff09; 第33节&#xff1a;《讲解组件渲染流程》 1、在 render 函数中拿到虚拟dom vnode后…

WordPress 主题选择与自定义配置

最近我在使用wordpress网站进行建站。 我是使用的hostease的主机产品进行wordpress建站&#xff0c;在选择wordpress主题时颇为头疼。后来咨询了hostease的客服人员&#xff0c;他们家的技术人员提供了诸多帮助。在WordPress网站建设时&#xff0c;主题选择对于建立各类网站至关…

档案数字化能为企业带来什么帮助

档案数字化为企业带来以下帮助&#xff1a; 1. 空间节省&#xff1a;数字化档案可以减少实体档案的存储空间需求&#xff0c;不再需要大量的文件柜和文件存储空间&#xff0c;从而帮助企业节约办公场地。 2. 检索便捷&#xff1a;数字化档案可以通过关键词搜索、标签分类等方式…

fcrackzip工具的使用教程

下载fcrackzip软件包 查看版本 创建一个1.txt文本文件&#xff0c;然后把1.txt解压成1.zip&#xff0c;密码为007lyt fcackzip有两种使用方法 1、暴力破解 用法示例 fcrackzip -b -c 1a -l 1-10 -u 1.zip -b使用暴力破解 -c 指定掩码类型 a表示a-z&#xff0c;A表示A-Z&am…

与上级意见不合时如何恰当地表达自己的观点?

在工作中与上级意见不合时&#xff0c;恰当表达自己的观点并寻求共识是一个需要谨慎处理的问题。以下是一些建议&#xff1a; 1. **尊重与礼貌**&#xff1a;在任何情况下&#xff0c;都应保持对上级的尊重和礼貌。即使在意见不合时&#xff0c;也要避免情绪化&#xff0c;保持…

nodejs工具脚本json转excel

json转excel 主要使用 sheetjs 库 vim convertJsonToExcel.js 封装转换方法 import fs from fs; import XLSX from xlsx;/*** 扁平化嵌套json对象* param {Object} jsonObj* param {String} prefix* returns*/ export function flattenKeys(jsonObj, prefix ) {const resul…

运筹学基础(七):拉格朗日松弛(Lagrangian relaxation)

文章目录 基本概念原问题松弛问题、拉格朗日乘子、对偶函数对偶问题三个问题之间的关系 为什么要用拉格朗日松弛法算法流程核心问题松弛哪个约束松弛后分解的子问题的求解拉格朗日乘子怎么定 参考资料 基本概念 原问题 考虑如下的整数规划问题&#xff1a; m i n c T x s . …

简谈 BlueNRG-LP 和-LPS 的代码空间优化

1.引言 客户在使用 BlueNRG-LP/LPS 芯片时&#xff0c;增加 OTA 服务后常常反馈说&#xff0c;编译代码区域超空间了&#xff0c;需要帮忙优化一下。后文主要通过下列步骤进行分析和优化 BlueNRG-LP/LPS 的代码空间&#xff1a; a. 通过分析 BlueNRG-LP/LPS 的 OTA 方式&…