余弦退火(Cosine Annealing)是一种优化算法中的学习率调整策略,用简单的话来说,就是: 在训练模型时,一开始让学习率较大,让模型快速靠近最佳点;然后逐渐降低学习率,帮助模型在最佳点附近精细地调整位置,以达到更准确的结果。 **为什么叫"余弦退火"?** "退火"来源于金属加工领域,原本指的是逐渐降低温度,使材料性质变得更好。在机器学习中则表示逐渐降低学习率。而"余弦"是因为这种降低方式的曲线就像一个余弦波形,从高到低平滑地变化。 --- # 举个通俗的例子 你想象一下,把一个小球滚进山谷最低的位置(代表找到模型最优解): - **一开始(学习初期)**,你使劲推一把小球,让它快速靠近谷底。 - 当小球接近最低点时(学习中后期),如果你还用太大力气推它,小球会不断来回摆动,始终不能停下来稳定在谷底。 - 所以,这时候你慢慢降低推力(也就是学习率),使小球轻轻地滑动,最终停在谷底。 而"余弦退火"就是一种聪明的降低推力的方法:先快后慢,像余弦曲线一样平滑地降低,帮助小球(模型)稳定地找到最佳位置。 --- # 数学上大致的形式 学习率随训练轮数(epoch)的变化曲线大致长这样: $ \text{学习率} = \text{最小学习率} + \frac{1}{2} (\text{最大学习率} - \text{最小学习率}) \left(1 + \cos\left(\frac{\text{当前轮数}}{\text{总轮数}} \pi\right)\right) $ - 一开始学习率较高,后面逐渐降低; - 最终达到最小值。 --- # 优势 - 减少训练后期的震荡; - 提高模型训练稳定性; - 更容易获得更好的收敛效果。 这就是"余弦退火"的通俗解释。