正則化的主要作用是防止過擬合,對模型新增正則化項可以限制模型的複雜度,使得模型在複雜度和效能達到平衡。
常用的正則化方法有l1正則化和l2正則化。l1正則化和l2正則化可以看做是損失函式的懲罰項。所謂『懲罰』是指對損失函式中的某些引數做一些限制。l1正則化的模型建叫做lasso回歸,使用l2正則化的模型叫做ridge回歸(嶺回歸。但是使用正則化來防止過擬合的原理是什麼?l1和l2正則化有什麼區別呢?
l1正則化的表達如下,其中α∣∣
w∣∣1
\alpha||w||_1
α∣∣w∣∣
1為l1正則化項,l1正則化是指權值向量w 中各個元素的絕對值之和。
l2正則化項表示式如下,其中α∣∣
w∣∣2
2\alpha||w||_2^2
α∣∣w∣∣
22為l2正則化項,l2正則化是指權值向量w 中各個元素的平方和然後再求平方根。
l1和l2正則化的作用:
下面看李飛飛在cs2312中給的更為詳細的解釋:
上面講到l1傾向於學得稀疏的權重矩陣,l2傾向於學得更小更分散的權重?但是l1和l2是怎樣起到這樣的作用的呢?背後的數學原理是什麼呢?
模型的學習優化的目標是最小化損失函式,學習的結果是模型引數。在原始目標函式的基礎上新增正則化相當於,在引數原始的解空間新增了額外的約束。
l1正則化對解空間新增的約束是:
∑ ∣∣
w∣∣1
<=c
\sum||w||_1 <= c
∑∣∣w∣∣
1<=c
l2正則化對解空間新增的約束是:
∑ ∣∣
w∣∣2
2<=c
\sum||w||_2^2 <= c
∑∣∣w∣∣
22<=c
為了形象化的說明以假設有兩個空間,以二維引數空間為例,假設有兩個引數w1和w2。
則l1正則化對解空間的約束為:
∣ w1
∣+∣w
2∣<=c
|w1| + |w2| <= c
∣w1∣+∣
w2∣<=c
l2對解空間的約束為:
w 12
+w22
<=c
w1^2 + w2^2 <= c
w12+w2
2<=c
在二維平面上繪製以上兩個式子的影象,可得l1約束的範圍是乙個頂點在座標軸上的菱形,l2約束的範圍是乙個圓形。
上面的圖,左面是l2約束下解空間的影象,右面是l1約束下解空間的影象。
藍色的圓圈表示損失函式的等值線。同乙個圓上的損失函式值相等的,圓的半徑越大表示損失值越大,由外到內,損失函式值越來越小,中間最小。
如果沒有l1和l2正則化約束的話,w1和w2是可以任意取值的,損失函式可以優化到中心的最小值的,此時中心對應的w1和w2的取值就是模型最終求得的引數。
但是填了l1和l2正則化約束就把解空間約束在了黃色的平面內。黃色影象的邊緣與損失函式等值線的交點,便是滿足約束條件的損失函式最小化的模型的引數的解。由於l1正則化約束的解空間是乙個菱形,所以等值線與菱形端點相交的概率比與線的中間相交的概率要大很多,端點在座標軸上,一些引數的取值便為0。l2正則化約束的解空間是圓形,所以等值線與圓的任何部分相交的概率都是一樣的,所以也就不會產生稀疏的引數。
但是l2為什麼傾向於產生分散而小的引數呢?那是因為求解模型的時候要求,在約束條件滿足的情況下最小化損失函式,∑∣∣
w∣∣2
2\sum||w||_2^2
∑∣∣w∣∣
22也應該盡可能的小。
看這樣乙個例子:
設輸入向量x=[1,1,1,1],兩個權重向量w_1=[1,0,0,0],w_2=[0.25,0.25,0.25,0.25]。那麼w1t
x=w2
tx=1
w^t_1x=w^t_2x=1
w1tx=
w2t
x=1,兩個權重向量都得到同樣的內積,但是w
1w_1
w1的l2懲罰是1.0,而w
2w_2
w2的l2懲罰是0.25。因此,根據l2懲罰來看,w
2w_2
w2更好,因為它的正則化損失更小。從直觀上來看,這是因為w
2w_2
w2的權重值更小且更分散。所以l2正則化傾向於是特徵分散,更小。
我們一般會為正則項引數新增乙個超引數λ或者α,用來平衡經驗風險和結構風險(正則項表示結構風險)。
相反,若 λ 很大,約束條件更為嚴格,對應上文中的 c 值就很小。這時候,圓形區域很小,w 離中心最優解的位置較遠。w 被限制在乙個很小的區域內變化,w 普遍較小且接近 0,起到了正則化的效果。但是,λ 過大容易造成欠擬合。欠擬合和過擬合是兩種對立的狀態。
新增正則化相當於引數的解空間新增了約束,限制了模型的複雜度
l1正則化的形式是新增引數的絕對值之和作為結構風險項,l2正則化的形式新增引數的平方和作為結構風險項
l1正則化鼓勵產生稀疏的權重,即使得一部分權重為0,用於特徵選擇;l2鼓勵產生小而分散的權重,鼓勵讓模型做決策的時候考慮更多的特徵,而不是僅僅依賴強依賴某幾個特徵,可以增強模型的泛化能力,防止過擬合。
正則化引數 λ越大,約束越嚴格,太大容易產生欠擬合。正則化引數 λ越小,約束寬鬆,太小起不到約束作用,容易產生過擬合。
如果不是為了進行特徵選擇,一般使用l2正則化模型效果更好。
參考文章:1.【通俗易懂】機器學習中 l1 和 l2 正則化的直觀解釋
2. 機器學習中正則化項l1和l2的直觀理解
L1以及L2正則化
機器學習中幾乎都可以看到損失函式後面會新增乙個額外項,常用的額外項一般有兩種,一般英文稱作 1 norm和 2 norm,中文稱作l1正則化 和l2正則化 或者l1範數 和l2範數 l1正則化和l2正則化可以看做是損失函式的懲罰項。所謂 懲罰 是指對損失函式中的某些引數做一些限制。對於線性回歸模型,...
正則化(L1和L2正則)
稀疏性表示資料中心0佔比比較大 引西瓜書中p252原文 對於損失函式後面加入懲罰函式可以降低過擬合的風險,懲罰函式使用l2範數,則稱為嶺回歸,l2範數相當與給w加入先驗,需要要求w滿足某一分布,l2範數表示資料服從高斯分布,而l1範數表示資料服從拉普拉斯分布。從拉普拉斯函式和高斯函式的影象上看,拉普...
L1正則化和L2正則化
為了降低過擬合風險,需要控制模型複雜度,自然想到減少引數個數,但是這個問題不易直接解決,可以通過放寬條件控制。新增優化條件 這會使引數條件空間有明顯的凸角,這些突出點顯然會成為聯合優化時的最優解,但同時這些這些凸點中又會有較多的0值 由其限制條件可見,凸點都在座標軸上 因此l1範數會更易得到稀疏解,...