MLE · Phone ML Fundamentals

Pinterest 学习率太大或太小:Loss 波动怎么定位

MLE 题目直接问学习率大小与 fluctuation 的关系;结合优化步长、mini-batch 噪声、发散证据和诊断实验回答。

题目重点:MLE 题目直接问学习率大小与 fluctuation 的关系;结合优化步长、mini-batch 噪声、发散证据和诊断实验回答。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 先讨论固定学习率 SGD 更新 θ←θ−ηg 的局部行为;mini-batch 梯度 g 含噪声,曲率与参数尺度可不同。
  • 所谓 fluctuation 指相邻 step 的训练 loss 或参数值来回摆动,不等同验证集指标的随机噪声;题目未定义观测量,现场要先问。

解题路线

  1. 一维二次损失 L(θ)=aθ²/2 的精确梯度更新为 θnext=(1−ηa)θ。0<ηa<1 单调接近零,1<ηa<2 符号交替但仍收敛,ηa≥2 不收敛或发散。
  2. 因此学习率过大更容易跨过谷底形成振荡;过小时通常下降慢、看似停滞。mini-batch 噪声可能让任意学习率的逐步 loss 都波动,所以不能只看一次曲线下结论。
  3. 同时画训练 loss 的逐步值与滑动平均、验证 loss、梯度范数和更新/权重比;固定 seed 与 batch size,扫描对数尺度学习率。
  4. 若 loss 先下降后剧烈震荡,先降 η 或加 warmup;若仅不同 batch 间噪声大,可增大 batch 或做梯度累积,但要检查泛化和吞吐。

手动走一遍

令 a=1、θ0=1。η=0.1 时 θ1=0.9、θ2=0.81,缓慢单调;η=1.5 时 θ1=−0.5、θ2=0.25,参数越过最优点但幅度递减;η=2.1 时 θ1=−1.1、θ2=1.21,幅度增大。真实网络还需检查不同方向的曲率。

规模与取舍

诊断扫描 K 个学习率、每个跑 T 步,训练计算量约为 K×T 次梯度更新;记录曲线 O(KT) 数据,也可在线汇总到 O(K) 指标。具体收敛条件随模型曲率、优化器和调度器变化。

易错点与追问

容易失分的边界

  • 把所有 loss 波动都归咎于学习率,忽略 batch 噪声、数据漂移和随机增强。
  • 认为学习率越小波动越大而没有区分‘训练慢’与‘振荡’。
  • 只看训练集曲线,不验证是否真正改善泛化。
  • 拿二次函数阈值当深网普适数值。

继续深挖

  • Adam 的自适应步长是否保证不会震荡?
  • 梯度累积为何能降低随机噪声却不能修正错误标签?
  • warmup 与 cosine decay 分别解决什么阶段的问题?
✓已复制微信号!