news 2026/8/27 4:38:36

PyTorch torch.optim 优化器介绍与论文

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyTorch torch.optim 优化器介绍与论文

目录

    • 概述
    • 常用优化器
      • 1. **SGD** (Stochastic Gradient Descent) - 随机梯度下降
      • 2. **Adam** (Adaptive Moment Estimation) ⭐ 最常用
      • 3. **AdamW** (Adam with Weight Decay) ⭐ PI0.5 使用
      • 4. **RMSprop** (Root Mean Square Propagation)
      • 5. **Adagrad** (Adaptive Gradient)
      • 6. **Adadelta**
      • 7. **Adamax**
      • 8. **RAdam** (Rectified Adam)
      • 9. **LBFGS** (Limited-memory BFGS)
    • 优化器对比表
    • 在 LeRobot 中的使用
      • PI0.5 配置
    • 选择建议
      • 推荐使用
      • 特殊场景
    • 关键论文总结
    • 参考资料
    • 总结

概述

torch.optim是 PyTorch 提供的优化器模块,包含多种梯度下降优化算法。

常用优化器

1.SGD(Stochastic Gradient Descent) - 随机梯度下降

简介:最基础的优化算法,使用固定学习率更新参数。

公式

v_t = momentum × v_{t-1} + g_t θ_t = θ_{t-1} - lr × v_t

特点

  • 简单稳定
  • 收敛速度较慢
  • 适合凸优化问题

论文

  • 原始 SGD

    • Stochastic Approximation
    • 链接:https://projecteuclid.org/journals/annals-of-mathematical-statistics/volume-22/issue-3/Stochastic-approximation/10.1214/aoms/1177729586.full
    • 作者:Herbert Robbins, Sutton Monro
    • 年份:1951
  • Momentum SGD

    • On the importance of initialization and momentum in deep learning
    • 链接:https://proceedings.mlr.press/v28/sutskever13.html
    • 作者:Ilya Sutskever, et al.
    • 年份:2013

使用示例

optimizer=torch.optim.SGD(model.parameters(),lr=0.01,momentum=0.9)

2.Adam(Adaptive Moment Estimation) ⭐ 最常用

简介:自适应学习率优化器,结合了动量和自适应学习率。

公式

m_t = β₁ × m_{t-1} + (1 - β₁) × g_t # 一阶矩估计 v_t = β₂ × v_{t-1} + (1 - β₂) × g_t² # 二阶矩估计 m̂_t = m_t / (1 - β₁^t) # 偏差修正 v̂_t = v_t / (1 - β₂^t) θ_t = θ_{t-1} - lr × m̂_t / (√v̂_t + ε)

特点

  • ✅ 自适应学习率
  • ✅ 收敛速度快
  • ✅ 对超参数不敏感
  • ✅ 适合大多数深度学习任务

论文

  • Adam: A Method for Stochastic Optimization
    • 链接:https://arxiv.org/abs/1412.6980
    • 作者:Diederik P. Kingma, Jimmy Ba
    • 年份:2014
    • 引用:~100,000+

使用示例

optimizer=torch.optim.Adam(model.parameters(),lr=0.001,betas=(0.9,0.999))

3.AdamW(Adam with Weight Decay) ⭐ PI0.5 使用

简介:Adam 的改进版本,修正了权重衰减的实现。

关键改进

  • 将权重衰减从梯度中分离
  • 更正确的 L2 正则化实现
  • 通常比 Adam 效果更好

公式

m_t = β₁ × m_{t-1} + (1 - β₁) × g_t v_t = β₂ × v_{t-1} + (1 - β₂) × g_t² m̂_t = m_t / (1 - β₁^t) v̂_t = v_t / (1 - β₂^t) θ_t = θ_{t-1} - lr × [m̂_t / (√v̂_t + ε) + weight_decay × θ_{t-1}]

特点

  • ✅ 修正了 Adam 的权重衰减问题
  • ✅ 更好的泛化性能
  • ✅ 适合 Transformer 等大模型

论文

  • Decoupled Weight Decay Regularization
    • 链接:https://arxiv.org/abs/1711.05101
    • 作者:Ilya Loshchilov, Frank Hutter
    • 年份:2017
    • 会议:ICLR 2019

使用示例

optimizer=torch.optim.AdamW(model.parameters(),lr=2.5e-5,betas=(0.9,0.95),weight_decay=0.01)

4.RMSprop(Root Mean Square Propagation)

简介:自适应学习率优化器,使用梯度平方的移动平均。

公式

v_t = α × v_{t-1} + (1 - α) × g_t² θ_t = θ_{t-1} - lr × g_t / (√v_t + ε)

