学习率调度策略

本文由 gpt-4o 生成

余弦退火

余弦退火是一种用于调整学习率的策略,主要应用在深度学习的优化过程中。它通过余弦函数来调节学习率,使其在训练过程中逐渐减小,从而帮助模型更好地收敛。

具体来说,余弦退火的学习率 \(\eta_t\) 可以表示为:

\[\eta_t = \eta_{\text{min}} + \frac{1}{2} (\eta_{\text{max}} - \eta_{\text{min}}) \left(1 + \cos\left(\frac{t}{T} \pi\right)\right) \]

其中:

  • \(\eta_{\text{max}}\) 是初始的学习率。
  • \(\eta_{\text{min}}\) 是最小学习率。
  • \(t\) 是当前 epoch 数。
  • \(T\) 是总 epoch 数。

image

在 PyTorch 中,可以使用 torch.optim.lr_scheduler.CosineAnnealingLR 来实现余弦退火。配置一个优化器和学习率调度器的示例如下:

import torch
import torch.optim as optim
import torch.nn as nn

# 假设有一个简单的模型
model = nn.Linear(10, 1)

# 定义优化器
optimizer = optim.SGD(model.parameters(), lr=0.1)

# 定义余弦退火学习率调度器
scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=100, eta_min=0)

for epoch in range(100):
    # 训练过程
    # ...

    # 更新学习率
    scheduler.step()

在这个例子中,T_max=100 表示调度器将在 100 个 epoch 后完成一个完整的余弦周期,eta_min=0 表示最终的学习率将降低到 0。通过这种方式,模型可以在训练的后期阶段更加稳定地调整参数。

posted @ 2025-08-28 15:48  Undefined443  阅读(18)  评论(0)    收藏  举报