请列举并简要说明深度学习中常用的优化算法有哪些?
考察说明
考查对深度学习优化算法体系的理解与对比能力
回答思路
- 【回答框架 1】深度学习优化算法主要分为一阶和二阶方法。SGD是最基础的随机梯度下降,按小批量计算梯度更新参数,简单但收敛慢且易陷入局部最优或震荡。
- 【回答框架 2】动量法在SGD基础上引入历史梯度累积,加速沿一致方向更新并抑制震荡;Nesterov加速梯度则先按动量预估下一步位置再计算梯度,收敛更快更稳。
- 【回答框架 3】AdaGrad按参数历史梯度平方和自适应调整学习率,适合稀疏数据,但累积平方和单调增大导致学习率过早衰减。RMSProp用滑动平均替代累加,缓解学习率衰减,适合非平稳目标。
- 【回答框架 4】Adam结合动量与RMSProp,维护一阶矩和二阶矩估计并做偏差校正,是当前默认选择;后续有AdamW解耦权重衰减,AdaBelief等改进版本,分别改善泛化与收敛速度。
- 【关键点 1】SGD是基础,动量法加速收敛,Adam是通用默认算法
- 【关键点 2】AdaGrad适合稀疏梯度,RMSProp缓解学习率衰减
- 【关键点 3】AdamW通过解耦权重衰减改善泛化,Nadam融合Nesterov动量
- 【易错点 1】不能认为Adam总是优于SGD,在部分任务上SGD+momentum最终泛化更好
- 【易错点 2】学习率选择比算法本身更影响收敛效果,Adam也需要调参
- 【易错点 3】二阶方法如牛顿法需计算Hessian矩阵,深度学习场景中计算代价过高,不常用