← 返回 深度学习 思维导图
中文·English
🧠 深度学习ID: sgd-momentum

SGD 与动量

SGD & Momentum
🎯核心定义
朴素 SGD 每步沿当前点梯度反方向更新 θt+1=θt−ηgt\theta_{t+1} = \theta_t - \eta g_t(其中 gt=∇θL(θt)g_t = \nabla_\theta L(\theta_t)),只看瞬时梯度,在病态曲率(条件数 κ=λmax⁡/λmin⁡\kappa = \lambda_{\max}/\lambda_{\min} 很大的椭圆等高线)上梯度方向频繁翻转,形成锯齿震荡。动量(Momentum)引入速度项对历史梯度做指数加权平均: vt=γvt−1+ηgtv_t = \gamma v_{t-1} + \eta g_t,θt+1=θt−vt\theta_{t+1} = \theta_t - v_t。把递推展开成几何级数 vt=η∑k=0tγkgt−kv_t = \eta\sum_{k=0}^{t}\gamma^k g_{t-k}: 越早的梯度权重 γk\gamma^k 越小(默认 γ=0.9\gamma = 0.9,10 步前的贡献已衰减到 0.910≈0.350.9^{10} \approx 0.35),方向一致的历史梯度叠加放大、高频来回翻转的梯度相互抵消——所以在谷底方向加速、在震荡方向减速。NAG(Nesterov 加速梯度)先沿速度“外推一步”再算梯度: vt=γvt−1+η∇θL(θt−γvt−1)v_t = \gamma v_{t-1} + \eta\nabla_\theta L(\theta_t - \gamma v_{t-1}),θt+1=θt−vt\theta_{t+1} = \theta_t - v_t,对曲率变化更敏感,凸问题上收敛速率从 SGD 的 O(1/t)O(1/t) 提升到 O(1/t2)O(1/t^2)。
💡使用场景
大规模数据并行训练(ImageNet/CIFAR 分类等)的经典基线优化器,CV 领域常仍优于 Adam;面试高频追问“为什么动量能抑制震荡”“NAG 与普通动量的区别”“动量如何与学习率衰减配合”。
⚡解决的核心痛点
① 震荡——速度滞后于梯度,自动平均掉高频符号翻转,病态曲率下收敛明显变快;② 平坦区域/局部极小——惯性使其能穿过梯度接近零的平台与小沟壑,但动量过大会越过极小点后回弹震荡,需配合余弦退火等学习率调度;③ 收敛速率——动量/NAG 把凸问题下 SGD 的 O(1/t)O(1/t) 提升到 NAG 的 O(1/t2)O(1/t^2)(一阶方法的最优常数),代价只是多维护一个速度变量、每步额外开销可忽略。
🎯核心面试考点体系 (Exam Points)
基础原理 · 工业场景 · 深入排雷
基础·定义
请阐明【SGD 与动量】的本质定义、底层数学/架构运作机制与关键原理。
基础·场景
在实际工业生产体系中,【SGD 与动量】适用于哪些典型场景?解决了什么核心工程痛点?
🔥 高频进阶实战考点 (Top 5 Deep-Dive Questions)
1
写出动量更新公式 vt=γvt−1+ηgtv_t = \gamma v_{t-1} + \eta g_t、θt+1=θt−vt\theta_{t+1} = \theta_t - v_t,展开 vt=η∑k=0tγkgt−kv_t = \eta\sum_{k=0}^{t}\gamma^k g_{t-k},说明历史梯度的权重如何按 γk\gamma^k 衰减。
2
为什么动量能抑制震荡、加速收敛?从几何加权和的角度解释: 方向一致的梯度累加、高频翻转的梯度抵消,在条件数 κ\kappa 大的椭圆等高线上为什么收敛更快。
3
写出 NAG 更新 vt=γvt−1+η∇θL(θt−γvt−1)v_t = \gamma v_{t-1} + \eta\nabla_\theta L(\theta_t - \gamma v_{t-1}),解释“先外推一步再算梯度”与普通动量的区别,以及凸问题上 O(1/t)→O(1/t2)O(1/t) \to O(1/t^2) 的收敛速率提升。
4
默认 γ=0.9\gamma = 0.9 意味着什么?γ\gamma 太大/太小分别导致什么问题(过冲回弹 vs 无记忆)?动量对梯度常数的有效步长为什么是 η/(1−γ)\eta/(1-\gamma)(≈10 倍放大)?
5
动量与学习率调度如何配合?为什么加动量后通常要配学习率衰减(有效步长被放大、末期易震荡)?与 Adam 相比动量只有单一学习率的局限是什么?
更新于 2026-08-12
🎯
检验攻克程度:针对「SGD 与动量」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题 ➔
← 上一个知识点SSM 与 Mamba下一个知识点 →Adam/AdamW

🔗 更多 深度学习 知识点卡片

激活函数演进Autograd 动态图BatchNorm 批归一化经典 CNN 演进