正則化 是什麼?
Regularization:正則化 的完整解釋
正則化是一種在機器學習中用於防止模型過度擬合的關鍵技術,它透過在損失函數中引入懲罰項,有效限制模型參數的複雜度,從而提升模型的泛化能力。
容易混淆
正則化 vs 過擬合 過擬合是問題。 正則化是解法。 最關鍵的區別:一個是症狀,一個是治療。
正則化 vs 資料擴增術 資料擴增術是把訓練資料變多、變豐富。 正則化是限制模型不要太複雜。 最關鍵的區別:一個增加資料,一個限制模型。
正則化 vs 提前終止 提前終止是訓練到一半發現驗證表現變差就停下來。 正則化是更廣義的抑制複雜度方法。 最關鍵的區別:一個是停止訓練策略,一個是模型約束手段。
記住這句就好
模型太會背,就要想辦法讓它別背太熟。
實際案例
小資料分類 你只有幾千筆資料,要訓練一個分類器,若不加正則化,很容易把訓練集記死。 加上正則化後,模型通常會更穩。
影像辨識 在深度網路裡,常會搭配 L1、L2、隨機丟棄或提前終止一起使用。 這些方法都在幫模型保留泛化能力。
算法與應用
正則化常透過損失函數加懲罰項,讓模型參數不要長得太大或太複雜。 L1 會鼓勵稀疏,L2 會讓參數更平滑,兩者一起用就是 Elastic Net 的概念。 實務上,正則化常和資料擴增、提前終止、Dropout 一起搭配。
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 正則化 | 台灣機器學習教材與考試用語 |
| 正规化 / 正则化 | 簡體用語,簡體資料多寫「正则化」 |
| Regularization | 英文原名 |
| 正則項、懲罰項(penalty term) | 指損失函數裡加上去的那一項 |
| 規則化 | 少見的中文變體 |
要跟正規化(normalization) 分清楚,兩者中文只差一個字但完全不同。正規化是把數值縮放到某個範圍(例如標準化、批次正規化),正則化是限制模型複雜度以避免過度擬合。
L1 與 L2 的差別
| L1(Lasso) | L2(Ridge、權重衰減) | |
|---|---|---|
| 懲罰項 | 權重絕對值的和 | 權重平方的和 |
| 效果 | 會把部分權重壓到剛好 0 | 把權重整體壓小但不會歸零 |
| 附帶好處 | 自動做特徵選擇 | 對共線性特徵較穩定 |
| 幾何直覺 | 約束區域是菱形,尖角落在座標軸上所以容易碰到 0 | 約束區域是圓形,沒有尖角 |
兩個一起用叫做彈性網路(Elastic Net),在特徵多又彼此相關時表現通常最好。
深度學習框架裡的 weight decay 參數,數學上就是 L2 正則化(在 Adam 這類最佳化器上兩者有細微差異,AdamW 就是為了修正這個差異而來)。
深度學習裡的其他正則化手段
Dropout:訓練時隨機讓一部分神經元不參與,強迫網路不要依賴少數幾條路徑。推論時全部打開,並把輸出按比例縮放。
提早停止(early stopping):盯著驗證集的表現,一開始變差就停。實作最簡單,效果常常出乎意料地好。
資料增強(data augmentation):對訓練資料做旋轉、裁切、加噪等變換。本質上是用「模型應該對這些變換不變」這個先驗知識來限制模型。
批次正規化(batch normalization):主要目的是穩定訓練,但因為每個批次的統計量帶有雜訊,附帶了一點正則化效果。
標籤平滑(label smoothing):不要求模型輸出 100% 的信心,避免它對訓練資料過度自信。
判斷要不要加正則化只看一件事:訓練誤差遠低於驗證誤差。兩者都高是欠擬合,這時候加正則化只會更糟,該做的是換更大的模型或更好的特徵。
情境判斷
Q1(直覺題): 你發現訓練分數很高、驗證分數很低,先想到什麼?
→ 先想到正則化或其他抑制過擬合的方法,因為模型可能學太死。
Q2(判斷題): 只要加了正則化,模型一定會更準嗎?
→ 不一定,正則化主要是讓模型更會泛化,太強反而可能讓模型學不夠。
相關術語
常見問題
L1 和 L2 有什麼不同?
L1 比較容易把一些參數壓到 0,L2 比較像把參數整體變平滑。
Dropout 算正則化嗎?
算,它也是用來降低過擬合的常見手段。
正則化一定適合所有模型嗎?
不一定,要看資料量、模型複雜度和任務目標。