今天我們來講講一個理論知識,也是老生常談的內容,在模型開發相關崗位中出場率較高的,那就是L1與L2正則化了,這個看似簡單卻十分重要的概念,還是需要深入了解的。網上有蠻多的學習資料,今天我就著自己的理解也寫一下筆記。
從西瓜書裡我們可以了解到正則項的作用,那就是降低模型過擬合的風險,通常常用的有L1範數正則化與L2範數正則化,作為單獨一項(正則項)加入到損失函數中,也可以自己作為損失函數。
在了解L1和L2範數之前,我們可以先來了解一下範數(norm)的定義,根據參考文獻[2]的說明:A norm is a mathematical thing that is applied to a vector (like the vector β above). The norm of a vector maps vector values to values in [0,∞). In machine learning, norms are useful because they are used to express distances: this vector and this vector are so-and-so far apart, according to this-or-that norm.簡單來說也就是範數其實在 [0,∞)範圍內的值,是向量的投影大小,在機器學習中一般會勇于衡量向量的距離。範數有很多種,我們常見的有L1-norm和L2-norm,其實還有L3-norm、L4-norm等等,所以抽象來表示,我們會寫作Lp-norm,一般表示為
:對於上面這個抽象的公式,如果我們代入p值,若p為1,則就是我們常說的L1-norm:我們引用文章裡的圖片,L2-norm的距離就是兩個黑點之間的綠線,而另外的3條線,都是L1-norm的大小。
在上面我們有提及到,L1、L2範數可以用於損失函數裡的一個正則化項,作用就是降低模型複雜度,減小過擬合的風險。這裡的正則化項,存在的目的就是作為一個「懲罰項」,對損失函數中的某一些參數做一些限制,是結構風險最小化策略的體現,就是選擇經驗風險(平均損失函數)和模型複雜度同時較小的模型。
針對線性回歸模型,假設對其代價函數裡加入正則化項,其中L1和L2正則化項的表示分別如下所示,其中λ >= 0,是用來平衡正則化項和經驗風險的係數。
(1)使用L1範數正則化,其模型也被叫作Lasso回歸(Least Absolute Shrinkage and Selection Operator,最小絕對收縮選擇算子)。(2)使用L2範數正則化,其模型被叫做Ridge回歸,中文為嶺回歸。上面介紹的L1和L2範數正則化都有著降低過擬合風險的功能,但它們有什麼不同?我們到底應該選擇哪一個呢,兩者之間各有什麼優勢和適用場景?別急,我們一一來展開講講。 Q1:L1和L2正則化項的區別?首先,我們從上面那張二維的圖可以看出,對於L2-norm,其解是唯一的,也就是綠色的那條;而對於L1-norm,其解不唯一,因此L1正則化項,其計算難度通常會高於L2的。
其次,L1通常是比L2更容易得到稀疏輸出的 ,會把一些不重要的特徵直接置零,至於為什麼L1正則化為什麼更容易得到稀疏解,可以看下圖:
上圖代表的意思就是目標函數-平方誤差項的等值線和L1、L2範數等值線(左邊是L1),我們正則化後的代價函數需要求解的目標就是在經驗風險和模型複雜度之間的平衡取捨,在圖中形象地表示就是黑色線與彩色線的交叉點。
對於L1範數,其圖形為菱形,二維屬性的等值線有4個角(高維的會有更多),「突出來的角」更容易與平方誤差項進行交叉,而這些「突出來的角」都是在坐標軸上,即W1或則W2為0;
而對於L2範數,交叉點一般都是在某個象限中,很少有直接在坐標軸上交叉的。
因此L1範數正則化項比L2的更容易得到稀疏解。
Q2:各有什麼優勢,如何作選擇?直接上結論:
1)因為L1範數正則化項的「稀疏解」特性,L1更適合用於特徵選擇,找出較為「關鍵」的特徵,而把一些不那麼重要的特徵置為零。
2)L2範數正則化項可以產生很多參數值很小的模型,也就是說這類的模型抗幹擾的能力很強,可以適應不同的數據集,適應不同的「極端條件」。
講完了作為正則化項的內容了,那麼講講L1、L2範數作為損失函數的情況。假設我們有一個線性回歸模型,我們需要評估模型的效果,很常規的,我們會用「距離」來衡量誤差!
若使用L1-norm來衡量距離,那就是我們的LAD(Least Absolute Deviation,最小絕對偏差),其優化的目標函數如下:
若使用L2-norm,那就是我們的LSE(Least Squares Error,最小二乘誤差),其優化的目標函數如下:L1損失函數的結果更具魯棒性,也就是說對於異常值更加不敏感。而根據其範數「天性」,L2的求解更為簡單與「唯一」。
Reference
[1] Differences between L1 and L2 as Loss Function and Regularization
http://www.chioka.in/differences-between-l1-and-l2-as-loss-function-and-regularization/
[2] L1 Norms versus L2 Norms
https://www.kaggle.com/residentmario/l1-norms-versus-l2-norms