正規化為簡單:L2 正規化

請考慮使用下列一般化曲線,這顯示訓練集和驗證集的損失,與訓練疊代次數比較。

訓練集的損失函式會逐漸減少。相反地,驗證集的損失函式會遭到拒絕,然後開始上升。

圖 1. 失去訓練集和驗證集。

圖 1 顯示了讓訓練損失逐步下降的模型,但驗證損失最終會上升。換句話說,此一般化曲線會顯示模型與訓練集內資料的過度配適。形成內部的 Ockham 或許可以減少複雜的模型,避免過度配適,這個原則稱為「正規化」

換句話說,不只是以盡可能減少損失,而是將風險降至最低,而是將風險降至最低:

$$\text{minimize(Loss(Data|Model))}$$

我們現在可將損失和複雜性降到最低,稱為「結構風險最小化」

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

訓練最佳化演算法現在是由兩個字詞組成的函式:「損失詞彙」用於測量模型適合資料的適配程度,以及評估模型複雜度的「正規化詞彙」

機器學習密集課程著重於兩種常見 (以及有些相關) 方式來思考模型複雜度:

  • 模型複雜度做為模型所有特徵「權重」的函式。
  • 模型複雜度是特徵總數的函式 (具有非零權重)。(後續單元會說明這個方法)。

如果模型複雜度是權重的函式,相較於擁有低絕對值的特徵權重,擁有較高絕對值的特徵權重會更為複雜。

我們可以使用 L2 正則化公式來量化複雜度,此公式會將正則化字詞定義為所有特徵權重的平方總和:

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

在此公式中,權重接近零對模型複雜度的影響不大,而離群權重可能產生巨大影響。

例如,一個線性模型的權重如下:

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

具有 26.915 的 L2 正規化詞彙:

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

但 \(w_3\) (上面粗體字) 的值為 25,幾乎是所有複雜度。所有其他五種權重的平方總和,只會加上 L2 正規化詞彙的 1.915。