🏀常用

余弦退火

余弦退火(Cosine Annealing) 是一种学习率调度策略,核心思想是让学习率随训练轮次以余弦函数的形式周期性衰减,结合“重启(Restart)”机制跳出局部最优,广泛应用于深度学习和强化学习(如DQN、PPO等算法的学习率调整)。

它解决了传统固定学习率或线性衰减学习率的缺陷:固定学习率易在训练后期震荡不收敛,线性衰减学习率则可能过早进入局部最优。


一、核心原理

1. 余弦学习率衰减公式

余弦退火的学习率更新规则基于余弦函数的半周期,公式为: $\( \eta_t = \eta_{\text{min}} + \frac{1}{2} (\eta_{\text{max}} - \eta_{\text{min}}) \left( 1 + \cos\left( \frac{T_{\text{cur}}}{T_{\text{max}}} \pi \right) \right) \)$ 其中:

  • \( \eta_t \):第 \( t \) 轮的学习率;

  • \( \eta_{\text{max}} \):学习率的最大值(初始学习率);

  • \( \eta_{\text{min}} \):学习率的最小值(通常为 \( 0 \) 或一个很小的正数,如 \( 1e-6 \));

  • \( T_{\text{cur}} \):当前周期内的训练轮次(从 \( 0 \)\( T_{\text{max}} \));

  • \( T_{\text{max}} \):单个周期的总训练轮次(即学习率从 \( \eta_{\text{max}} \) 衰减到 \( \eta_{\text{min}} \) 所需的轮次)。

2. 公式直观理解

  • \( T_{\text{cur}} = 0 \) 时,\( \cos(0) = 1 \)\( \eta_t = \eta_{\text{max}} \)(学习率最大);

  • \( T_{\text{cur}} = T_{\text{max}} \) 时,\( \cos(\pi) = -1 \)\( \eta_t = \eta_{\text{min}} \)(学习率最小);

  • 学习率的衰减曲线是余弦函数的上半部分,从最大值平滑下降到最小值,而非线性衰减的直线。

3. 重启机制(Cosine Annealing with Restarts)

标准余弦退火的学习率衰减到最小值后会保持不变,而带重启的余弦退火(也叫SGDR,Stochastic Gradient Descent with Warm Restarts)会在学习率达到最小值时,将学习率重置为 \( \eta_{\text{max}} \),并开始新的周期

重启机制的作用:

  • 学习率的突然重置相当于给模型“加热”,使其有机会跳出训练后期陷入的局部最优解;

  • 后续周期的 \( T_{\text{max}} \) 可以设置为逐渐增大(如每次重启后乘以一个系数 \( T_{\text{mult}} > 1 \)),让模型在后期的训练中更稳定。


二、余弦退火的优势

  1. 平滑衰减:余弦函数的平滑性避免了学习率突变对模型训练的冲击,训练过程更稳定。

  2. 跳出局部最优:带重启的机制通过学习率的周期性重置,让模型在训练后期仍有能力探索更优的参数空间。

  3. 自适应调整:相比线性衰减,余弦退火在训练前期学习率下降较慢(保证快速收敛),后期下降较快(精细调整参数),更符合模型训练的规律。


三、与其他学习率调度策略的对比

策略类型

核心特点

优势

缺陷

固定学习率

学习率始终不变

实现简单

后期易震荡,难以收敛

线性衰减

学习率随轮次线性下降

训练后期更稳定

衰减过快,易陷入局部最优

余弦退火

学习率余弦平滑衰减,可重启

训练稳定,能跳出局部最优

需调参 \( T_{\text{max}} \) 和重启策略


四、在强化学习中的应用

余弦退火在强化学习中主要用于调整策略网络/价值网络的学习率,例如:

  1. DQN及其变种:调整Q网络的学习率,避免训练后期Q值更新震荡,提高收敛速度。

  2. PPO(近端策略优化):调整策略网络和价值网络的学习率,通过重启机制让策略在后期仍有机会探索更优的动作选择。

  3. Q-Learning的学习率 \( \alpha \):传统Q-Learning的学习率 \( \alpha \) 通常固定或线性衰减,使用余弦退火可以让 \( \alpha \) 平滑衰减,提高Q表的收敛稳定性。

示例:强化学习中的余弦退火学习率调度

假设训练总轮次为 \( 1000 \),单个周期 \( T_{\text{max}} = 200 \)\( \eta_{\text{max}} = 0.001 \)\( \eta_{\text{min}} = 1e-6 \),重启系数 \( T_{\text{mult}} = 2 \)

  • 第1个周期(轮次0-199):学习率从0.001余弦衰减到1e-6;

  • 第2个周期(轮次200-599):\( T_{\text{max}} = 400 \),学习率重置为0.001,再衰减到1e-6;

  • 后续周期以此类推,直到训练结束。

核心总结

余弦退火是一种高效的学习率调度策略,通过余弦函数的平滑衰减保证训练稳定性,结合重启机制帮助模型跳出局部最优。它在深度学习和强化学习中均有广泛应用,是提升模型训练效果的重要技巧之一。