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

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

Research Note

ReduceLROnPlateau - 自適應衰減

ReduceLROnPlateau - 自適應衰減

原理: 當指標停止改善時自動降低學習率

當「模型表現卡住一陣子沒進步」時,才自動把學習率變小

核心概念(只抓這個)

直覺就是:
「訓練卡住不進步 → 自動幫你調小 lr 再試試看」。

optimizer = optim.AdamW(model.parameters(), lr=1e-3)
scheduler = optim.lr_scheduler.ReduceLROnPlateau(
    optimizer,
    mode='max',      # 'max' 監控準確率, 'min' 監控 loss
    factor=0.5,      # 衰減係數(lr = lr × 0.5)
    patience=3,      # 容忍 3 個 epoch 沒進步
    verbose=True,    # 顯示學習率變化
    min_lr=1e-7      # 最小學習率
)

# 使用方式
for epoch in range(100):
    train(...)
    val_acc = validate(...)
    scheduler.step(val_acc)  # 傳入監控指標

幾個關鍵參數直觀理解:​

運作示例:

Epoch   Val Acc   Learning Rate   說明
1       75.0%     1e-3            初始
2       78.0%     1e-3            進步 
3       80.0%     1e-3            進步 
4       80.5%     1e-3            進步 
5       80.3%     1e-3            沒進步 (patience 1/3)
6       80.4%     1e-3            沒進步 (patience 2/3)
7       80.2%     1e-3            沒進步 (patience 3/3)
8       80.3%     5e-4 ⬇          觸發衰減!
9       81.0%     5e-4            進步(重置 patience)

優點:

缺點:

適用: 不確定訓練會跑多久、微調任務


相關筆記