一、范數
L1、L2這種在機器學習方面叫做正則化,統計學領域的人喊她懲罰項,數學界會喊她范數。
L0范數 表示向量xx中非零元素的個數。
L1范數 表示向量中非零元素的絕對值之和。
L2范數 表示向量元素的平方和再開平方
在p范數下定義的單位球(unit ball)都是凸集(convex set,簡單地說,若集合A中任意兩點的連線段上的點也在集合A中,則A是凸集),但是當0<p<1時,在該定義下的unit ball並不是凸集(注意:我們沒說在該范數定義下,因為如前所述,0<p<1時,並不是范數).下圖展示了p取不同值時unit ball的形狀

二、正則化
L1正則化,又叫Lasso Regression
如下圖所示,L1是向量各元素的絕對值之和

L2正則化,又叫Ridge Regression
如下圖所示,L2是向量各元素的平方和

對於上面的兩種情況做一下簡單推廣,可以得到更為一般的形式:

上式前半部分為原有的損失函數,后半部分為正則項。其中,q=1時即為L1正則化,q=2為L2正則化。
三、lasso和ridge回歸
Lasso Regresssion
Lasso Regresssion使用的就是L1正則化, 下面就是Lasso Regression 的Loss Function的樣子,是不是很美麗:

公式(1)
注:β0是常數項
簡單說一下,第一個SUM(∑)里面可以看出來是一個線性回歸求損失平方,第二個SUM(∑)是線性回歸中系數的服從條件,用來約束解的區域,凸優化中的約束求解一般都長這個樣子。
此外,Lasso Regression的整體損失求極小的樣子改成拉格朗日形式就是下面這個式子的模樣:

公式(2)
從式子里可以看到回歸系數使用的是L1正則化,λ是懲罰參數或者叫做調節參數。L1范數的好處是當懲罰參數充分大時可以把某些待估的回歸系數精確地收縮到0。
Lasso以縮小變量集(降階)為思想,是一種收縮估計方法。Lasso方法可以將變量的系數進行壓縮並使某些回歸系數變為0,進而達到變量選擇的目的,可以廣泛的應用於模型改進與選擇。我們通過選擇懲罰函數,借用Lasso思想和方法實現變量選擇的目的。
在建立模型之初,為了盡量減小因缺少重要自變量而出現的模型偏差,通常會選擇盡可能多的自變量。然而,建模過程需要尋找對因變量最具有強解釋力的自變量集合,也就是通過自變量選擇(指標選擇、字段選擇)來提高模型的解釋性和預測精度。指標選擇在統計建模過程中是極其重要的問題。Lasso算法則是一種能夠實現指標集合精簡的估計方法。
公式(1)理解:
lasso estimate具有shrinkage和selection兩種功能,shrinkage這個不用多講,本科期間學過回歸分析的同學應該都知道嶺估計會有shrinkage的功效,lasso也同樣。關於selection功能,Tibshirani提出,當t值小到一定程度的時候,lasso estimate會使得某些回歸系數的估值是0,這確實是起到了變量選擇的作用。當t不斷增大時,選入回歸模型的變量會逐漸增多,當t增大到某個值時,所有變量都入選了回歸模型,這個時候得到的回歸模型的系數是通常意義下的最小二乘估計。從這個角度上來看,lasso也可以看做是一種逐步回歸的過程。
模型選擇本質上是尋求模型稀疏表達的過程,而這種過程可以通過優化一個“損失”+“懲罰”的函數問題來完成。
這里公式(1)和公式(2)的λ和t是一一對應關系。
公式(2)中的λ是重要的設置參數,它控制了懲罰的嚴厲程度,如果設置得過大,那么最后的模型參數均將趨於0,形成擬合不足。如果設置得過小,又會形成擬合過度。
λ求法
通常使用交叉驗證法(CV)或者廣義交叉驗證(GCV),當然也可以使用AIC、BIC等指標。
交叉驗證法:對λ的格點值,進行交叉驗證,選取交叉驗證誤差最小的λ值。最后,按照得到的λ值,用全部數據重新擬合模型即可。
對參數引入 拉普拉斯先驗 等價於 L1正則化。
(根據斜率可以發現l1在小的時候懲罰力度還很大)

