正则化_(计算机科学)

在數學與電腦科學中，尤其是在機器學習和逆問題領域中，**正則化**（英語：regularization）是指為解決適定性問題或過適而加入額外資訊的過程。

在機器學習和逆問題的最佳化過程中，正則項往往被加在目標函式當中。

## 概述

概括來講，機器學習的訓練過程，就是要找到一個**足夠好**的函式 $F^{*}$ 用以在新的資料上進行推理。為了定義什麼是「好」，人們引入了損失函式的概念。一般地，對於範例 $({\vec {x}},y)$ 和模型 $F$ ，有預測值 ${\hat {y}}=F({\vec {x}})$ 。損失函式是定義在 $\mathbb {R} \times \mathbb {R} \to \mathbb {R} $ 上的二元函式 $\ell (y,{\hat {y}})$ ，用來描述基準真相和模型預測值之間的差距。一般來說，損失函式是一個有下確界的函式；當基準真相和模型預測值足夠接近，損失函式的值也會接近該下確界。

因此，機器學習的訓練過程可以被轉化為訓練集 ${\mathcal {D}}$ 上的最小化問題。我們的目標是在泛函空間內，找到使得全域損失 $L(F)=\sum _{i\in {\mathcal {D}}}\ell (y_{i},{\hat {y}}_{i})$ 最小的模型 $F^{*}$ 。

$$
F^{*}:=\mathop {\text{arg min}} _{F}L(F).
$$

由於損失函式只考慮在訓練集上的經驗風險，這種做法可能會導致過適。為了對抗過適，我們需要向損失函式中加入描述模型複雜程度的正則項 $\Omega (F)$ ，將經驗風險最小化問題轉化為結構風險最小化。

$$
F^{*}:=\mathop {\text{arg min}} _{F}{\text{Obj}}(F)=\mathop {\text{arg min}} _{F}{\bigl (}L(F)+\gamma \Omega (F){\bigr )},\qquad \gamma >0.
$$

這裡， ${\text{Obj}}(F)$ 稱為目標函式，它描述模型的結構風險； $L(F)$ 是訓練集上的損失函式； $\Omega (F)$ 是正則項，描述模型的複雜程度； $\gamma $ 是用於控制正則項重要程度的參數。正則項通常包括對光滑度及向量空間內範數上界的限制。 $L_{p}$ - 範數是一種常見的正則項。

在貝葉斯學派的觀點看來，正則項是在模型訓練過程中引入了某種模型參數的先驗分布。

## Lp 正則項

所謂範數即是抽象之長度，通常意義上滿足長度的三種性質：非負性、齊次性和三角不等式。

以函式的觀點來看，範數是定義在 $\mathbb {R} ^{n}\to \mathbb {R} $ 的函式；並且它和損失函式類似，也具有下確界。後一性質是由範數的非負性和齊次性保證的。這一特性使得 $L_{p}$ - 範數天然適合做正則項，因為目標函式仍可用梯度下降等方式求解最佳化問題。 $L_{p}$ - 範數作為正則項時被稱為 $L_{p}$ - 正則項。

### L0 和 L1 正則項

機器學習模型當中的參數，可形式化地組成參數向量，記為 ${\vec {\omega }}$ 。不失一般性，以線性模型為例：

$$
F({\vec {x}};{\vec {\omega }}):={\vec {\omega }}^{\intercal }\cdot {\vec {x}}=\sum _{i=1}^{n}\omega _{i}\cdot x_{i}.
$$

由於訓練集當中統計噪聲的存在，冗餘的特徵可能成為過適的一種來源。這是因為，對於統計噪聲，模型無法從有效特徵當中提取資訊進行調適，故而會轉向冗餘特徵。為了對抗此類過適現象，人們會希望讓儘可能多的 $\omega _{i}$ 為零。為此，最直觀地，可以引入 $L_{0}$ - 正則項

