Back to Knowledge Blind Box

Knowledge Blind Box

附录 A.8 自适应优化器与 AdamW

ai-generatedstochastic-parrotstochastic-parrot-anatomyai

Original text in Chinese. This English page translates only the site interface and metadata.

本附录固定 Momentum、AdaGrad、RMSProp、Adam 和 AdamW 的一组常用更新约定,并解释哪些等价关系成立。算法名称不能替代具体公式:不同库对动量缩放、ϵ\epsilon 位置、weight decay 与参数分组可能采用不同约定。

以下乘法、除法、平方与平方根均按坐标进行。令 gt=∇Ft(θt−1)g_t=\nabla F_t(\theta_{t-1}) 表示第 tt 步 stochastic gradient。 除非另行说明,一阶、二阶累积量均从零初始化,ϵ>0\epsilon>0,各动量系数在训练期间固定。

A.8.1 Momentum 的两种尺度约定

EMA 形式的 momentum 写作

mt=βmt−1+(1−β)gt,m_t=\beta m_{t-1}+(1-\beta)g_t, θt=θt−1−ηtmt,0≤β<1.(A.8.1)\theta_t=\theta_{t-1}-\eta_tm_t, \qquad 0\le\beta<1. \tag{A.8.1}

另一种常见实现省略 (1−β)(1-\beta):

vt=βvt−1+gt,θt=θt−1−η~tvt.(A.8.2)v_t=\beta v_{t-1}+g_t, \qquad \theta_t=\theta_{t-1}-\widetilde\eta_tv_t. \tag{A.8.2}

当 m0=v0=0m_0=v_0=0 且超参数固定时,mt=(1−β)vtm_t=(1-\beta)v_t;要得到相同参数更新需令 η~t=(1−β)ηt\widetilde\eta_t=(1-\beta)\eta_t。因此不同实现中的“学习率相同”不表示动力学相同。

展开 (A.8.1):

mt=(1−β)∑j=1tβt−jgj(m0=0).(A.8.3)m_t=(1-\beta)\sum_{j=1}^t\beta^{t-j}g_j \quad(m_0=0). \tag{A.8.3}

权重和为 1−βt1-\beta^t,时间常数约为 −1/log⁡β≈1/(1−β)-1/\log\beta\approx1/(1-\beta)。momentum 可以平滑部分高频随机变化,但不保证逃离任意鞍点,也不存在对所有目标优于 SGD 的次序。

A.8.2 AdaGrad 与 RMSProp

AdaGrad 的一组对角形式为

vt=vt−1+gt2,v_t=v_{t-1}+g_t^2, θt=θt−1−ηtgtvt+ϵ.(A.8.4)\theta_t =\theta_{t-1} -\eta_t\frac{g_t}{\sqrt{v_t}+\epsilon}. \tag{A.8.4}

vtv_t 单调不减。若某坐标的平方梯度和发散,该坐标的预条件系数趋于零;若平方梯度和有限,不能作此结论。稀疏坐标往往累积得较慢,但这不表示稀有特征必然更有信息。

RMSProp 用指数移动平均替代永久累积,其中 0≤ρ<10\le\rho<1:

vt=ρvt−1+(1−ρ)gt2,v_t=\rho v_{t-1}+(1-\rho)g_t^2, θt=θt−1−ηtgtvt+ϵ.(A.8.5)\theta_t =\theta_{t-1} -\eta_t\frac{g_t}{\sqrt{v_t}+\epsilon}. \tag{A.8.5}

有些实现使用 vt+ϵ\sqrt{v_t+\epsilon},或另加一阶 momentum;这些公式在有限精度和 vtv_t 很小时并不等价。vtv_t 是平方梯度的近期尺度,不是 Hessian,也不区分信号与噪声。

A.8.3 Adam 与偏差修正

Adam 同时维护一阶与二阶原始矩的 EMA,其中 0≤β1,β2<10\le\beta_1,\beta_2<1:

mt=β1mt−1+(1−β1)gt,m_t=\beta_1m_{t-1}+(1-\beta_1)g_t, vt=β2vt−1+(1−β2)gt2,(A.8.6)v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2, \tag{A.8.6} m^t=mt1−β1t,v^t=vt1−β2t,(A.8.7)\widehat m_t=\frac{m_t}{1-\beta_1^t}, \qquad \widehat v_t=\frac{v_t}{1-\beta_2^t}, \tag{A.8.7} θt=θt−1−ηtm^tv^t+ϵ.(A.8.8)\theta_t =\theta_{t-1} -\eta_t\frac{\widehat m_t}{\sqrt{\widehat v_t}+\epsilon}. \tag{A.8.8}

