核心要点

简要回答

梯度下降每次按损失对参数的梯度反方向走一小步;SGD 用随机 mini-batch 估梯度,噪声大但快;Adam 为每个参数维护自适应学习率,适合深度学习默认优化器。

标准回答

一、先把结论讲清楚

批量梯度下降(BGD) 用全量数据算梯度,稳定但慢。随机梯度下降(SGD) 每次用一个或一小批样本,更新快、能逃离浅局部最优,但震荡大。

二、拆开机制和判断点

Adam 结合动量与 RMSprop,为每个参数维护一阶、二阶矩估计,自适应学习率,实践中收敛快、调参友好。学习率过大不收敛,过小训练慢;

三、补上例子、边界和取舍

常用学习率调度(warmup、cosine decay)进一步稳定训练。

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:只背概念不会举例;混淆相似术语;忽略工程落地约束(成本、延迟、数据质量)。

追问

追问 1为什么深度学习很少用 BGD?

全量 BGD 每步需遍历整个训练集,大模型/大数据上每轮更新成本极高;且全量梯度平滑,难以逃离浅鞍点、不利于泛化。实践用 mini-batch SGD 在噪声梯度下反而有助跳出局部最优,配合学习率调度与 AdamW 等优化器效率更高。

追问 2Adam 在什么场景不如 SGD?

部分 CV 任务(ResNet、检测)在充分调参后 SGD+Momentum 泛化略优;极小 batch 或需精确复现论文 baseline 时 SGD 更可控。Adam 自适应学习率有时在训练末期震荡,可切换 SGD fine-tune。

追问 3梯度消失/爆炸如何影响优化?

消失时深层几乎学不到信号,RNN/深 MLP 难训练;爆炸时权重 NaN、训练崩溃。对策:ReLU/GELU、残差连接LayerNorm、梯度裁剪、合适初始化(Xavier/He)与归一化层。

🔗 相似问题

同一考点的不同问法,换着练更稳

延伸学习

按主题分类的相关资源,便于系统复习