题目
请说明梯度下降的基本原理,并对比 SGD、Momentum、RMSProp、Adam 等常见优化器。
参考答案
梯度下降:沿损失函数梯度的反方向更新参数,逐步逼近最小值:
按批次分:BGD(全量)、SGD(单样本)、Mini-batch(小批量,最常用)。
优化器对比:
| 优化器 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| SGD | 纯梯度更新 | 简单、收敛解泛化好 | 收敛慢、易震荡、卡鞍点 |
| Momentum | 累积历史梯度方向(动量) | 加速收敛、抑制震荡 | 需调动量系数 |
| NAG | 先按动量”前瞻”再算梯度 | 比 Momentum 更准 | 实现略复杂 |
| AdaGrad | 按参数自适应学习率(累积平方梯度) | 稀疏特征友好 | 学习率单调衰减,后期过小 |
| RMSProp | 指数移动平均平方梯度 | 解决 AdaGrad 衰减过快 | 仍需手调全局学习率 |
| Adam | Momentum + RMSProp(一阶矩+二阶矩) | 收敛快、自适应、默认首选 | 泛化有时不如 SGD,内存略大 |
| AdamW | Adam + 解耦权重衰减 | 大模型训练标配(权重衰减与梯度更新解耦) | — |
关键概念:
- 学习率:最重要的超参。过大震荡发散,过慢停滞。常用 warmup + cosine decay 调度。
- 鞍点/局部最优:高维空间局部最优少,鞍点才是主要障碍,带动量的优化器能逃逸。
- 权重衰减:L2 正则的优化器实现,防止过拟合。
实践建议:
- 深度学习/大模型训练默认 AdamW + warmup + cosine 调度。
- 计算机视觉某些任务用 SGD + Momentum 泛化更佳。
- 大批量训练常配合 LARS/LAMB 等层自适应优化器。
出处:深度学习算法工程师面试题及实战案例(道客巴巴《2026 机器学习算法工程师深度学习面试题及实战案例含答案》)。
内容来源
整理自深度学习算法工程师面试题及实战案例
本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。