一句话定义:学习率热重启(Cosine Restarts,也常写作 Cosine Annealing with Warm Restarts)是一种学习率调度策略——训练中不让学习率一路降到底,而是每隔一个周期把它拉回较高值,再沿余弦曲线平滑降到很低,如此循环。
原理,打个比方:训练模型像在浓雾里下山找最低点,学习率就是每步迈多大。步长一路缩小,走到后期几乎挪不动,这时哪怕旁边不远就有更深的谷,也跨不过去——模型就卡在某个局部平坦区或尖锐的极小值附近。热重启相当于每隔一段路把你送回半山腰重新出发:步长重新变大,有力气跳出小坑;随后步长再慢慢收小,在新区域做精细搜索。整个学习率曲线像一串逐渐下行的波浪,而不是一条单调下滑的直线。
代价在“重启”那一刻:学习率突然放大,等于往已经调好的参数上踢一脚。如果模型此时已经学得不错,验证指标往往先明显掉一段再爬回来;幅度太大、或重启落在训练快结束时,可能直到训练结束都没爬回来,之前学到的能力就被破坏了。所以重启周期要和总步数匹配,别让最后一次大重启压在收尾阶段。
与相邻概念的区别:
| 策略 | 学习率怎么走 | 主要目的 |
|---|---|---|
| 阶梯衰减(Step Decay) | 到预设节点直接砍一半 | 稳定收敛 |
| 余弦退火(不重启) | 平滑降到接近 0 | 末期精细收敛 |
| 预热(Warmup) | 从很小升到正常值 | 训练初期防止发散 |
| 余弦热重启 | 降到低点后周期性拉回高点 | 反复跳出局部区域、持续探索 |
注意 Warmup 和 Warm Restart 中文都带“热”,方向却相反:一个是开头升温,一个是中途“重新升温”。另外,周期性学习率(Cyclical Learning Rate)是更大的家族,余弦热重启是其中形状取余弦的一种。
对从业者的意义:它适合训练预算充足、需要多次探索的场景,也常被用来在同一轮训练中保存多个阶段的模型做集成。反过来,微调一个已经很强的模型、训练已接近尾声、或算力只够跑一轮时,就该慎用或把重启幅度调得很小。实操建议:先小幅试,观察每次重启后验证指标要多久恢复;恢复得慢,说明幅度或时机不对。
对普通人的类比:像团队做项目时定期“发散—收敛”,隔一段时间放开思路重新探索,再收紧落地;但别在交付前一周搞大改。
