news 2026/4/22 7:47:53

深度学习 —— 梯度下降法的优化方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习 —— 梯度下降法的优化方法

目录

一、梯度下降法 回顾

二、梯度下降法的缺点

三、如何选择优化方法

1.了解 —— 指数移动加权平局

1.1 公式

1.2 图例说明

1.3 结论

2.优化方法:

2.1 图解

2.2 如何选择优化方法

2.3 对应API

动量法 Momentum

AdaGrad 自适应学习率

RMSprop 自适应学习率

Adam 自适应矩估计

AdamW 自适应矩估计

2.4 梯度下降法优化方法总结


一、梯度下降法 回顾

W新 = W旧 - 学习率 * 梯度

假设 学习率 lr = 0.1.

① 6.4 = 8.0 - 0.1 * 16.0

② 5.12 = 6.4 - 0.1 * 12.8

③ 4.01 = 5.12 - 0.1 * 10.24

...

二、梯度下降法的缺点

1.碰到平缓区间,梯度值较小,参数优化变慢

2.碰到”鞍点“,梯度为0,参数无法优化

3.碰到局部最小值,参数不是最优。无法跳出

比如 y = x ^ 3 。x = 0的时候 就是”鞍点“ 导数为0

三、如何选择优化方法

1.了解 ——指数移动加权平局

1.1 公式

1.2 图例说明

β = beta 一组散点天气数据

beta = 0 beta = 0.5

beta = 0.9 beta = 1

1.3 结论

1.对于指数移动加权平均值

β 值(调节系数)越大,移动加权平均值越平缓,越考虑历史数据。

β 值 越小,移动加权平均值越接近当前数据。

2.特例:β 值 = 0,就是当前数据的原始值

β 值 = 1,就是第一天的初始值

2.优化方法:

2.1 图解

2.2 如何选择优化方法

* Adam / AdamW (推荐) -> RMSprop -> 动量法 Momentum -> 原始SGD,AdaGrad (不建议)

对比 Adam 和 AdamW

Adam:

① 同时调整 学习率 和 梯度

② 使用梯度一阶矩来调整梯度,二阶矩来调整学习率

AdamW:

① Adam的优化版

② 解耦了权重衰减

③ 原始Adam直接在梯度中添加了 权重衰减项,使得调整梯度和调整学习率藕合在一起,会造成模型训练后期不稳定。

④ AdaW 使用原始梯度,在更新参数时直接添加权重衰减项目,解耦了调整梯度和调整学习率

2.3 对应API
# 优化器模块,实现梯度下降法以及梯度下降的优化方法 import torch.optim as optim
动量法 Momentum
optim.SGD([w],lr=0.01,momentum=0.95)
AdaGrad 自适应学习率
optim.Adagrad([w],lr=0.01)
RMSprop 自适应学习率
optim.RMSprop([w],lr=0.01)
Adam 自适应矩估计
optim.Adam([w],lr=0.01)
AdamW 自适应矩估计
optim.AdamW([w],lr=0.01)
2.4梯度下降法优化方法总结

1. SGD原始梯度下降法:optim.SGD, 使用当前梯度直接更新参数,用于凸优化问题,容易陷入局部最优解

2. 动量法Momentum: optim.SGD(momentum=0.9), 引入动量概念,利用历史梯度信息,加速收敛

3. AdaGrad: optim.Adagrad, 自动调整学习率,学习率下降过快过早,导致模型更新慢

4. RMSprop: optim.RMSprop, 自动调整学习率,对AdaGrad的改进

5. Adam: optim.Adam, 结合 动量法和RMSprop,同时调整学习率和梯度,训练稳定

6. AdamW: optim.AdamW, 对Adam的改进,解决权重衰减问题,推荐使用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 7:45:24

解锁音乐自由:qmcdump音频解码工具完全指南

解锁音乐自由:qmcdump音频解码工具完全指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经为QQ音…

作者头像 李华
网站建设 2026/4/22 7:41:45

5分钟上手QtScrcpy:电脑键鼠操控安卓手机的完整指南

5分钟上手QtScrcpy:电脑键鼠操控安卓手机的完整指南 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy是一款开源的安卓设备实时显示与控制软件,它让你…

作者头像 李华
网站建设 2026/4/22 7:40:44

告别裸机:在S32K3上基于RTOS(如FreeRTOS)构建稳定的FlexCAN多任务通信框架

告别裸机:在S32K3上基于RTOS构建稳定的FlexCAN多任务通信框架 当汽车电子系统从简单的ECU单元进化到支持自动驾驶、车联网的复杂架构时,传统的裸机CAN通信方案开始暴露出诸多瓶颈。我曾参与过一个车载网关项目,最初采用轮询方式处理12个CAN节…

作者头像 李华
网站建设 2026/4/22 7:33:31

std::shared_ptr 的引用计数是原子的——但你知道这“原子“到底多贵吗

一个 shared_ptr 的拷贝,在单线程无竞争的情况下大约 5-8 纳秒(具体数字因 CPU 微架构和频率而异,下文的延迟数据均取典型 x86 服务器芯片的量级)。在 8 个线程同时拷贝同一个对象的 shared_ptr 时,这个数字可以膨胀到 200 纳秒以上。 40 倍。 不是因为你写了锁,不是因…

作者头像 李华
网站建设 2026/4/22 7:28:23

复古收音机技术‘复活’记:用2SK241 JFET打造150kHz高灵敏度接收前端

复古收音机技术‘复活’记:用2SK241 JFET打造150kHz高灵敏度接收前端 在电子技术飞速迭代的今天,复古无线电设计正以独特的魅力重回硬件爱好者的视野。2SK241这款诞生于上世纪80年代的JFET晶体管,凭借其出色的高输入阻抗和低噪声特性&#xf…

作者头像 李华