拿下技术面上传简历

你在训练一个两层 MLP,mini-batch 大小 64,用纯 SGD,初始学习率 0.1。训练初期 loss 抖动很大,相邻两次迭代的梯度方向经常左右翻转。换成 SGD + Momentum(momentum=0.9) 后,前期 loss 下降变快,但后期在极小值附近持续来回震荡,验证集也没有变好。请问:Momentum 为什么能抑制这种左右翻转并加速?momentum=0.9 时,如果梯度方向长期一致,有效学习率大约是原来的多少倍?后期这种震荡你会先调 momentum 还是先调学习率,为什么?

机器学习基础优化算法校招知识点 1 个

面试官在考什么

判断是否真理解动量是对历史梯度的指数滑动平均,以及它如何放大有效步长、与学习率调参耦合。

SGD/Momentum

回答框架 · 前两步

  1. 纯 SGD:θ_{t+1}=θ_t-η g_t;Momentum 通常维护速度 v_t=μ v_{t-1}+g_t,参数更新 θ_{t+1}=θ_t-η v_t(等价写法符号可差)。
  2. 动量对历史梯度做指数滑动平均,μ=0.9 时等效平均窗口约 1/(1-μ)=10 步;相邻梯度方向相反时,历史速度会抵消部分反向分量,所以抖动减小。

还有 2 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「机器学习基础」方向页

同一能力域的其他题