線性迴歸、嶺迴歸、Lasso迴歸
前言
如果對L1和L2正則化,最小二乘法不瞭解的,可以先看我寫的下面兩篇
線性迴歸很簡單,用線性函數擬合數據,用 mean square error (mse) 計算損失(cost),然後用梯度下降法找到一組使 mse 最小的權重。
lasso 迴歸和嶺迴歸(ridge regression)其實就是在標準線性迴歸的基礎上分別加入 L1 和 L2 正則化(regularization)。L1正則化和L2正則化可以看做是 損失函數的懲罰項 。
本文的重點是解釋爲什麼 L1 正則化會比 L2 正則化讓線性迴歸的權重更加稀疏,即使得線性迴歸中很多權重爲 0,而不是接近 0。或者說,爲什麼 L1 正則化(lasso)可以進行 feature selection,而 L2 正則化(ridge)不行
一,線性迴歸——最小二乘
線性迴歸(linear regression),就是用線性函數 去擬合一組數據
並使得損失 最小。線性迴歸的目標就是找到一組,使得損失 J 最小。
線性迴歸的擬合函數(或 hypothesis)爲:
cost function (mse) 爲:
實戰的相關的例子可以看這個連接
[機器學習-原理及實現篇]線性迴歸-最小二乘法推導與實踐代碼
[機器學習-迴歸算法]Sklearn之線性迴歸實戰
二,Lasso迴歸
Lasso 迴歸和嶺迴歸(ridge regression)都是在標準線性迴歸的基礎上修改 cost function,即修改式(2),其它地方不變。
Lasso 的全稱爲 least absolute shrinkage and selection operator,又譯最小絕對值收斂和選擇算子、套索算法。
Lasso 迴歸對式(2)加入 L1 正則化,其 cost function 如下:
三,嶺迴歸
嶺迴歸對式(2)加入 L2 正則化,其 cost function 如下:
四, Lasso迴歸和嶺迴歸的同和異
- 相同:都可以用來解決標準線性迴歸的過擬合問題。
- 不同:
lasso 可以用來做 feature selection,而 ridge 不行。或者說,lasso 更容易使得權重變爲 0,而 ridge 更容易使得權重接近 0。
從貝葉斯角度看,lasso(L1 正則)等價於參數 w 的先驗概率分佈滿足拉普拉斯分佈,而 ridge(L2 正則)等價於參數 w 的先驗概率分佈滿足高斯分佈。具體參考博客 從貝葉斯角度深入理解正則化 – Zxdon。
也許會有個疑問,線性迴歸還會有過擬合問題?
加入 L1 或 L2 正則化,讓權值儘可能小,最後構造一個所有參數都比較小的模型。因爲一般認爲參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。
可以設想一下對於一個線性迴歸方程,若參數很大,那麼只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什幺影響,一種流行的說法是『抗擾動能力強』。具體參見博客 。淺議過擬合現象(overfitting)以及正則化技術原理
五, 爲什麼 lasso 更容易使部分權重變爲 0 而 ridge 不行?
式(5)和(6)可以理解爲,在 w 限制的取值範圍內,找一個點 w^ 使得 mean square error 最小,t 可以理解爲正則化的力度,式(5)和(6)中的 t 越小,就意味着式(3)和(4)中 λ 越大,正則化的力度越大 。
以 x∈R2 爲例,式(5)中對 w 的限制空間是方形,而式(6)中對 w 的限制空間是圓形。因爲 lasso 對 w 的限制空間是有棱角的,因此
的解更容易切在 w 的某一個維爲 0 的點。如下圖所示:
Fig. 1 中的座標系表示 w 的兩維,一圈又一圈的橢圓表示函數
的等高線,橢圓越往外,J 的值越大, 表示使得損失 J 取得全局最優的值。使用 Gradient descent,也就是讓 w 向着 w∗ 的位置走。如果沒有 L1 或者 L2 正則化約束, 是可以被取到的。但是,由於有了約束 或 ,w 的取值只能限制在 Fig. 1 所示的灰色方形和圓形區域。當然調整 t 的值,我麼能夠擴大這兩個區域。
等高線從低到高第一次和 w 的取值範圍相切的點,即是 lasso 和 ridge 迴歸想要找的權重 。
lasso 限制了 w 的取值範圍爲有棱角的方形,而 ridge 限制了 w 的取值範圍爲圓形,等高線和方形區域的切點更有可能在座標軸上,而等高線和圓形區域的切點在座標軸上的概率很小。這就是爲什麼 lasso(L1 正則化)更容易使得部分權重取 0,使權重變稀疏;而 ridge(L2 正則化)只能使權重接近 0,很少等於 0。
正是由於 lasso 容易使得部分權重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一個 selection operator。權重爲 0 的 feature 對迴歸問題沒有貢獻,直接去掉權重爲 0 的 feature,模型的輸出值不變。
對於 ridge regression 進行 feature selection,你說它完全不可以吧也不是,weight 趨近於 0 的 feature 不要了不也可以,但是對模型的效果還是有損傷的,這個前提還得是 feature 進行了歸一化。\
參考資料
[1] https://flashgene.com/archives/11824.html