【机器学习】038_梯度消失、梯度爆炸

一、原因

神经网络梯度

· 假设现在有一个 d 层的神经网络,每层的输出为一个对输入作 f_t 变换的函数结果

· 用 h^t 来表示第 t 层的输出,那么有下列公式:

h^t = f_t(h^{t-1})

· 链式法则计算损失 l 关于某一层某个参数 w_t 的梯度:

\frac{\partial l}{\partial w_t}=\frac{\partial l}{\partial h^d}\frac{\partial h^d}{\partial h^{d-1}}...\frac{\partial h^t}{\partial w_t}

· 注意到,h^t 为向量,这相当于一个 d-t 次的矩阵乘法

这个传递可能造成以下问题:

· 假设每次的梯度为1.5,但随着神经网络的规模变大,往后传递过去可能就有 1.5^{100}=4*10^{17} 这么大,从而产生梯度爆炸。

· 假设每次的梯度为0.8,同样的道理,传递过去可能有 0.8^{100}=2*10^{-10} 这么小,从而使模型最后的变化幅度很小,出现梯度消失。

二、梯度消失

假设用sigmoid函数作为激活函数

· 导数的问题是,当输入相对较大或者较小时,求导计算之后,每次向上传递的梯度会变得很小

· 累乘起来之后,这个值可能就会变得更小

可能造成的问题:

· 梯度值非常接近0,使得模型无法训练,每次训练改变幅度非常小

· 在神经网络较深时,对于底部层尤为严重

        · 反向传播时,顶部的训练可能较好,拿到的梯度较正常

        · 越到底部,梯度越小,底部层无法训练,使得神经网络无法变深

三、梯度爆炸

假设我们使用ReLU函数作为隐藏层的激活函数

· ReLU激活函数的导数会使大于0的输出求导后都是1,小于等于0的输出求导后都是0

· 首先将链式法则的求导公式代入ReLU激活函数转化一下,得到下式

· 这时,h^{t-1} 与 w_t 相乘后再在ReLU函数里求导的结果就是0或1,那么每次传递的就是 w_t 转置值

· 如果中间层 d-t 很大,那么最后累乘的结果就会很大,最终导致梯度爆炸

可能造成的问题:

· 值超过上限(如16位浮点数,可能数值上溢)

· 对学习率非常敏感

        · 若学习率较大—大参数值—更大的梯度

        · 若学习率较小—训练效果小

        · 需要不断调整学习率

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

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

相关文章

NX二次开发UF_CAM_ask_post_template_name 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_post_template_name Defined in: uf_cam.h int UF_CAM_ask_post_template_name(const char * * post_template_filename ) overview 概述 This function provides the name of the file…

git 提交成了LFS格式,如何恢复

平常习惯使用sourceTree提交代码,某次打开时弹出了一个【是否要使用LFS提交】的确认弹窗,当时不知道LFS是什么就点了确认,后续提交时代码全变成了这个样子 因为是初始化的项目首次提交,将近四百个文件全被格式化成了这个样子&…

利用ETLCloud自动化流程实现业务系统数据快速同步至数仓

现代企业有不少都完成了数字化的转型,而还未转型的企业或商铺也有进行数字化转型的趋势,由此可见,数据已经成为企业决策的重要依据。企业需要先获取数据,将业务系统数据同步至数仓进行整合,然后再进行数据分析。为了更…

Vatee万腾外汇市场新力量:vatee科技决策力

在当今数字化时代,Vatee万腾崭露头角,以其强大的科技决策力进军外汇市场,成为该领域的新力量。这一新动向将不仅塑造外汇市场的未来,也展现Vatee科技决策力在金融领域的引领作用。 Vatee万腾带着先进的科技决策力进入外汇市场&…

Java格式化类Format

文章目录 Format介绍Format方法- format(格式化)- parseObject(解析) 格式化分类日期时间格式化1. DateFormat常用方法getInstancegetDateInstancegetTimeInstancegetDateTimeInstance 方法入参styleLocale 2. SimpleDateFormat常…

CentOS7安装Docker遇到的问题笔记

笔记/朱季谦 以下是笔者本人学习搭建docker过程当中记录的一些实践笔记,过程当中也遇到了一些坑,但都解决了,就此记录,留作以后再次搭建时可以直接参考。 一、首先,先检查CentOS版本,保证在CentOS7版本以…