特点

  • ✅ 自适应学习率
  • ✅ 适合非平稳目标
  • ✅ RNN 训练效果好

论文

  • Neural Networks for Machine Learning Lecture 6
    • 链接:https://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
    • 作者:Geoffrey Hinton
    • 年份:2012

使用示例

optimizer=torch.optim.RMSprop(model.parameters(),lr=0.01,alpha=0.99)

5.Adagrad(Adaptive Gradient)

简介:自适应学习率优化器,累积历史梯度平方。

公式

G_t = G_{t-1} + g_t² θ_t = θ_{t-1} - lr × g_t / (√G_t + ε)

特点

  • ✅ 自动降低学习率
  • ⚠️ 学习率可能过小
  • ⚠️ 适合稀疏梯度

论文

  • Adaptive Subgradient Methods for Online Learning and Stochastic Optimization
    • 链接:https://jmlr.org/papers/v12/duchi11a.html
    • 作者:John Duchi, Elad Hazan, Yoram Singer
    • 年份:2011
    • 会议:JMLR

使用示例

optimizer=torch.optim.Adagrad(model.parameters(),lr=0.01)

6.Adadelta

简介:Adagrad 的改进版本,解决学习率衰减过快的问题。

公式

E[g²]_t = ρ × E[g²]_{t-1} + (1 - ρ) × g_t² Δθ_t = -√(E[Δθ²]_{t-1} + ε) / √(E[g²]_t + ε) × g_t E[Δθ²]_t = ρ × E[Δθ²]_{t-1} + (1 - ρ) × Δθ_t² θ_t = θ_{t-1} + Δθ_t

特点

  • ✅ 不需要手动设置学习率
  • ✅ 解决 Adagrad 学习率衰减问题

论文

  • ADADELTA: An Adaptive Learning Rate Method
    • 链接:https://arxiv.org/abs/1212.5701
    • 作者:Matthew D. Zeiler
    • 年份:2012

使用示例

optimizer=torch.optim.Adadelta(model.parameters(),rho=0.9)

7.Adamax

简介:Adam 的变体,使用无穷范数代替 L2 范数。

公式

m_t = β₁ × m_{t-1} + (1 - β₁) × g_t u_t = max(β₂ × u_{t-1}, |g_t|) θ_t = θ_{t-1} - lr × m_t / (u_t + ε)

特点

  • ✅ 在某些情况下比 Adam 更稳定
  • ✅ 适合稀疏梯度

论文

  • Adam: A Method for Stochastic Optimization(与 Adam 同一篇)
    • 链接:https://arxiv.org/abs/1412.6980
    • 作者:Diederik P. Kingma, Jimmy Ba
    • 年份:2014

使用示例

optimizer=torch.optim.Adamax(model.parameters(),lr=0.002,betas=(0.9,0.999))

8.RAdam(Rectified Adam)

简介:修正 Adam 的方差问题,在训练初期更稳定。

特点

  • ✅ 修正 Adam 的方差问题
  • ✅ 训练初期更稳定
  • ✅ 自适应切换到 SGD

论文

  • On the Variance of the Adaptive Learning Rate and Beyond
    • 链接:https://arxiv.org/abs/1908.03265
    • 作者:Liyuan Liu, et al.
    • 年份:2019
    • 会议:ICLR 2020

注意:PyTorch 原生不支持,需要第三方库。


9.LBFGS(Limited-memory BFGS)

简介:拟牛顿法,使用二阶导数信息。

特点

  • ✅ 收敛速度快(接近二阶方法)
  • ⚠️ 内存占用大
  • ⚠️ 不适合大规模模型

论文

  • Updating Quasi-Newton Matrices with Limited Storage
    • 链接:https://link.springer.com/article/10.1007/BF01589116
    • 作者:Jorge Nocedal
    • 年份:1980

使用示例

optimizer=torch.optim.LBFGS(model.parameters(),lr=1,max_iter=20)

优化器对比表

优化器学习率动量自适应收敛速度推荐度
SGD固定可选⭐⭐
Adam自适应⭐⭐⭐⭐⭐
AdamW自适应⭐⭐⭐⭐⭐
RMSprop自适应⭐⭐⭐
Adagrad自适应⭐⭐
Adadelta自适应⭐⭐⭐

在 LeRobot 中的使用

PI0.5 配置

文件policies/pi05/configuration_pi05.py

optimizer_lr:float=2.5e-5optimizer_betas:tuple[float,float]=(0.9,0.95)optimizer_eps:float=1e-8optimizer_weight_decay:float=0.01

实际使用

