優化器
什麼是優化器?
優化器(Optimizer)是深度學習中負責更新模型參數的演算法,目標是找到讓損失函數(Loss)最小的參數組合。
簡單比喻:
-
模型參數 = 登山路線
-
損失函數 = 海拔高度
-
優化器 = 導航系統
-
目標 = 找到最低點(山谷)
優化器在做什麼?
每次訓練迭代:
1. 前向傳播:計算預測結果
2. 計算損失:比較預測與真實值
3. 反向傳播:計算梯度
4. 優化器更新:調整參數
↓
參數_new = 參數_old - 學習率 × 梯度
動量 = 對「過去梯度的指向」做指數平均,再用這個平均來更新權重。
主要效果:加速收斂、減少震盪、幫助跳出小局部最小值,對 CNN 特別有用。
SGD(Stochastic Gradient Descent)隨機梯度下降.md
Adam(Adaptive Moment Estimation).md
AdamW(Adam with Weight Decay).md
RMSprop.md
AdaGrad.md
AdaDelta.md
使用場景建議
# 🎯 場景 1:一般 CNN 訓練(影像分類、物體偵測)
優先選擇: AdamW
備選: SGD + Momentum
# 🎯 場景 2:Transformer、BERT、GPT
首選: AdamW
學習率: 1e-4 ~ 5e-5
# 🎯 場景 3:RNN、LSTM
優先選擇: AdamW 或 RMSprop
學習率: 1e-3
# 🎯 場景 4:微調預訓練模型
首選: AdamW(分層學習率)
學習率: 1e-5 (backbone) + 1e-3 (classifier)
# 🎯 場景 5:從零訓練大型模型
首選: AdamW
學習率: 1e-3(搭配學習率調度器)
# 🎯 場景 6:追求極致準確率(有時間調參)
首選: SGD + Momentum
學習率: 0.01(搭配 StepLR 或 CosineAnnealingLR)
# 🎯 場景 7:快速實驗、驗證想法
首選: Adam 或 AdamW
學習率: 1e-3
相關筆記
- SGD(Stochastic Gradient Descent)隨機梯度下降:最基本的優化器
- AdaGrad:自適應學習率的起點
- AdaDelta:改善 AdaGrad 學習率遞減
- RMSprop:改善 AdaGrad 學習率遞減
- Adam(Adaptive Moment Estimation):動量 + RMSprop
- AdamW(Adam with Weight Decay):Adam + 解耦權重衰減
- CNN 常見 optimizer 整理表:比較表
- Learning Rate (學習率):優化器的核心超參數
- 學習率調度器:訓練中動態調整學習率