1. 程式人生 > >三個層面、三個不同角度理解正則化

三個層面、三個不同角度理解正則化

全文摘要

“正則化”這是機器學習和深度學習都在不斷用到的一個技術手段,也是解決模型模型過擬合最常用的手段,但是很少有文章真正講的深入徹底,本文是在之前自己的一篇博文的基礎之上進行補充的,將再次從“三個不同層面”解釋正則化,本文只針對L1、L2正則化。

三個不同層面理解“正則化”

我們經常說,對於L1正則化,在極小值處,會產生“稀疏解”,而對於L2正則化,在極小值處,會產生“平順解”,那麼這個所謂的“稀疏”和“平順”到底怎麼理解呢?本文將從三個不同的層面進行解釋,即解的空間形狀、函式疊加層面、貝葉斯先驗層面。有關詳細的數學推導可以參考我的另一篇文章:

1 “解的空間形狀”

機器學習的經典之作給出的解釋無疑是權威且直觀的,面試者給出的答案多數也是從這個角度出發的。在二維的情況下,黃色的部分是L2 和L1 正則項約束後的解空間,綠色的等高線是凸優化問題中目標函式的等高線,如下圖 所示。由圖可知,L2 正則項約束後的解空間是圓形,而L1 正則項約束的解空間是多邊形。顯然,多邊形的解空間更容易在尖角處與等高線碰撞出稀疏解。

上述這個解釋無疑是正確的,但卻不夠精確,面試者往往回答過於籠統,以至於忽視了幾個關鍵問題。比如,為什麼加入正則項就是定義了一個解空間約束?為什麼L1 和L2的解空間是不同的?面試官如果深究下去,很多面試者難以給出滿意的答案。其實可以通過KKT條件給出一種解釋。

事實上,“帶正則項”和“帶約束條件”是等價的。為了約束w 的可能取值空間從而防止過擬合,我們為該最優化問題加上一個約束,就是w 的L2 範數的平方不能大於m:

為了求解帶約束條件的凸優化問題,寫出拉格朗日函式

若w* 和λ* 分別是原問題和對偶問題的最優解,則根據KKT 條件,它們應滿足

仔細一看,第一個式子不就是w* 為帶L2 正則項的優化問題的最優解的條件嘛,而λ* 就是L2 正則項前面的正則引數。

這時回頭再看開頭的問題就清晰了。L2 正則化相當於為引數定義了一個圓形的解空間(因為必須保證L2 範數不能大於m),而L1 正則化相當於為引數定義了一個稜形的解空間。如果原問題目標函式的最優解不是恰好落在解空間內,那麼約束條件下的最優解一定是在解空間的邊界上,而L1“稜角分明”的解空間顯然更容易與目標函式等高線在角點碰撞,從而產生稀疏解。

本節小結

綜上所述:L1、L2正則化的的本質都是帶有約束條件的非線性規劃問題。L1的解空間是菱形,L2的解空間是圓形。更詳細的具體解釋參見我的另一片文章的第4.2節,那裡有更詳細的解釋。

2 函式疊加層面

第二個角度試圖用更直觀的圖示來解釋L1 產生稀疏性這一現象。僅考慮一維的情況,多維情況是類似的,如下 所示。假設棕線是原始目標函式L(w) 的曲線圖,顯然最小值點在藍點處,且對應的w* 值非0。

首先,考慮加上L2正則化項,目標函式變成L(w)+Cw2,其函式曲線為黃色。此時,最小值點在黃點處,對應的w 的絕對值減小了,但仍然非0。

然後,考慮加上L1 正則化項,目標函式變成L(w)+C|w|,其函式曲線為綠色。此時,最小值點在紅點處,對應的w 是0,產生了稀疏性。

產生上述現象的原因也很直觀。加入L1 正則項後,對帶正則項的目標函式求導,因為正則項是一個絕對值函式,函式求導需要分段進行,正則項部分產生的導數在原點左邊部分是−C,在原點右邊部分是C,因此,只要原目標函式的導數絕對值小於C,那麼帶正則項的目標函式在原點左邊部分始終是遞減的,在原點右邊部分始終是遞增的,最小值點自然在絕對值函式的拐點處,也就是原點處。相反,L2 正則項在原點處的導數是0,只要原目標函式在原點處的導數不為0,那麼最小值點就不會在原點,所以L2 只有減小w 絕對值的作用,對解空間的稀疏性沒有貢獻。

3 貝葉斯先驗層面

從貝葉斯的角度來理解L1 正則化和L2 正則化,簡單的解釋是, L1 正則化相當於對模型引數w 引入了拉普拉斯先驗,L2 正則化相當於引入了高斯先驗,而拉普拉斯先驗使引數為0 的可能性更大。

下圖是高斯分佈曲線圖。由圖可見,高斯分佈在極值點(0 點)處是平滑的,也就是高斯先驗分佈認為w 在極值點附近取不同值的可能性是接近的。這就是L2 正則化只會讓w 更接0點,但不會等於0 的原因。

相反,下圖是拉普拉斯分佈曲線圖。由圖可見,拉普拉斯分佈在極值點(0 點)處是一個尖峰,所以拉普拉斯先驗分佈中引數w 取值為0 的可能性要更高。在此我們不再給出L1 和L2 正則化分別對應拉普拉斯先驗分佈和高斯先驗分佈的詳細證明。

 

本節小結

L1 正則化相當於對模型引數w 引入了拉普拉斯先驗,L2 正則化相當於引入了高斯先驗。

因為拉普拉斯分佈在極值點處可能性更大,所以會有更多的引數為0.解更加稀疏。

而高斯分佈在極值點附近的概率很大,但都是差不了太多的,所以引數的解會大部分靠近0,表現得更加平滑。