1. 程式人生 > >L0、L1、L2、Elastic Net正則項

L0、L1、L2、Elastic Net正則項

先介紹下各自的用處:

L0範數:就是指矩陣中非零元素的個數,很顯然,在損失函式後面加上L0正則項就能夠得到稀疏解,但是L0範數很難求解,是一個NP問題,因此轉為求解相對容易的L1範數(l1能夠實現稀疏性是因為l1是L0範數的最優凸近似
這裡寫圖片描述

L1範數:矩陣中所有元素的絕對值的和。損失函式後面加上L1正則項就成了著名的Lasso問題(Least Absolute Shrinkage and Selection Operator),L1範數可以約束方程的稀疏性,該稀疏性可應用於特徵選擇:
比如,有一個分類問題,其中一個類別Yi(i=0,1),特徵向量為Xj(j=0,1~~~1000),那麼構造一個方程
Yi = W0*X0+W1*X1···Wj*Xj···W1000*X1000+b;
其中W為權重係數,那麼通過L1範數約束求解,得到的W係數是稀疏的,那麼對應的X值可能就是比較重要的,這樣就達到了特徵選擇的目的(該例子是自己思考後得出的,不知道正不正確,歡迎指正)。

L2範數
其實就是矩陣所有元素的平方和開根號,即歐式距離,在迴歸問題中,在損失函式(或代價函式)後面加上L2正則項就變成了嶺迴歸(Ridge Regression),也有人叫他權重衰減,L2正則項的一個很大的用處就是用於防止機器學習中的過擬合問題,同L1範數一樣,L2範數也可以對方程的解進行約束,但他的約束相對L1更平滑,在模型預測中,L2往往比L1好。L2會讓W的每個元素都很小,接近於0,但是不會等於0.而越小的引數模型越簡單,越不容易產生過擬合,以下引自另一篇文章:
到目前為止,我們只是解釋了L2正則化項有讓w“變小”的效果(公式中的lamda越大,最後求得的w越小),但是還沒解釋為什麼w“變小”可以防止overfitting?一個所謂“顯而易見”的解釋就是:更小的權值w,從某種意義上說,表示網路的複雜度更低,對資料的擬合剛剛好(這個法則也叫做奧卡姆剃刀),而在實際應用中,也驗證了這一點,L2正則化的效果往往好於未經正則化的效果。當然,對於很多人(包括我)來說,這個解釋似乎不那麼顯而易見,所以這裡新增一個稍微數學一點的解釋:

過擬合的時候,擬合函式的係數往往非常大,為什麼?如下圖所示,過擬合,就是擬合函式需要顧忌每一個點,最終形成的擬合函式波動很大。在某些很小的區間裡,函式值的變化很劇烈。這就意味著函式在某些小區間裡的導數值(絕對值)非常大,由於自變數值可大可小,所以只有係數足夠大,才能保證導數值很大。
這裡寫圖片描述

而正則化是通過約束引數的範數使其不要太大,所以可以在一定程度上減少過擬合情況。

彈性網路(Elastic Net):實際上是L1,L2的綜合

這裡寫圖片描述

其中的L1正則項產生稀疏模型
L2正則項產生以下幾個作用:
1 消除L1正則項中選擇變數個數的限制(即稀疏性)
2 產生grouping effect(對於一組相關性較強的原子,L1會在相關的變數間***隨機***的選擇一個來實現稀疏)
3 穩定L1正則項的路徑
整理後的正則項:

這裡寫圖片描述

e lastic net 的幾何結構:

這裡寫圖片描述

其結構有如下兩個特點:
1 在頂點具有奇異性(稀疏性的必要條件)
2 嚴格的凸邊緣(凸效應的強度隨著α而變化(產生grouping效應))

elastic net總結:
1 彈性網路同時進行正則化與變數選擇
2 能夠進行grouped selection
3 當p>>n,或者嚴重的多重共線性情況時,效果明顯
4 當α接近0時,elastic net表現接近lasso,但去掉了由極端相關引起的退化或者奇怪的表現
5 當α從1變化到0時,目標函式的稀疏解(係數為0的情況)從0增加到lasso的稀疏解

L1 L2區別總結:
加入正則項是為了避免過擬合,或解進行某種約束,需要解保持某種特性
L1正則假設引數的先驗分佈是Laplace分佈,可以保證模型的稀疏性,也就是某些引數等於0,L1正則化是L0正則化的最優凸近似,比L0容易求解,並且也可以實現稀疏的效果,
L1也稱Lasso;

L2正則假設引數的先驗分佈是Gaussian分佈,可以保證模型的穩定性,也就是引數的值不會太大或太小.L2範數是各引數的平方和再求平方根,我們讓L2範數的正則項最小,可以使W的每個元素都很小,都接近於0。但與L1範數不一樣的是,它不會是每個元素為0,而只是接近於0。越小的引數說明模型越簡單,越簡單的模型越不容易產生過擬合現象。

L2正則化江湖人稱Ridge,也稱“嶺迴歸”

在實際使用中,如果特徵是高維稀疏的,則使用L1正則;如果特徵是低維稠密的,則使用L2正則。
L2不能控制feature的“個數”,但是能防止模型overfit到某個feature上;相反L1是控制feature“個數”的,並且鼓勵模型在少量幾個feature上有較大的權重。