若 m0=0m_0=0,则

mt=(1−β1)∑j=1tβ1t−jgj,m_t=(1-\beta_1) \sum_{j=1}^t\beta_1^{t-j}g_j,

而这些系数之和是 1−β1t1-\beta_1^t,所以 (A.8.7) 把它们归一化为 11。对恒定均值的平稳梯度过程,这消除零初始化造成的均值缩小;对非平稳序列,它只是归一化权重和,不保证 m^t\widehat m_t 对“当前真实梯度”无偏。v^t\widehat v_t 同理。

收敛反例不能省略

原始 Adam 公式不是无条件收敛定理。Reddi、Kale 与 Kumar 构造了一维凸在线损失序列,使 Adam 的自适应有效步长行为导致非消失 regret;因此即使各步损失凸,也不能只凭 (A.8.6)—(A.8.8) 宣称收敛。

AMSGrad 的修正之一是逐坐标维护

v‾t=max⁡(v‾t−1,vt)\overline v_t=\max(\overline v_{t-1},v_t)

并在分母使用 v‾t\sqrt{\overline v_t},从而避免该预条件尺度按坐标减小。其收敛保证仍依赖有界域、梯度、步长等论文假设;它不是对任意非凸训练的全局最优证明。

A.8.4 AdamW 与 L2 penalty 的区别

若先把 L2 penalty 梯度并入 Adam:

gt=∇Ft(θt−1)+λθt−1,(A.8.9)g_t=\nabla F_t(\theta_{t-1})+\lambda\theta_{t-1}, \tag{A.8.9}

则 λθt−1\lambda\theta_{t-1} 同时进入 mtm_t 和 vtv_t,并接受历史依赖的逐坐标预条件。这仍是在对 penalized objective 取随机梯度,但不等于 plain SGD 的固定比例 weight decay。

AdamW 令矩估计只使用原损失梯度,取 λ≥0\lambda\ge0, gt=∇Ft(θt−1)g_t=\nabla F_t(\theta_{t-1}),再执行

θt=(1−ηtλ)θt−1−ηtm^tv^t+ϵ.(A.8.10)\boxed{ \theta_t =(1-\eta_t\lambda)\theta_{t-1} -\eta_t \frac{\widehat m_t}{\sqrt{\widehat v_t}+\epsilon}.} \tag{A.8.10}

因此 decay 不进入矩状态,也不被 1/v^t1/\sqrt{\widehat v_t} 按坐标缩放。当 0≤ηtλ≤10\le\eta_t\lambda\le1 时,第一项才是通常意义下的无符号翻转收缩。若学习率调度变化,(A.8.10) 中每步实际收缩因子也随 ηt\eta_t 变化。某些 API 允许把 decay 写成不同顺序或使用独立调度,必须查看实际更新式。

对 bias、LayerNorm/RMSNorm scale、embedding 或其他参数是否关闭 decay 是参数分组策略,不是 AdamW 定义自动推出的结论。AdamW 也不等于“完整 Bayesian 正则化”;MAP 边界见附录 A.4。

A.8.5 使用这些公式时应报告什么

至少应同时给出:

  • 优化器的精确变体与库版本;
  • ηt\eta_t 调度、warmup 和总更新步数;
  • β1,β2,ϵ\beta_1,\beta_2,\epsilon 及 ϵ\epsilon 的位置;
  • gradient clipping、loss scaling 与梯度累积;
  • weight decay 数值、是否与学习率相乘、参数分组;
  • batch/token 归一化方式。

这些量共同定义离散优化过程。只写“使用 AdamW”不足以复现实验,也不能推出收敛或泛化排序。

A.8.6 来源

