当前位置: 首页 > news >正文

【机器学习】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位浮点数,可能数值上溢)

· 对学习率非常敏感

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

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

        · 需要不断调整学习率

相关文章:

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

一、原因 神经网络梯度 假设现在有一个 层的神经网络,每层的输出为一个对输入作 变换的函数结果 用 来表示第 层的输出,那么有下列公式: 链式法则计算损失 关于某一层某个参数 的梯度: 注意到, 为向量&am…...

【转】OAK-D双目相机进行标定及标定结果说明

编辑:OAK中国 首发:A. hyhCSDN 喜欢的话,请多多👍⭐️✍ 内容来自用户的分享,如有疑问请与原作者交流! ▌前言 Hello,大家好,这里是OAK中国,我是助手君。 近期在CSDN刷…...

whip和whep

原文为runner365.git大佬的文章 原文链接:https://blog.csdn.net/sweibd/article/details/124552793 WHIP接口 什么是whip 全称: WebRTC-HTTP ingestion protocol (WHIP). rfc地址: rfc-draft-murillo-whip-00 简单说,就是通过HTTP接口能导入webrtc媒…...

SpringBoot集成jjwt和使用

1.引入jwt依赖&#xff08;这里以jjwt为例&#xff0c;具体其他jwt产品可以参见jwt官网&#xff09; <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>…...

RedisConnectionFactory is required已解决!!!!

1.起因&#x1f936;&#x1f936;&#x1f936;&#x1f936; redis搭建完成后&#xff0c;准备启动主程序&#xff0c;异常兴奋&#xff0c;结果报错了&#xff01;&#xff01;&#xff01;&#xff01; 2.究竟是何原因 &#x1f62d;&#x1f62d;&#x1f62d;&#x1f…...

redis的高可用之持久化

1、redis的高可用考虑指标 &#xff08;1&#xff09;正常服务 &#xff08;2&#xff09;数据容量的扩展 &#xff08;3&#xff09;数据的安全性 2、redis实现高可用的四种方式 &#xff08;1&#xff09;持久化 &#xff08;2&#xff09;主从复制 &#xff08;3&…...

onnx模型转换opset版本和固定动态输入尺寸

背景&#xff1a;之前我想把onnx模型从opset12变成opset12&#xff0c;太慌乱就没找着&#xff0c;最近找到了官网上有示例的&#xff0c;大爱onnx官网&#xff0c;分享给有需求没找着的小伙伴们。 1. onnx模型转换opset版本 官网示例&#xff1a; import onnx from onnx im…...

远程运维如何更高效的远程管理?向日葵的这几项功能会帮到你

远程运维如何更高效的远程管理&#xff1f;向日葵的这几项功能会帮到你 具备一定规模的企业&#xff0c;其IT运维需求普遍会面临设备数量众多、难以统一高效管理、始终存在安全敞口等问题&#xff0c;尤其是针对分部广泛的无人值守设备时&#xff0c;更是如此。 举一个简单的例…...

python BDD 的相关概念

在Python 语言中进行BDD的规格和测试文件的编写的时候&#xff0c;常常会遇到下面的概念&#xff1a; Fixture : 测试设施。设定测试环境的预设状态或值的机制。Background&#xff1a; 背景。所有场景的公共部分。Scenario&#xff1a; 场景。Given &#xff1a; 前置条件Whe…...

【Exception】Error: Dynamic require of “path“ is not supported

Talk is cheap, show me the code. 环境 | Environment kversionOSwindows 11Node.jsv18.14.2npm9.5.0vite5.0.0vue3.3.8 报错日志 | Error log >npm run dev> app10.0.0 dev > viteERROR failed to load config from C:\code\frontend\app1\vite.config.js …...

【蓝桥杯选拔赛真题25】C++两个数比大小 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++两个数比大小 一、题目要求 1、编程实现 2、输入输出 二、算法分析...

C++学习——C++运算符重载(含义、格式、示例、遵循的规则)

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 一、运算符重载的含义 所谓重载&#xff0c;就是赋予新的含义。函数重载&#xff08;Function Overloading&#xff09;可以让一个函数名有多种功能&#xff0c;在不同情况下进行不同…...

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了&#xff0c;这次就来学习一个3d版本的&…...

编程语言发展史:C语言的诞生及其影响

预计更新 第一部分&#xff1a;早期编程语言 1.1布尔代数和机器语言 1.2汇编语言的出现和发展 1.3高级语言的兴起 第二部分&#xff1a;主流编程语言 1.1 C语言的诞生及其影响 1.2 C语言的发展和应用 1.3 Java语言的出现和发展 1.4 Python语言的兴起和特点 1.5 JavaScript语言…...

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景&#xff0c;一般流程性的测试用例的测试步骤比较多&#xff0c;我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…...

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…...

潮玩宇宙大逃杀游戏开发源码说明

