top of page

19 - 乜嘢係「學習率衰減」(Learning-rate Decay)?


訓練神經網絡就似行山搵最低谷。• 開頭仲喺山腰 —— 可以大步扑落去,學習率 (lr) 大。• 愈近谷底 —— 要放慢腳步,否則一步跨過最低點,兜番轉頭又跌返出嚟。

「由大步轉細步」嘅節奏調整,就叫 學習率衰減


🧠 點解要減 lr?


Mini-batch 梯度有雜訊,好似地面凹凸不平:

  1. 早期 路遠 → 大步快跑,加速收斂。

  2. 後期 靠近谷底 → 細步慢行,避免左右震盪。

  3. 最終 穩穩企正最低位,Loss 曲線平滑黐地。


🌍 生活化例子再多幾單


場景

學習率高 vs 低

煮湯

起鍋先用大火 (lr 大) 滾起,之後細火慢熬 (lr 小) 味道先入味

轉波車

起步要一檔轉數高;上到公路慢慢跳高檔,轉速 (lr) 自然落低

做 Gym

準備期重量加得快;接近極限 PR,就每週只加 1–2.5 kg


🧮 常見衰減公式


以下全部 formula 入面,t 可以係 step 或 epoch

  1. 反比衰減 (Inverse Time)lr_t = lr₀ / (1 + k · t)初段落得快,愈後期愈平穩。

  2. 指數衰減 (Exponential)lr_t = lr₀ · γᵗ (γ 例:0.95)每個 epoch 乘同一比例,好似複利。

  3. 平方根衰減 (√)lr_t = lr₀ / √(1 + t)比反比再慢啲,保留探索力。

  4. 階段式衰減 (Step)lr_t = lr₀ · γ^{⌊t / m⌋}每隔 m 個 epoch 才突然跳落一級,類似「換鞋」。

  5. 餘弦退火 (Cosine Annealing)lr_t = lr_min + ½ (lr_max - lr_min) (1 + cos(π t / T))先快後慢再收尾,曲線似滑水。

  6. 循環式 (Cyclical LR / One-Cycle)先升後降,配合大 batch 可加速收斂兼做正則化。


🔧 超參數點揀?


  1. 起始 lr (lr₀)• 用網上同架構常見值先試;• 如果爆 Loss→ /10。

  2. decay 速度 (k, γ)• 模型大 / 資料多 → 可以落慢啲;• 想快測試 → 落急啲。

  3. 最細 lr (lr_min)• 太細梯度近 0,會「學唔郁」;通常設成 lr₀/100 左右。


🛠️ PyTorch Scheduler 快用示例

optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

# 1. Exponential
scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=0.95)

# 2. Step
# scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.5)

# 3. Cosine
# scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=30, eta_min=1e-5)

for epoch in range(E):
    train_one_epoch(...)
    scheduler.step()           # 每個 epoch call

⚠️ 常見誤區


  1. 跌得太快現象:頭幾 epoch Loss 仲高就停滯。解法:減慢 k 或 γ,或加 Warm-up 先細後大再細。

  2. 跌得太慢現象:後期 Loss 鋸齒唔收斂。解法:加大 decay 速度,或手動 early-stop 保存最佳權重。

  3. 同 BatchNorm 撞車BN 需要較大 lr 才有正則效果;若 lr 太細配 BN 可能過擬合,可加 Dropout/Weight Decay 補回。


💡 真實專案點用?


  1. ImageNet CNN• 先 5 epoch linear warm-up 到 0.4,• 再用 Cosine 從 0.4 降到 1e-5,Top-1 提 1%。

  2. BERT 微調• 3 epoch,StepLR 每 1 epoch /2;• 首 500 step warm-up;避免一開波毀語言知識。

  3. GAN 生成藝術圖• Discriminator 用 Cyclical 0.0002↔0;• Generator 固定 0.0001;穩定對弈不 collapse。

  4. 強化學習 DQN• Episode 累積 reward 收斂後,再把 lr /10,逼近最優策略。


✅ 總結 — 攞走嘅三句說話


  1. 學習率大行快,細行穩。

  2. Decay = 自動踩 Brake,由衝刺切換到慢慢入彎。

  3. 方法多,揀一種易 tune 先落手;warm-up + decay 幾乎百搭。


有咗學習率衰減,模型就好似司機識得減速入灣,滑過最後幾個彎都唔會甩尾,安安穩穩衝線!🏁

翱翔醫療 (2).png

Tsim Sha Tsui H Zentre Clinic

Suite 813, 8/F, H Zentre

15 Middle Road, TST

Phone: 28133700

​Whatsapp:+852 95096276

Central Printing House Clinic

Room 303A & 305,

3/F, Printing House,

6 Duddell Street, Central

Phone: 28716733 / 28716788

Whatsapp:+852 62084539

TKO Maritime Bay Clinic

UG18, UG/F,

Maritime Bay Shopping Centre
Hang Hau, Tseung Kwan O
Tel: 98852916; Whatsapp: 98852916

​Phone:98852916

Whatsapp:+852 98852916

Mong Kok T.O.P. Clinic

Room 2001, 20/F,
700 Nathan Road, Mong Kok

​(Going above from the the 3/F elevator of T.O.P. Mall)

Phone:28710277

Whatsapp:+852 98893911

bottom of page