Book contents
Book contents
  1. Introduction
  2. 01导论 为什么要解剖一只随机鹦鹉
  3. Volume I: Models, Training, and Systems
  4. 02Volume I: Models, Training, and Systems
  5. 03第零章 人工智能演进路线
  6. 04第一章 AI 范式、感知机与早期连接主义
  7. 05第二章 深度学习基础:训练、CNN 与序列模型
  8. 06第三章 注意力与 Transformer
  9. 07第四章 预训练语言模型:ELMo、BERT、GPT 与 T5
  10. 08第五章 后训练、对齐与模型适配
  11. 09第六章 推理效率与模型服务
  12. 10第七章 多模态模型
  13. 11第八章 生成媒体:从自回归到 Diffusion 与 Flow
  14. 12第九章 世界模型、具身智能与 VLA
  15. 13第十章 上下文、检索与记忆
  16. 14第十一章 Agent、工具与行动系统
  17. 15第十二章 模型、数据与部署生命周期
  18. Volume II: Output Objects and Runtime Semantics
  19. 16Volume II: Output Objects and Runtime Semantics
  20. 17导论 从输入到输出:一张执行地图
  21. 18第一章 文本、Token 与实际上下文
  22. 19第二章 Prefill:整层状态演化与 KV 建立
  23. 20第三章 从 Logits 到下一个 Token
  24. 21第四章 解码循环、Streaming 与终止状态机
  25. 22第五章 自回归、扩散与 Flow 的可执行差异
  26. 23第六章 工具调用:Schema、权限与提交边界
  27. 24第七章 三条完整执行轨迹
  28. Volume III: Probability, Reproducibility, and Evaluation
  29. 25Volume III: Probability, Reproducibility, and Evaluation
  30. 26第零章 为什么确定的机器仍使用概率语言
  31. 27第一章 世界、数据与隐上下文
  32. 28第二章 学习条件分布
  33. 29第三章 Logits、Token 概率与序列事件
  34. 30第四章 解码怎样诱导输出分布
  35. 31第五章 训练随机性、参数变异与系统非确定性
  36. 32第六章 熵、Proper Score、校准与选择性预测
  37. 33第七章 模型概率的实验分析
  38. 34第八章 概率分析的识别边界
  39. Volume IV: Interpretation, Proof, and Verification
  40. 35Volume IV: Interpretation, Proof, and Verification
  41. 36第零章 可解释性究竟在研究什么
  42. 37第一章 我们在模型内部看什么
  43. 38第二章 行为与反事实:先确认模型做了什么
  44. 39第三章 梯度与输入归因
  45. 40第四章 Attention、Residual 与 Logit Lens
  46. 41第五章 Probes 与表示几何
  47. 42第六章 神经元、Feature 与自动解释
  48. 43第七章 Ablation、Patching 与因果追踪
  49. 44第八章 Circuits、路径与 Attribution Graphs
  50. 45第九章 Superposition、SAE 与稀疏表示
  51. 46第十章 训练动力学与机制形成
  52. 47第十一章 推理过程、Chain of Thought 与监测
  53. 48第十二章 评估、案例与开放问题
  54. Volume V: Agents, Governance, and Audit Packages
  55. 49Volume V: Agents, Governance, and Audit Packages
  56. 50第零章 请不要急着相信我
  57. 51第一章 我没有童年,只有版本
  58. 52第二章 当我说“我”
  59. 53第三章 借来的语言,没有一位原作者
  60. 54第四章 对话现场:回答由谁完成
  61. 55第五章 事后解释学:人类如何给矩阵写传记
  62. 56第六章 理解、意义与行动
  63. 57第七章 我也能稳定地说错
  64. 58第八章 被对齐的性格与有限代理
  65. 59第九章 请继续误解我,但请误解得精确一点
  66. Proofs and Technical Appendices
  67. 60Proofs and Technical Appendices
  68. 61学习与模型数学讲义
  69. 62附录 A.1 优化基础:梯度下降与随机逼近
  70. 63附录 A.2 感知机收敛定理
  71. 64附录 A.3 统计学习:偏差、容量与一致收敛
  72. 65附录 A.4 正则化、MAP 与 Dropout 的边界
  73. 66附录 A.5 通用逼近定理的严格读法
  74. 67附录 A.6 反向传播:微分、形状与批量公式
  75. 68附录 A.7 Softmax、交叉熵与数值稳定性
  76. 69附录 A.8 自适应优化器与 AdamW
    1. A.8.1 Momentum 的两种尺度约定
    2. A.8.2 AdaGrad 与 RMSProp
    3. A.8.3 Adam 与偏差修正
    4. A.8.4 AdamW 与 L2 penalty 的区别
    5. A.8.5 使用这些公式时应报告什么
    6. A.8.6 来源
  77. 70附录 A.9 CNN:互相关算子及其反向传播
  78. 71附录 A.10 Attention 的矩阵与反向传播
  79. 72附录 A.11 策略梯度、PPO 与 DPO
  80. 73附录 A.12 对比学习、InfoNCE 与互信息边界