[機器學習-原理篇]學習之線性迴歸、嶺迴歸、Lasso迴歸

前言

如果對L1和L2正則化,最小二乘法不瞭解的,可以先看我寫的下面兩篇

  1. 正則化項L1和L2的總結
  2. 一元線性迴歸用最小二乘法的推導過程
  3. [機器學習-原理及實現篇]線性迴歸-最小二乘法

線性迴歸很簡單,用線性函數擬合數據,用 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),就是用線性函數 f(x)=wx+bf(x)=w^⊤x+b去擬合一組數據
D=(x1,y1),(x2,y2),...,(xn,yn)D={(x_1,y_1),(x_2,y_2),...,(x_n,y_n)} 並使得損失 J=1ni=1n(f(xi)yi)2J=\frac{1}{n}\sum^{n}_{i=1}(f(x_i)−y_i)^2 最小。線性迴歸的目標就是找到一組(w,b)(w^∗,b^∗),使得損失 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 的值越大,ww^∗ 表示使得損失 J 取得全局最優的值。使用 Gradient descent,也就是讓 w 向着 w∗ 的位置走。如果沒有 L1 或者 L2 正則化約束,ww^∗ 是可以被取到的。但是,由於有了約束 w1t∥w∥_1≤tw22t∥w∥^2_2≤t,w 的取值只能限制在 Fig. 1 所示的灰色方形和圓形區域。當然調整 t 的值,我麼能夠擴大這兩個區域。

等高線從低到高第一次和 w 的取值範圍相切的點,即是 lasso 和 ridge 迴歸想要找的權重 w^\hat{w}

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章