22 - 超參數調校攻略 —— 「養熊貓」定「釣魚子」?
1️⃣ 乜嘢係超參數?
模型內嘅值(權重、偏差)可以自動學;
模型外嘅規則(learning rate、層數、batch size…)要你人手定。
呢啲人手設定就叫 超參數 (Hyper-parameters)。好似煲湯:
排骨、紅棗 = 網絡結構;
火力、鹽量、水份 = 超參數。
材料啱唔代表湯靚,火候錯一樣會「又柴又淡」。
2️⃣ 兩大調參流派
🐼 熊貓式(Panda Strategy)——慢慢養,日日睇
適合:
一機一 GPU、學生黨、Side-project
想透徹觀察模型行為
操作:
隨機揀一組超參數開始訓練
跑 2-3 個 epoch / 幾千 step
睇 Loss、Accuracy、Gradient 分佈
第二日改 learning rate、dropout、λ …
Loop 返 Step 2
真實比喻:
養盆栽——朝早睇葉尖乾唔乾再加水。
手沖咖啡——試一杯後微調磨豆粗幼。
寫 call 鱷魚籌碼——細注慢試先知水溫。
優點:
成本低,Laptop 都搞得掂
每一步你知發生咩事,學到經驗
缺點:
耗時,可能要煲足幾日先有像樣結果
同時間只睇到一條路線,容易 miss optimal
🐟 魚子醬式(Caviar Strategy)——一次撒網,孵幾百粒
適合:
多卡 GPU、雲平台、科研團隊
KPI 緊迫,想快啲搵最佳組合
操作:
用 Random / Bayesian / Evolution 方法產生 50-500 組超參數
分配去多台機同時開訓練
設置 Early-stopping,爛 model 十分鐘就砍
訓練完統計排行榜,揀 Top-k 再細調或 ensemble
真實比喻:
火鍋放十隻唔同味魚丸,一次試勻邊粒最彈牙。
電 商 A/B Test 開 100 條頁面,直接睇 CTR 排名。
科研實驗室排 96 孔培養板,一晚測 96 個化合物。
優點:
極速收斂,半日內就可能鎖定 SOTA 設定
可順手收集 learning curve、ablation 資料寫論文
缺點:
燒錢,燒雲點數
需要排程管理、checkpoint 併發處理
3️⃣ 兩派混搭貼士
「熊貓 → 魚子醬」
先熊貓式摸熟模型特性,再魚子醬式大規模掃描細節。
「魚子醬暖身 → 熊貓收尾」
先平行粗掃找甜區,之後鎖定少數 run 做長訓 + 人手監控。
4️⃣ 批次正規化 (Batch Normalization) —— 調味粉一撒,成鍋湯穩
4.1 點解要 BN?
每層輸出分佈日日變,下一層要跟到癲。
BN 就係每個 mini-batch 把輸出 x 標準化: x̂ = (x − μ) / √(σ² + ε) y = γ · x̂ + β γ、β 可學,就算你標準化完,模型照樣可以「想偏就偏」。
4.2 生活類比
BN 動作 | 日常版本 |
減平均數 | 考試後全班扣平均分,睇邊個真正高分 |
除標準差 | 不同科目出題難度唔同,調一調先比較 |
乘 γ、加 β | 校長想整體分數升 5 分,easy 改曲線 |
4.3 BN 帶嚟嘅好處
大力放 Learning rate:ResNet 有 BN 可以由 0.01 提到 0.1。
加速收斂:同等精度少 25-40% epoch。
輕正則效果:batch 噪聲 = mini Dropout,減 overfit。
4.4 真實案例
手機姿勢辨識 Tiny-CNN
無 BN:lr 5e-4,20 epoch Acc 78%
加 BN:lr 3e-3,12 epoch 直升 86%
GAN 生成漫畫
無 BN 容易 mode collapse;在 Generator 每層插 BN ,training 穩到可以收尾 4K steps 不爆。
4.5 代碼一行搞掂
import torch.nn as nn
layer = nn.Sequential(
nn.Conv2d(64, 128, 3, padding=1, bias=False), # bias 可省
nn.BatchNorm2d(128),
nn.ReLU(inplace=True)
)
5️⃣ 調參 + BN 全攻略實例
Image Classification, 1 張 GPU, 預算三日
Day 0 晚上 – Panda 初摸底
lr 1e-3, batch 64, 無 scheduler, BN on
跑 3 epoch,觀察 loss 未跌 → lr 太細
Day 1 白天 – Panda 微調
lr 提到 3e-3,加 Cosine decay 30 epoch
Acc 由 62% 抽到 74%
Day 1 晚上 – Caviar 快掃
用 Optuna 開 32 個 trial:
lr ∈ 1e-3~1e-2 (log)
weight_decay ∈ 1e-5~1e-3 (log)
dropout ∈ 0~0.4
雲端四卡並行,6 小時完
Day 2 – 收網
Top-3 組合進一步長訓 100 epoch
最終 Top-1 accuracy 由 baseline 62% ➜ 88.3%
✅ 結論 Checklist
資源有限:用熊貓式,逐步觀察,累積直覺。
資源充沛:魚子醬式平行掃,一日內鎖最佳。
BatchNorm 必開:穩定+快收斂,還可把 bias 省番。
混搭最強:先手動感覺範圍,再自動大規模探索。
記錄一切:用 TensorBoard / W&B,今日嘅嘗試就係明日嘅知識庫。
掌握呢套心法,唔論你係「熊貓飼養員」定「魚子醬大戶」,超參數調校都可以又準又快,模型自然香噴噴!🚀