optimizer=torch.optim.AdamW(params,lr=2.5e-5,betas=(0.9,0.95),eps=1e-8,weight_decay=0.01)

选择建议

推荐使用

  1. AdamW⭐⭐⭐⭐⭐

    • 大多数深度学习任务
    • Transformer 模型
    • 大模型微调
  2. Adam⭐⭐⭐⭐

    • 通用深度学习
    • 快速原型开发
  3. SGD + Momentum⭐⭐⭐

    • 凸优化问题
    • 需要稳定训练时

特殊场景

  • RNN/LSTM:RMSprop
  • 稀疏梯度:Adagrad, Adamax
  • 小规模模型:LBFGS

关键论文总结

优化器核心论文年份作者
SGDStochastic Approximation1951Robbins & Monro
MomentumOn the importance of initialization and momentum2013Sutskever et al.
AdamAdam: A Method for Stochastic Optimization2014Kingma & Ba
AdamWDecoupled Weight Decay Regularization2017Loshchilov & Hutter
RMSpropNeural Networks Lecture 62012Hinton
AdagradAdaptive Subgradient Methods2011Duchi et al.
AdadeltaADADELTA: An Adaptive Learning Rate Method2012Zeiler
RAdamOn the Variance of the Adaptive Learning Rate2019Liu et al.

参考资料

  • PyTorch 文档:https://pytorch.org/docs/stable/optim.html
  • 优化器可视化:https://ruder.io/optimizing-gradient-descent/
  • Adam 论文:https://arxiv.org/abs/1412.6980
  • AdamW 论文:https://arxiv.org/abs/1711.05101

总结

最推荐AdamW- 修正了 Adam 的权重衰减问题,效果更好

PI0.5 使用AdamW- 配置为lr=2.5e-5, betas=(0.9, 0.95), weight_decay=0.01

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

centos7-nvidia驱动安装及简单测试

centos7-nvidia驱动安装类别信息服务器型号Rack Mount Chassis NF5280M6CPUIntel Xeon Silver 4310 CPU 2.10GHz * 2系统版本Centos 7系统内核版本3.10.0-1160.el7.x86_64GPU型号NVIDIA A100(40G)*4Nvidia版本525.85.05CUDA版本12.0.0docker版本20.10.9…

作者头像 李华
网站建设 2026/8/27 4:29:39

BUCK-BOOST升降压电路Multisim电路仿真分析

目录 0 概述 工作过程简述 Q1 导通阶段 Q1 关断阶段 稳态输出 主要元件作用 电路特点 1 过程分析: 第一次开关闭合时 第二次Q1闭合时C1放电 2 Multisim仿真分析 占空比D=25% 占空比D=60% 摘要 本文分析了三极管型BUCK-BOOST升降压开关电源的工作原理。该电路结…

作者头像 李华
网站建设 2026/8/18 20:08:26

内存固态等大幅涨价的优势是什么?

原本电子垃圾又有了些许价值升华。 排名上升 现在有部分旧电脑重新启用。看大数据的排名结果: https://blog.csdn.net/ZhangRelay/article/details/155345614 这是去年,2025年11月28日测试的结果,2%排位,非常低端了。 预料之中的…

作者头像 李华
网站建设 2026/8/24 6:18:23

YOLOv12官版镜像训练全流程,附完整代码示例

YOLOv12官版镜像训练全流程,附完整代码示例 YOLOv12不是迭代编号的简单延续,而是一次范式跃迁——它彻底告别了卷积主干,将注意力机制作为目标检测的原生语言。当行业还在为RT-DETR的推理延迟发愁时,YOLOv12已用1.6毫秒完成一次高…

作者头像 李华
网站建设 2026/8/25 14:41:48

SAM 3多模态提示实战:文本+点选协同提升小目标分割准确率

SAM 3多模态提示实战:文本点选协同提升小目标分割准确率 1. 模型概述 SAM 3是Meta推出的新一代多模态分割基础模型,能够同时处理图像和视频中的对象分割任务。与传统的单一模态分割模型不同,SAM 3创新性地支持文本提示和视觉提示的协同使用…

作者头像 李华
网站建设 2026/8/26 5:19:37

【毕业设计】SpringBoot+Vue+MySQL spring boot校园商铺管理系统平台源码+数据库+论文+部署文档

摘要 随着互联网技术的快速发展,校园商铺管理系统逐渐成为高校信息化建设的重要组成部分。传统校园商铺管理多依赖人工操作,效率低下且容易出错,无法满足现代校园商业活动的需求。通过数字化手段实现商铺信息的统一管理、订单的高效处理以及…

作者头像 李华