TalentMe
How To
🗺️
AI Industry Map
NEW
Knowledge ▾
Intro & Usage
Machine Learning Repo
Data Science Repo
Resources ▾
Intro & Usage
AI Tech Vault (Tech Wiki)
Industry News
Tech Blogs
Research Papers
Open Source Projects
Tools Hub ▾
🛠️ Tools & Skills Overview
🌐 Interactive Web Tools
🗺️ AI Industry & Career Map
🧭 AI Career Transition Navigator & Roadmap
📚 AI Multi-Module Practice Hub
🎯 AI Skill Assessment
🧠 AI Skills Library
AI Skills & Prompts Overview
Local Agent Guide
Cloud Skills Templates
⚡ MCP Tools Suite
TalentMe MCP Guide
CLI Tools & Commands
Services ▾
🚀 Services & Plans Suite
🧭 1v1 Coaching & Services
💎 Plans & Pricing
💬 Contact & Consultation
Contact Us
💬 Discord
🌐
中
☀️
🔑
Login / Register
☰
技术知识库
›
复习路线图
›
深度学习 思维导图
›
Adam/AdamW
← 返回 深度学习 思维导图
中文
·
English
🧠 深度学习
ID:
adam-optimizer
Adam/AdamW
Adam & AdamW
🎯
核心定义
Adam(Adaptive Moment Estimation)对梯度维护一阶矩
m
t
m_t
m
t
与二阶矩(未中心化方差)
v
t
v_t
v
t
的指数移动平均,并做偏差修正:
m
t
=
β
1
m
t
−
1
+
(
1
−
β
1
)
g
t
m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t
m
t
=
β
1
m
t
−
1
+
(
1
−
β
1
)
g
t
,
v
t
=
β
2
v
t
−
1
+
(
1
−
β
2
)
g
t
2
v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2
v
t
=
β
2
v
t
−
1
+
(
1
−
β
2
)
g
t
2
;偏差修正
m
^
t
=
m
t
1
−
β
1
t
\hat{m}_t = \frac{m_t}{1-\beta_1^t}
m
^
t
=
1
−
β
1
t
m
t
,
v
^
t
=
v
t
1
−
β
2
t
\hat{v}_t = \frac{v_t}{1-\beta_2^t}
v
^
t
=
1
−
β
2
t
v
t
(由几何级数可证
E
[
m
t
]
=
(
1
−
β
1
t
)
E
[
g
]
\mathbb{E}[m_t] = (1-\beta_1^t)\mathbb{E}[g]
E
[
m
t
]
=
(
1
−
β
1
t
)
E
[
g
]
,t 小时矩被系统性低估,除以
1
−
β
1
t
1-\beta_1^t
1
−
β
1
t
修正);参数更新
θ
t
+
1
=
θ
t
−
η
m
^
t
v
^
t
+
ϵ
\theta_{t+1} = \theta_t - \eta\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
、
ϵ
=
10
−
8
\epsilon = 10^{-8}
ϵ
=
1
0
−
8
、基准学习率
η
=
10
−
3
\eta = 10^{-3}
η
=
1
0
−
3
。比值
m
^
t
/
v
^
t
\hat{m}_t/\sqrt{\hat{v}_t}
m
^
t
/
v
^
t
量级约 1,相当于按梯度 RMS 逐参数归一化: 大梯度方向自动缩小步长、小梯度方向自动放大步长,对稀疏梯度与病态条件数(
κ
\kappa
κ
大)鲁棒。
ϵ
\epsilon
ϵ
必须放分母: 一是数值稳定、防止
v
^
t
≈
0
\hat{v}_t \approx 0
v
^
t
≈
0
时除以零(训练早期),二是给步长设上界
η
/
ϵ
\eta/\sqrt{\epsilon}
η
/
ϵ
。AdamW 把权重衰减从 L2 中解耦:
θ
t
+
1
=
θ
t
−
η
(
λ
θ
t
+
m
^
t
v
^
t
+
ϵ
)
\theta_{t+1} = \theta_t - \eta\left(\lambda\theta_t + \frac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}\right)
θ
t
+
1
=
θ
t
−
η
(
λ
θ
t
+
v
^
t
+
ϵ
m
^
t
)
,每参数每步衰减率恒为
1
−
η
λ
1 - \eta\lambda
1
−
η
λ
。
💡
使用场景
Transformer/BERT/GPT 等大模型训练的默认优化器,大批量、稀疏特征、多模态场景首选;面试必考“默写 Adam 四个公式”“为什么需要偏差修正”“β 默认值”“AdamW vs Adam+L2”。
⚡
解决的核心痛点
SGD+动量对所有参数共享一个学习率,病态曲率或稀疏梯度下步长难以兼顾;Adam 逐参数自适应缩放,且偏差修正保证早期迭代不被低估的矩拖慢。AdamW 修正 Adam+L2 的缺陷: L2 项
λ
w
t
\lambda w_t
λ
w
t
进入
g
t
g_t
g
t
后被
v
^
t
\sqrt{\hat{v}_t}
v
^
t
缩放,有效衰减
η
λ
w
t
/
v
^
t
\eta\lambda w_t/\sqrt{\hat{v}_t}
η
λ
w
t
/
v
^
t
随历史梯度幅度变化——大梯度方向被正则得太多、小梯度方向被正则得太少;解耦后每个参数获得恒定的衰减率,训练更稳、泛化更好。
🎯
5 个高频面试考点 (Exam Points)
1
默写 Adam 四个公式(矩估计、偏差修正、参数更新),并指出默认
β
1
=
0.9
\beta_1 = 0.9
β
1
=
0.9
、
β
2
=
0.999
\beta_2 = 0.999
β
2
=
0.999
、
ϵ
=
10
−
8
\epsilon = 10^{-8}
ϵ
=
1
0
−
8
、
η
=
10
−
3
\eta = 10^{-3}
η
=
1
0
−
3
。
2
为什么需要偏差修正?用等比数列求和证明
E
[
m
t
]
=
(
1
−
β
1
t
)
E
[
g
]
\mathbb{E}[m_t] = (1-\beta_1^t)\mathbb{E}[g]
E
[
m
t
]
=
(
1
−
β
1
t
)
E
[
g
]
,说明
t
=
1
t=1
t
=
1
时偏差最严重(
1
−
β
1
=
0.1
1-\beta_1 = 0.1
1
−
β
1
=
0.1
),为什么除以
1
−
β
1
t
1-\beta_1^t
1
−
β
1
t
后
E
[
m
^
t
]
=
E
[
g
]
\mathbb{E}[\hat{m}_t] = \mathbb{E}[g]
E
[
m
^
t
]
=
E
[
g
]
。
3
为什么更新用
m
^
t
/
v
^
t
\hat{m}_t/\sqrt{\hat{v}_t}
m
^
t
/
v
^
t
?与 RMSProp/AdaGrad 的关系;为什么
ϵ
\epsilon
ϵ
必须放在分母(数值稳定 + 步长上界
η
/
ϵ
\eta/\sqrt{\epsilon}
η
/
ϵ
)。
4
Adam vs SGD+动量: 各自的适用场景与泛化差异(为什么 CV 上 SGD 常更好、而大模型标配 Adam);Adam 早期收敛快但后期可能不稳的原因。
5
写出 AdamW 更新式并对比 Adam+L2: L2 项被
v
^
t
\sqrt{\hat{v}_t}
v
^
t
缩放如何扭曲有效正则强度?解耦 weight decay 后每步衰减率为何恒为
1
−
η
λ
1 - \eta\lambda
1
−
η
λ
?
📖 关联深度指南:
📄 optimizer-and-initialization →
更新于 2026-08-12
🎯
检验攻克程度:针对「Adam/AdamW」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题 ➔
← 上一个知识点
SGD 与动量
下一个知识点 →
学习率调度
🔗 更多 深度学习 知识点卡片
激活函数演进
Autograd 动态图
BatchNorm 批归一化
经典 CNN 演进