深度学习中优化器的SGD with Warm Restarts(带热重启的随机梯度下降)原理与实现细节
字数 1358 2025-11-02 00:38:44
深度学习中优化器的SGD with Warm Restarts(带热重启的随机梯度下降)原理与实现细节
题目描述
SGD with Warm Restarts是一种改进的随机梯度下降优化算法,由Loshchilov和Hutter在2016年提出。它通过周期性重置学习率(在预定义的周期结束时将学习率恢复到初始值)来模拟"热重启"(Warm Restart),帮助模型跳出局部最优解并加速收敛。该算法特别适用于训练深度神经网络,尤其在图像分类和自然语言处理任务中表现出色。
核心问题
传统学习率调度器(如阶梯式下降)可能使模型陷入局部最优,而SGD with Warm Restarts通过周期性重启学习率,增加模型探索能力,同时利用重启后的高学习率快速收敛。
解题过程
-
基础原理
- 标准SGD的更新公式为:
\(\theta_{t+1} = \theta_t - \eta \nabla J(\theta_t)\)
其中 \(\eta\) 为固定学习率。 - SGD with Warm Restarts 的关键改进是让学习率 \(\eta\) 按周期函数变化:在每个周期内,学习率从较高值逐渐衰减,周期结束时重置为初始值。
- 标准SGD的更新公式为:
-
学习率调度规则
- 学习率变化遵循余弦退火(Cosine Annealing)公式:
\(\eta_t = \eta_{\min} + \frac{1}{2} (\eta_{\max} - \eta_{\min}) \left( 1 + \cos\left( \frac{T_{\text{cur}}}{T_i} \pi \right) \right)\)
其中:- \(\eta_{\max}\) 和 \(\eta_{\min}\) 是学习率上下界;
- \(T_i\) 是第 \(i\) 个周期的长度(通常随周期增加而延长);
- \(T_{\text{cur}}\) 是当前周期内已执行的迭代次数。
- 学习率变化遵循余弦退火(Cosine Annealing)公式:
-
热重启机制
- 当 \(T_{\text{cur}} = T_i\) 时,周期结束,学习率重置为 \(\eta_{\max}\)(热重启);
- 重启后,模型利用高学习率跳出当前局部最优,同时周期长度 \(T_i\) 可能按倍数增长(如 \(T_i = T_0 \times 2^i\)),逐步细化搜索。
-
实现细节
- 周期长度设置:初始周期长度 \(T_0\) 常设为总迭代次数的 1/10,后续周期逐次倍增;
- 边界值选择:\(\eta_{\max}\) 通常取 0.1 或 0.01,\(\eta_{\min}\) 设为 \(\eta_{\max}\) 的 1/10 或更小;
- 梯度更新:每次迭代按当前 \(\eta_t\) 执行标准SGD步骤。
-
优势分析
- 周期性高学习率帮助模型逃离尖锐的局部最优,趋向平坦最优解(泛化能力更强);
- 余弦退火保证学习率平滑变化,避免阶梯式下降的突变;
- 可与其他优化器(如动量法)结合使用。
总结
SGD with Warm Restarts 通过简单而有效的周期重启机制,平衡了探索与利用,在多个深度学习任务中实现了更快的收敛和更好的泛化性能。