2023食药物质产业发展大会12月在浙江绍兴隆重召开

为更好地推动食药物质行业高质量发展,推进食药物质相关产品的创新应用,促进行业科技进步,提高行业技术水平,中国生物发酵产业协会定于12月15-17日在浙江省绍兴市召开“2023食药物质产业发展大会暨中国生物发酵产业协会食药物质专业…

栈和队列知识点+例题

1.栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端成为栈顶,另一端成为栈底。遵守后进先出的原则(类似于弹夹) 压栈:栈的插入操…

一文讲明 网络调试助手的基本使用 NetAssist

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

实战 - 在Linux上部署各类软件

前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没有一些具体的实操能够串联起来这些知…

Ubuntu18.04安装Moveit框架

简介 Moveit是一个由一系列移动操作的功能包组成的集成化开发平台,提供友好的GUI,是目前ROS社区中使用度排名前三的功能包,Moveit包含以下三大核心功能,并集成了大量的优秀算法接口: 运动学:KDL,Trac-IK,IKFast...路径规划:OMPL,CHMOP,SBPL..碰撞检测:FCL,PCD... 一、更新功…

全球地表水年度数据集JRC Yearly Water Classification History, v1.4数据集

简介: JRC Yearly Water Classification History, v1.4是一个对全球水资源进行分类的数据集,覆盖了1984年至2019年的时间范围。该数据集是由欧盟联合研究中心(JRC)开发的,使用的数据源是来自Landsat系列卫星的高分辨率…

十. Linux关机重启命令与Vim编辑的使用

关机重启命令 shutdown命令 其他关机命令 其他重启命令 系统运行级别 系统默认运行级别与查询 退出登录命令logout 文本编辑器Vim Vim简介 没有菜单,只有命令Vim工作模式 Vim常用命令 插入命令 定位命令 删除命令 复制和剪切命令 替换和取消命令 搜索和搜索替换命令 保存和退出…

毅速丨嫁接打印在模具制造中应用广泛

在模具行业中,3D打印随形水路已经被广泛认可,它可以提高冷却效率,从而提高产品良率。然而,全打印模具制造的成本相对较高,因为需要使用金属3D打印机和专用材料。为了节省打印成本,同时利用3D打印的优势&…

【Python】问题描述:输入A、B,输出A+B。样例输入12 45样例输出57

1、问题描述 输入A、B,输出AB。 样例输入 12 45 样例输出 57 nums list(map(int,input().split(" "))) print(sum(nums))

STM32 Flash

FLASH简介 Flash是常用的用于存储数据的半导体器件,它具有容量大,可重复擦写,按“扇区/块”擦除、掉电后数据可继续保存的特性。 常见的FLASH主要有NOR FLASH和NAND FLASH两种类型。NOR和NAND是两种数字门电路,可以简单地认为FL…

Haclon案例-找出图中面积最大的圆

任务描述: 下图为HALCON自带的“brake_disk_part_01.png”的图片,试着给它加上不同种类的噪声,然后找出其中面积最大的圆,并将圆的面积标注在其圆心位置。 案例剖析: 1. 该图片为一灰度图,对其进行二值化…

【ctfshow】web入门-信息搜集-web21~28

SSS web21_爆破什么的,都是基操web22_域名也可以爆破的,试试爆破这个ctf.show的子域名web23_还爆破?这么多代码,告辞!web24_爆个🔨web25_爆个🔨,不爆了web26_这个可以爆web27_CTFsho…

[格式化字符串漏洞+堆溢出] Suctf2019_sudrv

前言 悲悲悲, 晚上5点 os-lab 实验报告 ddl, 早上肝实验报告肝到一半, 然后抽风想去做一道 kernel pwn. 然后在一个地方卡了半个多小时, 结果就是写这个 post 的时候已经两点了, 悲. 漏洞分析 这题算是一个入门题, 哎, 就是我在泄漏 kernel offset 的时候想一步到位, 结果就…

存储配置和挂载方式

存储配置 Iscsi简介 iSCSI 启动器,从本质上说,iSCSI 启动器是一个客户端设备,用于将请求连接并启动到服务器(iSCSI 目标)。 iSCSI 启动器有三种实现方式:可以完全基于硬件实现,比如 iSCSI H…