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

【训练技巧】优化器adam和adamw的公式推导详解及区别

Adam优化器公式推导详解

Adam(Adaptive Moment Estimation)结合了动量法和RMSProp的优点,通过自适应学习率实现高效优化:

  1. 梯度计算
    在时间步ttt,计算目标函数梯度gt=∇θft(θt−1)g_t = \nabla_\theta f_t(\theta_{t-1})gt=θft(θt1)

  2. 一阶矩估计(动量)
    更新梯度指数移动平均:
    mt=β1mt−1+(1−β1)gtm_t = \beta_1 m_{t-1} + (1 - \beta_1) g_tmt=β1mt1+(1β1)gt
    其中β1∈[0,1)\beta_1 \in [0,1)β1[0,1)控制动量衰减率(通常取0.9)

  3. 二阶矩估计(自适应学习率)
    更新梯度平方指数移动平均:
    vt=β2vt−1+(1−β2)gt2v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2vt=β2vt1+(1β2)gt2
    其中β2∈[0,1)\beta_2 \in [0,1)β2[0,1)(通常取0.999),gt2g_t^2gt2表示逐元素平方

  4. 偏差校正
    mt,vtm_t,v_tmt,vt初始为0,需进行偏差修正:
    m^t=mt1−β1t\hat{m}_t = \frac{m_t}{1 - \beta_1^t}m^t=1β1tmt
    v^t=vt1−β2t\hat{v}_t = \frac{v_t}{1 - \beta_2^t}v^t=1β2tvt

  5. 参数更新
    θt=θt−1−αm^tv^t+ϵ\theta_t = \theta_{t-1} - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}θt=θt1αv^t+ϵm^t
    其中α\alphaα为学习率,ϵ≈10−8\epsilon \approx 10^{-8}ϵ108防止除零


AdamW优化器公式推导详解

AdamW(Adam with Weight Decay)改进了Adam中权重衰减的实现方式,核心区别在参数更新步骤

  1. 梯度计算、矩估计、偏差校正步骤与Adam完全相同

  2. 参数更新(关键改进)
    θt=θt−1−α(m^tv^t+ϵ+λθt−1)\theta_t = \theta_{t-1} - \alpha \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_{t-1} \right)θt=θt1α(v^t+ϵm^t+λθt1)
    其中λ\lambdaλ为权重衰减系数


核心区别分析

特性AdamAdamW
权重衰减融入损失函数:L′=L+λ2∣θ∣2L' = L + \frac{\lambda}{2}|\theta|^2L=L+2λθ2直接作用于参数更新
数学表达梯度含衰减项:gtAdam=∇L+λθg_t^{Adam} = \nabla L + \lambda \thetagtAdam=L+λθ梯度纯净:gt=∇Lg_t = \nabla Lgt=L
耦合性衰减项与自适应学习率耦合衰减项与自适应学习率解耦
物理意义衰减强度受vt\sqrt{v_t}vt影响衰减强度保持恒定
区别图示
# Adam更新(伪代码)
grad = compute_gradient() + weight_decay * param
m = beta1*m + (1-beta1)*grad
v = beta2*v + (1-beta2)*grad**2
param -= lr * m / (sqrt(v) + eps)# AdamW更新(伪代码)
grad = compute_gradient()  # 无衰减项
m = beta1*m + (1-beta1)*grad
v = beta2*v + (1-beta2)*grad**2
param -= lr * (m / (sqrt(v) + eps) + weight_decay * param)

为什么AdamW更优?

  1. 解耦优势
    在Adam中,权重衰减项λθ\lambda\thetaλθ会被自适应学习率α/vt\alpha/\sqrt{v_t}α/vt缩放,导致实际衰减强度随训练动态变化。AdamW保持λ\lambdaλ独立作用,确保正则化效果稳定。

  2. 实验验证

    • 在ImageNet上,AdamW相比Adam可获得+0.5%+0.5\%+0.5%+1.5%+1.5\%+1.5%精度提升
    • 训练收敛速度提升约1.2×1.2\times1.2×(相同迭代次数下损失更低)
  3. 超参数鲁棒性
    AdamW对λ\lambdaλ的选择更鲁棒,λ\lambdaλ[10−3,10−2][10^{-3}, 10^{-2}][103,102]范围通常有效,而Adam需要精细调整。

效果对比:
adam
loss从1.2慢慢增加到1.8去了,收敛困难。
在这里插入图片描述
adamw
loss从1.2慢慢下降,收敛正常。
在这里插入图片描述

实践建议:当使用Adam类优化器时,优先选择AdamW并设置λ∈[0.01,0.1]\lambda \in [0.01, 0.1]λ[0.01,0.1],初始学习率α\alphaα设为Adam的1/21/21/21/101/101/10

http://www.dtcms.com/a/573805.html

相关文章:

  • 网易云网站开发网页开发的基本过程
  • 网站建设实训报告作业惠民网站建设
  • 上海华亮建设集团网站河南省城乡与住房建设厅网站首页
  • 【计算机视觉目标检测算法对比:R-CNN、YOLO与SSD全面解析】
  • 如何判断一个需求是“必须做”还是“可以等”?
  • 网站的主机做网站有发展吗
  • 力扣.84柱状图中最大矩形 力扣.134加油站牛客.abb(hard 动态规划+哈希表)牛客.哈夫曼编码
  • Verilog宏define
  • 性能瓶颈如何识别定位
  • ubuntu24.04制作离线本地APT源
  • UDS诊断服务基础详解之十四—85服务
  • 神经符号模型与增量学习——下一代可控人工智能的正统新范式
  • 企业官方网站开发如何入账做交通分析的网站
  • 如何使用爱站网婚庆网站建设公司
  • 高职大数据技术专业学习与发展指南
  • 上海网站建设的网站crm客户关系管理论文
  • C++的时间陷阱——临时对象、引用折叠与生命周期延长
  • 关于unity世界坐标和相对坐标
  • 企业网站建设研究凡科互动永久解封
  • 专做排名的网站做漫画网站
  • 数据库 连接工具 免费
  • 魔云手机建站商务网站规划建设与管理答案
  • django中request.GET.urlencode的使用
  • 优秀网站设计重庆网站营销
  • 孟村县网站建设通州网站建设是什么
  • Qt解决_mm_loadu_si64找不到标识符问题
  • 灾难恢复(DR):RTO/RPO 定义、冷备/热备/双活架构
  • 台州网站设计 解放路成都网站开发哪家好
  • 吉林网络公司哪家好如何做好seo基础优化
  • 芜湖有哪些招聘网站企业网站优化问题