潮玩宇宙大逃杀游戏是一款简单而刺激的游戏。玩家在倒计时结束前从8个房间中选择一个房间并投入宝石。倒计时结束后&#xff0c;系统会自动生成一个敌人&#xff0c;然后随机挑选一个房间并清除这个房间内的人。其余7个房间内的玩家就可以按照投入比例获得被清除掉玩家的宝石。…...

UE5 操作WebSocket

插件&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/websocket-client 参考&#xff1a;http://dascad.net/html/websocket/bp_index.html 1. 安装Plugings 2.测试websocket服务器 http://www.websocket-test.com/ 3.连接服务器 如果在Level BP里使用&a…...

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、认识系统接口&#xff0c;操作文件 &#xff08;一&#xff09;认识文件描述符 &#xff08;二&#xff09;举例 &#xff08;三&#xff09;…...

素短语的定义

素短语&#xff0c;是指至少含有一个终结符的短语&#xff0c;并且除自身外&#xff0c;不包含更小的素短语。 最左素短语是句型中最左边的素短语。...

当node.js遇见ai:使用快马平台快速构建智能对话机器人后端

当Node.js遇见AI&#xff1a;使用快马平台快速构建智能对话机器人后端 最近在尝试用Node.js开发一个智能对话机器人后端&#xff0c;发现结合AI能力可以解锁很多新场景。比如客服系统、智能助手、内容生成工具等。作为一个全栈开发者&#xff0c;我一直在寻找能简化AI集成流程…...

在模型广场中根据任务需求与预算选择合适的Taotoken模型

在模型广场中根据任务需求与预算选择合适的Taotoken模型 1. 访问模型广场 Taotoken 的模型广场是用户选择合适模型的核心入口。登录 Taotoken 控制台后&#xff0c;点击左侧导航栏的「模型广场」即可进入。该页面会展示当前平台支持的所有模型&#xff0c;包括它们的名称、提…...

LRCGET:离线音乐库批量歌词下载与同步的智能解决方案

LRCGET&#xff1a;离线音乐库批量歌词下载与同步的智能解决方案 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否曾为海量离线音乐文件寻找同步歌…...

5分钟解锁Cursor Pro无限使用:告别AI编程助手限制的终极方案

5分钟解锁Cursor Pro无限使用&#xff1a;告别AI编程助手限制的终极方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached yo…...

保姆级教程:在RK3588-EVB1开发板上解锁HDMI 8K输出(Android 12 SDK)

保姆级教程&#xff1a;在RK3588-EVB1开发板上解锁HDMI 8K输出&#xff08;Android 12 SDK&#xff09; RK3588作为Rockchip旗舰级SoC&#xff0c;其8K视频处理能力一直备受开发者关注。但在Android 12 SDK的默认配置中&#xff0c;HDMI输出被限制在4K分辨率——这并非硬件瓶颈…...

PyPI镜像失效、pip install卡死、torch.cuda.is_available()返回False?Python AI配置崩溃前的最后3分钟急救指南

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PyPI镜像失效、pip install卡死、torch.cuda.is_available()返回False&#xff1f;Python AI配置崩溃前的最后3分钟急救指南 当 pip install 在下载 torch 时无限挂起&#xff0c;或 import torch; pri…...

低代码不是银弹,但内核决定生死:基于JDK17+GraalVM构建轻量级内核的6大硬性约束与3种裁剪方案(实测内存<48MB)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;低代码平台内核的本质认知与边界界定 低代码平台的内核并非简单的可视化拖拽引擎&#xff0c;而是一套运行时抽象层与元数据驱动的执行框架。其本质是将业务逻辑、UI 布局、数据连接、权限策略等维度统…...

Helm HTTP包装器:将Kubernetes应用部署API化的工程实践

1. 项目概述&#xff1a;为什么我们需要一个Helm的HTTP包装器&#xff1f;如果你和我一样&#xff0c;长期在Kubernetes生态里摸爬滚打&#xff0c;那你对Helm一定不陌生。作为Kubernetes的“包管理器”&#xff0c;Helm通过Chart和Release的概念&#xff0c;把复杂的应用部署从…...

Vue3 + Vite项目实战:手把手教你封装一个带Token自动管理的Axios请求库

Vue3 Vite项目实战&#xff1a;打造企业级Axios请求库的自动化设计 在当今前端工程化实践中&#xff0c;一个健壮的HTTP请求库早已不是简单的请求发送工具&#xff0c;而是承载着Token管理、错误处理、性能监控等多项职责的基础设施。本文将带您从工程化角度&#xff0c;重构一…...

FanControl:让Windows风扇控制变得如此简单!告别噪音与高温的终极解决方案

FanControl&#xff1a;让Windows风扇控制变得如此简单&#xff01;告别噪音与高温的终极解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://…...