Regularization (正則化)
「給模型加一點約束,換更好的泛化能力」
訓練時如果模型太自由,容易把訓練資料背起來,
造成 Overfitting (過擬合)。
Regularization (正則化) 就是在 loss 裡加入懲罰項,
限制模型複雜度,讓它在新資料上更穩定。
Why Regularization?
你可以把它想成:
- 不正則化:模型很會背答案,但考試容易失常
- 有正則化:模型不追求完美背誦,改追求可泛化規則
核心目標:
- 降低 overfitting
- 提升 generalization
常見做法
L1 / L2(最常見)
-
- 會把部分權重壓到 0
- 適合做特徵選擇(模型變稀疏)
-
- 讓所有權重變小但通常不為 0
- 訓練更平滑、在深度學習中很常見
| 類型 | 比喻 | 效果 |
|---|---|---|
| L1 | 斷捨離:直接丟不重要權重 | 稀疏、可做特徵選擇 |
| L2 | 整齊收納:全部保留但壓小 | 平滑、穩定 |
其他常見正則化(深度學習)
- Dropout:訓練時隨機關閉部分神經元,降低共適應
- Early Stopping:驗證集不再進步就提前停止
- Data Augmentation(資料增強):增加資料多樣性,降低過擬合
Loss 觀點(簡化)
常見形式:
:原本任務損失(例如分類或回歸誤差) :正則化項(L1 或 L2) :正則化強度(越大約束越強)
怎麼選 L1 或 L2?
- 想要特徵選擇、稀疏模型 -> 優先 L1
- 想要訓練穩定、泛化平滑 -> 優先 L2
- 大型深度模型(CNN / Transformer / LLM)通常偏向 L2(weight decay)
詳細比較看:L1 vs L2 正則化 — 實務差異
實務小建議
- 不要一開始就把
設太大,先從小值試(如 1e-5,1e-4,1e-3) - 用 validation curve 看 underfit / overfit 變化再調整
- Regularization 通常和資料品質、模型大小、訓練步數一起看