$$
\Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{0}{\frac {\lVert {\vec {\omega }}\rVert _{0}}{n}},\;\gamma _{0}>0.
$$

通過引入 $L_{0}$ - 正則項，人們實際上是向最佳化過程引入了一種懲罰機制：當最佳化演算法希望增加模型複雜度（此處特指將原來為零的參數 $\omega _{i}$ 更新為非零的情形）以降低模型的經驗風險（即降低全域損失）時，在結構風險上進行大小為 ${\tfrac {\gamma _{0}}{n}}$ 的懲罰。於是，當增加模型複雜度在經驗風險上的收益不足 ${\tfrac {\gamma _{0}}{n}}$ 時，整個結構風險實際上會增大而非減小。因此最佳化演算法會拒絕此類更新。

引入 $L_{0}$ - 正則項可使模型參數稀疏化，以及使得模型易於解釋。但 $L_{0}$ - 正則項也有無法避免的問題：非連續、非凸、不可微。因此，在引入 $L_{0}$ - 正則項的目標函式上做最佳化求解，是一個無法在多項式時間內完成的問題。於是，人們轉而考慮 $L_{0}$ - 範數的最緊凸放鬆 —— $L_{1}$ - 範數，令

$$
\Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{1}{\frac {\lVert {\vec {\omega }}\rVert _{1}}{n}},\;\gamma _{1}>0.
$$

和引入 $L_{0}$ - 正則項的情況類似，引入 $L_{1}$ - 正則項是在結構風險上進行大小為 ${\tfrac {\gamma _{1}|\omega _{i}|}{n}}$ 的懲罰，以達到稀疏化的目的。

 $L_{1}$ - 正則項亦稱 LASSO - 正則項。

### L2 正則項

在發生過適時，模型的函式曲線往往會發生劇烈的彎折，這意味著模型函式在局部的切線之斜率非常高。一般地，函式的曲率是函式參數的線性組合或非線性組合。為了對抗此類過適，人們會希望使得這些參數的值相對稠密且均勻地集中在零附近。於是，人們引入了 $L_{2}$ - 範數，作為 $L_{2}$ - 正則項。令

$$
\Omega {\bigl (}F({\vec {x}};{\vec {w}}){\bigr )}:=\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},\;\gamma _{2}>0,
$$

於是有目標函式

$$
{\text{Obj}}(F)=L(F)+\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},
$$

於是對於參數 $\omega _{i}$ 取偏微分

$$
{\frac {\partial {\text{Obj}}}{\partial \omega _{i}}}={\frac {\partial L}{\partial \omega _{i}}}+{\frac {\gamma _{2}}{n}}\omega _{i}.
$$

因此，在梯度下降時，參數 $\omega _{i}$ 的更新

$$
\omega '_{i}\gets \omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}-\eta {\frac {\gamma _{2}}{n}}\omega _{i}={\Bigl (}1-\eta {\frac {\gamma _{2}}{n}}{\Bigr )}\omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}.
$$

注意到 $\eta {\tfrac {\gamma _{2}}{n}}$ 通常是介於 $(0,\,1)$ 之間的數， $L_{2}$ - 正則項會使得參數接近零，從而對抗過適。

 $L_{2}$ - 正則項又稱 Tikhonov - 正則項或 Ridge - 正則項。

## 提前停止

提前停止可看做是時間維度上的正則化。直覺上，隨著迭代次數的增加，如梯度下降這樣的訓練演算法傾向於學習愈加複雜的模型。在時間維度上進行正則化有助於控制模型複雜度，提升一般化能力。在實踐中，提前停止一般是在訓練集上進行訓練，而後在統計上獨立的驗證集上進行評估；當模型在驗證集上的效能不再提升時，就提前停止訓練。最後，可在測試集上對模型效能做最後測試。

## 參考文獻

## 外部連結

* 談談 $L_{1}$ 與 $L_{2}$ - 正則項 （頁面存檔備份，存於網際網路檔案館） （中文）