前言:本文包括以下幾個方面,1. 介紹lasso,從最初提出lasso的**出發,注重動機;
2. l1和l2範數的比較,注重l1的稀疏性及魯棒性;
3. 從誤差建模的角度理解l1範數
1. lasso
最早提出lasso的文章,文獻[1],已被引用n多次。
注:對於不曉得怎麼翻譯的英文,直接搬來。
1) 文獻[1]的動機:
在監督學習中,ordinary least squares(ols) estimates 最小化所有資料的平方殘差(即只是讓經驗誤差最小化),存在2個問題:
1是**誤差(prediction accuracy):ols estimates總是偏差小,方差大;
2是可解釋性(interpretation):我們希望選出一些有代表性的子集就ok了。
【lasso還有個缺點,ref8:當p>>n時,(如 醫學樣本,基因和樣本數目),lasso卻最多只能選擇n個特徵】
為了解決上面2個問題,2種技術應運而生:
1是subset selection:其可解釋性強,但**精度可能會很差;
2是嶺回歸(ridge regression):其比較穩定(畢竟是新增了正則化項,把經驗風險公升級為結構風險),
但可解釋性差(只是讓所有coefficients都很小,沒讓任何coefficients等於0)。
看來這2種技術對於2大問題總是顧此失彼,lasso就被提出啦!其英文全稱是'least absolute shrinkage and selection operator'
lasso的目的是:shrink some coefficients and sets others to 0,
保留subset selection可解釋性強的優點 和 ridge regression穩定性強的優點。
2)為什麼lasso相比ridge regression稀疏?
直觀的理解[1]
(a)圖:橢圓形是函式的影象,lasso的約束影象是菱形。
最優解是第一次橢圓線觸碰到菱形的點。最優解容易出現在角落,如圖所示,觸碰點座標是(0,c),等同於乙個coefficient=0;
(b)圖:嶺回歸的約束影象是圓形。
因為圓形沒有角落,所以橢圓線與圓形的第一次觸碰很難是在座標為(0,c)的點,也就不存在稀疏了。
2. l1,l2範數誤差的增長速度(ref2,ref3)
圖1l1範數誤差的線性增長速度使其對大噪音不敏感,從而對不良作用形成一種抑制作用。
而l2範數誤差的二次增長速度 顯著放大了 大雜訊 負面作用。
3. 從誤差建模的角度理解
1)孟德宇老師從誤差建模的角度分析l1如何比l2魯棒。(ref3)
1:看圖1,由於l1範數的線性增長速度使其對大噪音不敏感,從而對其不良影響起到一種隱式抑制,因此相對魯棒。
2:從貝葉斯的角度,看圖2,l1範數誤差對應的拉普拉斯分布比l2範數誤差對應的高斯分布具有更為顯著的「厚尾」狀態,從而其更適合對大幅度噪音的似然描述,
從而導致對大噪音或異常點資料更加穩健的計算效果。
2)1是從誤差建模的角度,涉及這麼個問題:從貝葉斯角度,為什麼l1對應拉普拉斯,l2對應高斯分布呢?
這個問題我糾結了好久,因為rcc**涉及此分析。終於從知乎上找到解析:
對於回歸問題,對w引入先驗分布(高斯分布/拉普拉斯分布) -> 對樣本空間 關於w 求貝葉斯最大後驗估計(map) -> 得到了關於w的嶺回歸/lasso
因此, 對引數引入 高斯先驗/拉普拉斯先驗 等價於 l2正則化/l1正則化
2是參考** ref 7: ( ref6的高階 )
除了高斯先驗、拉普拉斯先驗,還講了其他先驗。
4. ref4
l0範數很難優化求解(np難問題),l1範數是l0範數的最優凸近似,比l0範數容易優化求解。
5. ref5 一篇極好的博文,全面分析了各種範數(l1,l2,核範數,魯棒pca)
參考:[1]《regression shrinkage and selection via the lasso》robert tibshirani
[2] 《improve robustness of sparse pca by l1-norm maximization》 meng deyu et.al
[3] 《誤差建模原理》孟德宇 人工智慧通訊
[4] 《convex optimization》s.boyd (書)
[5] (csdn部落格,總結的很好)
[6] (github部落格)
[7] 《lazy sparse stochastic gradient descent for regularized mutlinomial logistic regression》
[8] 《regularization and variable selection via the elastic net》ppt hui.zou
機器學習中的範數
lo範數是向量中非零元素的數目如果採用l0範數來規劃化乙個引數矩陣的,就是為了讓矩陣稀疏,希望大部分權值都為0。但是,這個術語在數學意義上是不對的,非零元素的數目不是範數,因為對向量縮放 倍不會改變該向量的非零數目。l1範數是向量中各個元素的絕對值的和,也叫做 稀疏規則運算元 l1範數能夠實現權值稀...
機器學習中的範數問題
一 l0範數與l1範數 範數相當於衡量乙個矩陣的大小 l0範數是指向量中非0的元素的個數。如果我們用l0範數來規則化乙個引數矩陣w的話,就是希望w的大部分元素都是0。這太直觀了,太露骨了吧,換句話說,讓引數w是稀疏的。ok,看到了 稀疏 二字,大家都應該從當下風風火火的 壓縮感知 和 稀疏編碼 中醒...
機器學習 正則化項L1範數與L2範數的關係
在學習機器學習過程中,我自己糾結了很久的乙個問題是 l1 norm 和 l2 norm 到底是什麼關係,有什麼區別。l1 和 l2 都是深度學習中常用的正則化項 regularizer 描述的是模型的複雜度,它的作用在於模型越複雜,正則化項越大,將它加在損失函式 loss function 後面作為...