請檢視以下泛化曲線, 該曲線顯示的是訓練集和驗證集相對於訓練迭代次數的損失.
圖 1.訓練集和驗證集損失
圖 1 顯示的是某個模型的訓練損失逐漸減少, 但驗證損失最終增加.換言之, 該泛化曲線顯示該模型與訓練集中的資料過擬合.根據奧卡姆剃刀定律, 或許我們可以透過降低複雜模型的複雜度來防止過擬合, 這種原則稱為正則化。
也就是說, 並非只是以最小化損失 ( 經驗風險最小化 ) 為目標:
minimize ( Loss ( Data|Model ))
而是以最小化損失和複雜度為目標, 這稱為結構風險最小化:
minimize(Loss(Data|Model) + complexity(Model))
現在, 我們的訓練最佳化演算法是一個由兩項內容組成的函式:一個是損失項, 用於衡量模型與資料的擬合度, 另一個則是正則化項, 用於衡量模型的複雜度。
機器學習速成課程重點介紹了這兩種衡量模型複雜度的常見方式 ( 這兩種方式有些相關 ):
- 將模型複雜度作為模型中所有特徵的權重的函式。
- 將模型複雜度作為具有非零權重的特徵總數的函式。
如果模型複雜度是權重的函式, 則特徵權重的絕對值越高, 對模型複雜度的貢獻就越大.
我們可以使用 L2 正則化公式來衡量複雜度, 該公式將正則化項定義為所有特徵權重的平方和:L_2 regularization term = ||w||_{2}^{2} = w_{1}^{2} + w_{2}^{2} + ... +w_{n}^{2}
在這個公式中, 接近於 0 的權重對模型的複雜度幾乎沒有影響, 而離群值權重則可能會產生巨大的影響。
例如, 某個線性模型具有以下權重:w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 2, \\w_5 = 0.25, w_6 = 0.75
L_2 正則化項為 26.915:
w_{1}^{2} + w_{2}^{2} + \mathbf{w_{3}^{2}} + w_{4}^{2} + w_{5}^{2 }+ w_{6}^{2}\\ = 0.2^{2} + 0.5^{2} + \mathbf{5^{2}} + 1^{2} + 0.25^{2} + 0.75^{2}\\ = 0.04 + 0.25 + \mathbf{25} + 1 + 0.0625 + 0.5625 = 26.915
但是w_3( 上述加粗內容 ) 的平方值為 25, 幾乎貢獻了全部的複雜度。所有 5 個其他權重的平方和對 L_2 正則化的貢獻僅為 1.915.
本作品採用《CC 協議》,轉載必須註明作者和本文連結