怎麼理解在模型中使用L1+L2正則化?
L1正則化使得模型更加稀疏,L2使得模型參數更趨近於0,提高泛化能力。
如果同時使用L1和L2正則化呢?會有什麼樣的效果?
提到L1和L2範數的問題,必然聯繫到Elastic Net(Zou.H.,Hastie,T.(2005).Regularization and variable selection via the elastic net.Journal of the Royal Statistical Society:Series B (Statistical Methodology),67(2),301-320.)以及LASSO(Least absolute shrinkage and selection operator, Tibshirani(1996))。樓上的 @千面人和 @徐方鑫都已經給出了聯接。建議樓主詳細的讀一下。
在這裡,我想簡單談下自己的理解,其實就是樓上各種答案串了一下。
首先,標準的LASSO問題是最小化一個L2範數和一個L1範數。簡單看,Elastic Net regularization在此基礎又增加了一個L2範數,即向係數的L2範數。也就是說LASSO 沒有加入lambda2這一項。樓主提到了L1讓模型稀疏,L2讓參數更接近於0。這個理解是很到位的。這裡具體分析一下。(這裡給出一篇博文,裡面形象的給出了幾種範數的解釋,機器學習中的範數規則化之(一)L0、L1與L2範數)
首先,L1範數近似求解L0範數,實現稀疏化。 為什麼L1可以實現稀疏化,這要從L0(0範數)說起。L0範數表示向量中非零元素的個數。Donoho證明了在完備字典構成的矩陣滿足一定條件的時候,L0範數優化問題是有解的,而且是唯一解。這樣的稀疏化即直觀(稀疏就是讓變數變少,也就是很多變數的係數變為0),同時還有唯一解,為什麼不用L0範數,費用L1呢。很簡單,L0範數優化求解問題(L0範數最小化)屬於NP難問題(靠,又是這個東西)。當然,你可以用BMP,ROMP,OMP,OOMP,ORMP,SAMP等去求解L0問題。然而,這些求解方法都是基於貪婪演算法,效率很低,也就是說了等於白說。這時候,人類出大招了,Tao和Candes提出了近似求解該問題的方案,證明了在求解向量足夠稀疏的情況下,L0範數優化問題等價於L1範數優化問題,即各向量分量絕對值之和。這樣在多項式時間內就可以求解了,方法很多,不贅述了。總之,L1主要追求了稀疏化,對應的作為犧牲,則不能保證數據對象接近稀疏表示y,也就是說數據對象間的局部結構特徵沒有完全地體現出來。這也是LASSO的一個不足之處。其次,簡單看一下L2範數。L2範數可以簡單理解為歐式距離,及向量各分量差的平方和再開方(初中代數求兩點距離公式)。如果單純的對應ELastic Net中右面第二項,自然是讓beta盡量接近於0。而對應Elastic Net右邊第一項,則是讓y盡量接近。(這裡就要小心overfit了。)
為了解決L1沒有保留數據對象間局部結構特徵的問題,wang et al.,2010中的LLC(Locality-constrained Liner Coding)引入了距離懲罰的L2範數替代L1範數。這樣產生的係數向量就平滑了。但隨之而來的就是新的問題,LLC不能產生稀疏的係數向量。(靠,又白乾了?)最後,樓主的問題:如果同時使用L1和L2正則化呢?會有什麼樣的效果? 同時引入L1,L2後,變成經典的Elatic Net問題,樓上給的鏈接已經說得很清楚。簡單總結成一句話來回答:就是說通過正則化參數lambda1和lambda2的大小調節L1範數和L2範數的權重,來平衡稀疏和光滑兩個問題。問題的關鍵就變成了參數的設定。這一點 @卡牌大師已經提到了。到最後,問題可能就是演變成了如何確定參數。 同樣的問題,除了Zou他們給出的問題,在稀疏表示,高維數據或者字典學習中也都有涉及。樓主可以自己找個例子,寫個代碼跑跑試試,個人感覺還是落到了參數的設定上面。wiki講得不清楚,懶的看elastic-net論文的話就看zou和Hastie的slides好了:http://web.stanford.edu/~hastie/TALKS/enet_talk.pdf
這個slides主要對比了lasso和e-net以及e-net在pca和svm的應用同時使用L2和L1應該就是Elastic net regularization,詳細可以看下wiki:Elastic net regularization
elastic net 的提出 是為了 可以解決feature之間的 高相關性 問題,單純Lasso 一般會在一個 高相關性 的 特徵group 裡面選取一個顯著特徵, zou 的paper 裡面有相關證明。 當然解決 高相關性的方法還有 group lasso , general fused lasso 等
從幾何解釋來講 elastic net 很像 L1 到 L2 之間一個 penalty, 但不同之處在於 elastic net 具有 L1 的特性,sparsity, 函數並不是smooth 的。這個具體可以參考 Element of statistical learning 的第三章。
沒有人提online learning里被用爛了的ftrl么...是可以在線處理同時含有l1 l2正則的優化問題的
同時使用就是elastic-net。簡單的來說這就是對L1和L2的trade-off,難點在於你要設置多個參數。
我嘗試使用grid-search去尋求最佳參數,但是實驗效果一般,並沒有提升我模型的效果。
通常情況下我個人覺得一個懲罰公式就差不多了,它會明顯的解決overfitting 。
另外,現在正則化已經不止L1和L2這兩種了,有人提出了更加複雜的公式。我嘗試過,感覺效果沒什麼提升!可能是我用的不好
坐等其他大神回答推薦閱讀:
※支持向量機(SVM)方法在預測方面有什麼優缺點?
※點擊率模型中遞進特徵適合一起訓練嗎?
※深度學習領域有哪些瓶頸?
※搞架構和搞演算法,哪個更牛一些?
※用「機器學習」做「股票預測」能做到什麼程度?