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

SGD、Adam 和 AdamW

一、SGD(Stochastic Gradient Descent)

1. 基本原理

SGD(随机梯度下降)是最基础的优化算法,参数更新公式为:

θt+1=θt−η⋅gt \theta_{t+1} = \theta_t - \eta \cdot g_t θt+1=θtηgt

其中:

  • θt\theta_tθt:第 ttt 步的模型参数;
  • η\etaη:学习率;
  • gt=∇θL(θt)g_t = \nabla_\theta L(\theta_t)gt=θL(θt):当前 batch 的梯度。

常见变体:SGD with Momentum

引入动量机制,减少震荡,加速收敛:

vt+1=μvt+gtθt+1=θt−η⋅vt+1 v_{t+1} = \mu v_t + g_t \\ \theta_{t+1} = \theta_t - \eta \cdot v_{t+1} vt+1=μvt+gtθt+1=θtηvt+1

通常取 μ=0.9\mu = 0.9μ=0.9

2. 优点

  • 结构简单,计算开销小;
  • 泛化性能好,常用于最终微调;
  • 理论分析清晰,适合教学。

3. 缺点

  • 收敛速度慢;
  • 对学习率敏感,需精细调参;
  • 容易陷入局部最优或鞍点。

4. 使用建议

  • 适用于小模型、图像分类任务(如 ResNet);
  • 常用于实验对比或后期微调阶段。

二、Adam(Adaptive Moment Estimation)

1. 原理简介

Adam 结合了 动量(Momentum)自适应学习率(RMSProp) 的思想,维护两个滑动平均:

  • 一阶矩(均值):mt=β1mt−1+(1−β1)gtm_t = \beta_1 m_{t-1} + (1 - \beta_1) g_tmt=β1mt1+(1β1)gt
  • 二阶矩(方差):vt=β2vt−1+(1−β2)gt2v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2vt=β2vt1+(1β2)gt2

由于初始偏置,需进行偏差校正:

m^t=mt1−β1t,v^t=vt1−β2t \hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} m^t=1β1tmt,v^t=1β2tvt

参数更新:

θt+1=θt−η⋅m^tv^t+ϵ \theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} θt+1=θtηv^t+ϵm^t

常用默认参数:

  • β1=0.9\beta_1 = 0.9β1=0.9
  • β2=0.999\beta_2 = 0.999β2=0.999
  • ϵ=1e−8\epsilon = 1e^{-8}ϵ=1e8

2. 优点

  • 自适应学习率,不同参数独立调整步长;
  • 收敛速度快,适合大多数任务;
  • 对学习率不敏感,鲁棒性强;
  • 广泛应用于 NLP、CV 领域(如 BERT 初始训练)。

3. 缺点

  • 可能收敛到“尖锐极小值”,泛化性不如 SGD;
  • 权重衰减(weight decay)与 L2 正则混淆(关键问题!);
  • 后期可能出现震荡,影响测试性能。

三、AdamW(Decoupled Weight Decay Regularization)

1. 背景:Adam 的 weight decay 误区

在标准 Adam 中,若使用 weight_decay 参数,实际上是将其作为 L2 正则项加入损失函数,导致其梯度被自适应缩放机制扭曲。
这意味着:Adam 中的 weight decay ≠ 真实的权重衰减

2. AdamW 的改进

AdamW 明确将权重衰减从梯度中解耦,在更新时单独施加:

θt+1=θt−η⋅(m^tv^t+ϵ+λθt) \theta_{t+1} = \theta_t - \eta \cdot \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_t \right) θt+1=θtη(v^t+ϵm^t+λθt)

其中 λ\lambdaλ 是真实的权重衰减值,与梯度无关。

这就是所谓的“解耦权重衰减(Decoupled Weight Decay)”。

3. 优点

  • 权重衰减作用更准确、可控;
  • 提升模型泛化能力;
  • 已成为 Transformer、ViT 等大模型的标准配置;
  • 实验表现普遍优于 Adam。

4. 缺点

  • 多一个超参数需要调节;
  • 效果依赖于合理的 λ\lambdaλ 设置。

四、三者对比总结

特性SGDAdamAdamW
自适应学习率
内置动量可选(+momentum)
权重衰减准确性❌(与L2混淆)✅(解耦)
收敛速度
泛化性能一般更好
调参难度高(lr敏感)中等中等
典型应用场景小模型、微调快速实验大模型(BERT/ViT)

五、使用建议

场景推荐优化器
学习/调试/小型网络SGD + Momentum
快速原型开发Adam 或 AdamW
大模型训练(Transformer、ViT等)AdamW(首选)
追求最佳泛化先用 AdamW 训练,后期可切换 SGD 微调
注意事项不要同时开启 weight_decay 和额外 L2 loss,避免重复惩罚
http://www.dtcms.com/a/487271.html

相关文章:

  • 导出pdf记录-暂记
  • HarmonyOS屏幕方向适配指南
  • 浏览器书签脚本(书签小程序)学习
  • 网站营销单页怎么设计方案怎样做视频网站
  • ComfyUI部署以及节点扩展
  • CentOS部署Docker容器
  • centOS防火墙操作
  • 个人网站建设规划app展示网站模板
  • 做网站意义和目的阿里云服务器做电影网站
  • 建设网站公司有哪些小程序推广联盟
  • 百度做网站哪里可以学动态小网站
  • android 限定符屏幕适配 根据屏幕尺寸适配不同layout文件夹
  • 【华为OD机试】投篮大赛 100分
  • 厦门网站建设人才浙江省住房和城乡建设厅成绩查询
  • 产品展示型网站有哪些公司网站注意事项
  • python物理模拟:描述波动、振动和旋转系统
  • osg项目运行时关于gl.h错误的问题及解决方法
  • 购物网站首页模板下载做模板下载网站挣钱吗
  • 免费源码网站好用的免费网站源码网站有哪些
  • 小朋友做安全教育的网站开发一款app的公司
  • LeetCode 面试经典 150_区间_用最少数量的箭引爆气球(51_452_C++_中等)(求交集)(sort() 以第二个进行排序)
  • 老干局网站建设方案手机网站图片自适应
  • 云南省建设厅网站舉報软件开发赚钱吗
  • 增强现实:制造业的变革力量
  • 网站虚拟主机建设找人做个网站多少钱
  • 树突状细胞(DC)和巨噬细胞 gvl
  • 【系统分析师】写作框架:信息系统开发方法论
  • 如何仿做网站万网老板是谁
  • SpringCloud系列(52)--SpringCloud Sleuth简介
  • 2025年10月15日第一批一战复旦