可视化资源

学习率调度(预热 + 余弦退火)

学习率不是设一个常数就完事——它随训练步数变化的“形状”往往很关键。对某些模型,开头直接用较大的学习率可能让训练不稳定;一种常见做法是先预热(warmup),用一小段时间把步长从很小慢慢拉到峰值,再让学习率沿余弦曲线退火。上面是学习率随步数的曲线,下面是它带来的损失(示意)。切换调度方式,调峰值和预热步数,看上下两条线怎么联动。

上图 蓝线是学习率随步数的调度曲线(淡蓝带是预热区间);下图 红线是对应的损失(示意)。金点是当前步。

常数 余弦退火 预热+余弦
最终损失 —
预热(warmup)

开头小步慢走,把学习率从接近 0 渐渐拉到峰值,等模型稳住再加速,避免一上来步子太大、直接发散冲飞。

余弦退火

后期沿余弦曲线把学习率逐渐减小到 0,相当于落地时收油门,稳稳落进损失谷底、收得更低。

常见组合

预热加余弦或线性退火在许多视觉模型和语言模型训练中都很常见,但具体方案仍要结合模型、数据和优化器选择。