LinDragon 筆記圖書館2026年10月
Journal of CNN

卷積神經網路 · 優化器 · 學習率調度

Research Note

CosineAnnealingLR - 餘弦退火

CosineAnnealingLR - 餘弦退火

原理: 學習率按餘弦曲線平滑衰減

像餘弦曲線一樣先慢慢降,再升回來一點,常配合長訓練

沒有像 StepLR 那樣「突然掉階梯」,是整個訓練過程中平滑彎下來

optimizer = optim.AdamW(model.parameters(), lr=1e-3)
scheduler = optim.lr_scheduler.CosineAnnealingLR(
    optimizer,
    T_max=100,      # 週期長度(總 epoch 數)
    eta_min=1e-6    # 最小學習率
)

學習率變化公式:

lr=etamin+(lrmax−etamin)×(1+cos(π×epoch/Tmax))/2lr = etamin + (lrmax - etamin) × (1 + cos(π × epoch / Tmax)) / 2
lr = eta_min + (lr_max - eta_min) × (1 + cos(π × epoch / T_max)) / 2

可視化:

Learning Rate
    │
1e-3│╲
    │ ╲
    │  ╲
    │   ╲___
    │       ╲___
    │           ╲___
1e-6│               ╲______
    │
    └─────────────────────────→
    0    25   50   75   100  Epoch

優點:

適用: 從零訓練、訓練時間較長的任務


相關筆記