核心内容摘要
Fluke福禄克9170 9171 9172 9173干井炉计量炉
目录概述常用优化器
**SGD** (Stochastic Gradient Descent) - 随机梯度下降
**Adam** (Adaptive Moment Estimation) ⭐ 最常用
**AdamW** (Adam with Weight Decay) ⭐ PI
5 使用
**RMSprop** (Root Mean Square Propagation)
**Adagrad** (Adaptive Gradient)
**Adadelta**
**Adamax**
**RAdam** (Rectified Adam)
**LBFGS** (Limited-memory BFGS)优化器对比表在 LeRobot 中的使用PI
5 配置选择建议推荐使用特殊场景关键论文
总结参考资料
总结概述torch.optim是 PyTorch 提供的优化器模块包含多种梯度下降优化算法。
常用优化器
SGD(Stochastic Gradient Descent) - 随机梯度下降简介最基础的优化算法使用固定学习率更新参数。
公式v_t momentum × v_{t-1} g_t θ_t θ_{t-1} - lr × v_t特点简单稳定收敛速度较慢适合凸优化问题论文原始 SGDStochastic Approximation链接https://projecteuclid.org/journals/annals-of-mathematical-statistics/volume-22/issue-3/Stochastic-approximation/
1
1214/aoms/
full作者Herbert Robbins, Sutton Monro年份1951Momentum SGDOn the importance of initialization and momentum in deep learning链接https://proceedings.mlr.press/v28/sutskever
html作者Ilya Sutskever, et al.年份2013使用示例optimizertorch.optim.SGD(model.parameters(),lr
01,momentum
0.
9)
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/
1
6980作者Diederik P. Kingma, Jimmy Ba年份2014引用~100,000使用示例optimizertorch.optim.Adam(model.parameters(),lr
001,betas(
9,
0.
)
AdamW(Adam with Weight Decay) ⭐ PI
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/
1
05101作者Ilya Loshchilov, Frank Hutter年份2017会议ICLR 2019使用示例optimizertorch.optim.AdamW(model.parameters(),lr
5e-5,betas(
9,
0.
,weight_decay
0.
01)
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_lec
pdf作者Geoffrey Hinton年份2012使用示例optimizertorch.optim.RMSprop(model.parameters(),lr
01,alpha
0.
99)
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使用示例optimizertorch.optim.Adagrad(model.parameters(),lr
0.
01)
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/
1
5701作者Matthew D. Zeiler年份2012使用示例optimizertorch.optim.Adadelta(model.parameters(),rho
0.
9)
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/
1
6980作者Diederik P. Kingma, Jimmy Ba年份2014使用示例optimizertorch.optim.Adamax(model.parameters(),lr
002,betas(
9,
0.
)
RAdam(Rectified Adam)简介修正 Adam 的方差问题在训练初期更稳定。
特点✅ 修正 Adam 的方差问题✅ 训练初期更稳定✅ 自适应切换到 SGD论文On the Variance of the Adaptive Learning Rate and Beyond链接https://arxiv.org/abs/
1
03265作者Liyuan Liu, et al.年份2019会议ICLR 2020注意PyTorch 原生不支持需要第三方库。
LBFGS(Limited-memory BFGS)简介拟牛顿法使用二阶导数信息。
特点✅ 收敛速度快接近二阶方法⚠️ 内存占用大⚠️ 不适合大规模模型论文Updating Quasi-Newton Matrices with Limited Storage链接https://link.springer.com/article/
1
1007/BF01589116作者Jorge Nocedal年份1980使用示例optimizertorch.optim.LBFGS(model.parameters(),lr1,max_iter
优化器对比表优化器学习率动量自适应收敛速度推荐度SGD固定可选❌慢⭐⭐Adam自适应✅✅快⭐⭐⭐⭐⭐AdamW自适应✅✅快⭐⭐⭐⭐⭐RMSprop自适应❌✅中⭐⭐⭐Adagrad自适应❌✅中⭐⭐Adadelta自适应❌✅中⭐⭐⭐在 LeRobot 中的使用PI
5 配置文件policies/pi05/configuration_pi
pyoptimizer_lr:float
5e-5optimizer_betas:tuple[float,float](
9,
0.
optimizer_eps:float1e-8optimizer_weight_decay:float
01实际使用optimizertorch.optim.AdamW(params,lr
5e-5,betas(
9,
0.
,eps1e-8,weight_decay
0.
选择建议推荐使用AdamW⭐⭐⭐⭐⭐大多数深度学习任务Transformer 模型大模型微调Adam⭐⭐⭐⭐通用深度学习快速原型开发SGD Momentum⭐⭐⭐凸优化问题需要稳定训练时特殊场景RNN/LSTMRMSprop稀疏梯度Adagrad, Adamax小规模模型LBFGS关键论文
总结优化器核心论文年份作者SGDStochastic Approximation1951Robbins MonroMomentumOn the importance of initialization and momentum2013Sutskever et al.AdamAdam: A Method for Stochastic Optimization2014Kingma BaAdamWDecoupled Weight Decay Regularization2017Loshchilov HutterRMSpropNeural Networks Lecture 62012HintonAdagradAdaptive Subgradient Methods2011Duchi et al.AdadeltaADADELTA: An Adaptive Learning Rate Method2012ZeilerRAdamOn 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/
1
6980AdamW 论文https://arxiv.org/abs/
1
05101
总结最推荐AdamW- 修正了 Adam 的权重衰减问题效果更好PI
5 使用AdamW- 配置为lr
5e-5, betas(
9,
0.