简要回答
梯度下降每次按损失对参数的梯度反方向走一小步;SGD 用随机 mini-batch 估梯度,噪声大但快;Adam 为每个参数维护自适应学习率,适合深度学习默认优化器。
标准回答
一、先把结论讲清楚
批量梯度下降(BGD) 用全量数据算梯度,稳定但慢。随机梯度下降(SGD) 每次用一个或一小批样本,更新快、能逃离浅局部最优,但震荡大。
二、拆开机制和判断点
Adam 结合动量与 RMSprop,为每个参数维护一阶、二阶矩估计,自适应学习率,实践中收敛快、调参友好。学习率过大不收敛,过小训练慢;
三、补上例子、边界和取舍
常用学习率调度(warmup、cosine decay)进一步稳定训练。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只背概念不会举例;混淆相似术语;忽略工程落地约束(成本、延迟、数据质量)。
追问
追问 1:为什么深度学习很少用 BGD?
全量 BGD 每步需遍历整个训练集,大模型/大数据上每轮更新成本极高;且全量梯度平滑,难以逃离浅鞍点、不利于泛化。实践用 mini-batch SGD 在噪声梯度下反而有助跳出局部最优,配合学习率调度与 AdamW 等优化器效率更高。
追问 2:Adam 在什么场景不如 SGD?
部分 CV 任务(ResNet、检测)在充分调参后 SGD+Momentum 泛化略优;极小 batch 或需精确复现论文 baseline 时 SGD 更可控。Adam 自适应学习率有时在训练末期震荡,可切换 SGD fine-tune。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