RidgeRegression 嶺回歸
嶺回歸使用的是L2正則化,下面的式子就是Ridge Regression的Loss Function 的美麗容顏:

式子的最后面是L2正則項,系數的平方和。上式的等價問題如下:


最小二乘估計是最小化殘差平方和(RSS):
嶺回歸在最小化RSS的計算里加入了一個收縮懲罰項(正則化的l2范數)
這個懲罰項中lambda大於等於0,是個調整參數。各個待估系數越小則懲罰項越小,因此懲罰項的加入有利於縮減待估參數接近於0。
重點在於lambda的確定,可以使用交叉驗證或者Cp准則。
對參數引入 高斯先驗 等價於L2正則化

鏈接·:http://blog.csdn.net/SzM21C11U68n04vdcLmJ/article/details/78138887
四、 L1和L2正則化的異同
1. L2 regularizer :使得模型的解偏向於 norm 較小的 W,通過限制 W 的 norm 的大小實現了對模型空間的限制,從而在一定程度上避免了 overfitting 。不過 ridge regression 並不具有產生稀疏解的能力,得到的系數仍然需要數據中的所有特征才能計算預測結果,從計算量上來說並沒有得到改觀。
2. L1 regularizer : 它的優良性質是能產生稀疏性,導致 W 中許多項變成零。 稀疏的解除了計算量上的好處之外,更重要的是更具有“可解釋性”。
lasso regression和ridge regression比較:
這兩種方法的共同點在於,將解釋變量的系數加入到Cost Function中,並對其進行最小化,本質上是對過多的參數實施了懲罰。
而兩種方法的區別在於懲罰函數不同。但這種微小的區別卻使LASSO有很多優良的特質(可以同時選擇和縮減參數)。
嶺回歸的一個缺點:在建模時,同時引入p個預測變量,罰約束項可以收縮這些預測變量的待估系數接近0,但並非恰好是0(除非lambda為無窮大)。這個缺點對於模型精度影響不大,但給模型的解釋造成了困難。這個缺點可以由lasso來克服。(所以嶺回歸雖然減少了模型的復雜度,並沒有真正解決變量選擇的問題) 。具體可以看上面ridge參數選取圖

可以看到,L1-ball 與L2-ball 的不同就在於L1在和每個坐標軸相交的地方都有“角”出現,而目標函數的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置就會產生稀疏性,例如圖中的相交點就有w1=0,而更高維的時候(想象一下三維的L1-ball 是什么樣的?)除了角點以外,還有很多邊的輪廓也是既有很大的概率成為第一次相交的地方,又會產生稀疏性。
L2正則項作用是限制權重W過大,且使得權重W分布均勻。而L1正則項傾向於得到離散的W,各W之間差距較大。
五、特征選擇
當我們使用數據訓練分類器的時候,很重要的一點就是要在過度擬合與擬合不足之間達成一個平衡。
防止過度擬合的一種方法就是對模型的復雜度進行約束。模型中用到解釋變量的個數是模型復雜度的一種體現。
控制解釋變量個數有很多方法,例如特征選擇(feature selection),即用filter或wrapper方法提取解釋變量的最佳子集。
或是進行特征構造(feature construction),即將原始變量進行某種映射或轉換,如主成分方法和因子分析。
特征選擇的方法是比較“硬”的方法,變量要么進入模型,要么不進入模型,只有0-1兩種選擇。
但也有“軟”的方法,也就是Regularization類方法,例如嶺回歸(Ridge Regression)和套索方法(LASSO:least absolute shrinkage and selection operator)
鏈接: 回歸系列之L1和L2正則化
