技术博客

cosine 与 linear decay 的实证对比:末端学习率该不该退到零

第 132 / 147 篇 · 2025-08-12 · ai · 优化器学习率训练理论

学习率调度的形状问题,本质上是在分配一份有限的"探索预算":总步数 $T$ 固定,每步的学习率 $\eta_t$ 定多少,等价于决定什么时候大步试错、什么时候小步收编。两个最常见的答案——cosine 和 linear——形状差异不大(都从高到低),但中后期的分配差出很多,而决定最终 loss 的恰是这段。

两种形状的解剖

Cosine(Loshchilov & Hutter, 2017):

$$ \eta_t = \eta_{\min} + \frac{1}{2}(\eta_{\max}-\eta_{\min})\left(1+\cos\frac{\pi t}{T}\right). $$

求导得衰减速度 $\dot\eta \propto \sin(\pi t/T)$:开头和结尾衰减最慢,中期衰减最快。时间分配上,cosine 把约一半的训练时间花在 $\eta > 0.4\eta_{\max}$ 的中高学习率区,末端急剧向 $\eta_{\min}\approx 0$ 收拢。

Linear decay:$\eta_t = \eta_{\max}(1 - t/T)$(或退到一个非零下限),全程匀速。对比下来,linear 中后期比 cosine 更"抠门"——同一个时刻,linear 的 $\eta$ 在 $t/T>0.5$ 后始终低于 cosine。

理论视角:末端低学习率 = 隐式平均

为什么大家默认末期要退到零?随机优化的经典图景(Polyak–Ruppert averaging;SGD 作为扩散过程的视角)给出答案。把 SGD 写成连续化 SDE:$d\theta = -\nabla f\,dt + \sqrt{\eta_t\,\Sigma}\,dW$,噪声幅度和学习率的平方根成正比。训练末期参数已在极小值盆地内徘徊,此时过大的 $\eta$ 只留下噪声、几乎不换来下降——因为盆地内梯度本身小,一步位移的主要成分是扩散项。把 $\eta$ 在末期压小,等效于让末端轨迹近似一条慢速确定性流,最终参数接近这段轨迹的时间平均

$$ \bar\theta = \frac{1}{T_2-T_1}\int_{T_1}^{T_2} \theta_t\,dt, $$

而平均操作把徘徊噪声方差按 $1/(T_2-T_1)$ 消掉。这就是"cosine 末端归零"的理论账:不是末期小步本身探索出了什么,而是低学习率让终点参数自动完成了 Polyak 平均,白得一个集成效应。linear 退到零同样吃到这份收益,差别只在它能匀出多少步给中段探索。

实证反转:linear 更好,而且不必到零

MiniCPM(2024)的技术报告抛出一个反共识结论:同样总预算下,linear decay 到零稳定优于 cosine,差值在小模型上可达 0.1+ nats。他们的归因和上面的理论自洽:cosine 为了末期归零,在中期囤了太多时间在高学习率区,而多数收益其实来自"足够低的学习率走过的总步数"——linear 把退坡摊匀,末期低 lr 区更长,隐式平均吃得更足。同篇报告还测了退坡终点:退到 $0.1\eta_{\max}$ 而非 0,与退到 0 几乎无差。末端零学习率的必要性被打破,剩下的只是"末端要足够低"。

cosine vs linear vs WSD:同一份 η 预算的三种时间分配(示意) 训练进度 t/T η cosine:中期退得快,末期急退 linear:匀速退坡 WSD:平台期 + 末段快退 关键变量:低 η 区覆盖的总步数——它决定隐式 Polyak 平均能吃掉多少徘徊噪声

WSD:把"探索"和"收编"解耦

梯形调度(Warmup–Stable–Decay,也称 WSD 或 trapezoidal)在 empirical 上吸收了上述全部结论:warmup 后保持一个高学习率平台(stable 段,约占总步数 60%–80%),最后 20%–40% 快退到近零。它的结构性优势是可复用性:stable 段任意位置都是"有效 checkpoint",可以一次训练产出多个不同预算的模型——在 decay 前停下即得"高 lr 版"(适合继续训或下游微调),跑完 decay 即得"低 lr 收敛版"。对比 cosine 把退坡焊死在整条曲线上,预算一变就得从头训。LLaMA 3、诸多开源模型的训练配方都转向 WSD 或 its 变体,理由正是工程灵活性,而非它 loss 更低(衰减段形状足够平缓时,WSD 与 linear 终 loss 基本持平)。

实操结论

第一,衰减形状的选择没有神圣性:在"末期足够低 + 低 lr 区足够长"的约束下,cosine、linear、WSD 终 loss 的差距通常在噪声量级,调参精力不该花在这里。第二,真正影响收益的是低学习率区的总步数占比——想榨干预算,把衰减段拉长(20%–40%)比纠结曲线形状有效。第三,续训/多阶段场景优先 WSD:stable 平台的 checkpoint 保留了继续探索的自由度,cosine 的半成品 checkpoint 则既没收敛也没平台,两头不靠。第四,微调场景衰减到零通常无必要,退到峰值的 10% 左右即可停,省下的步数多走几遍数据更划算。