Linear least squares, Lasso,ridge regression有何本質區別?

時間 2021-05-10 16:57:55

1樓:蕭蕭白馬

看到很多的回答都從優化、機器學習演算法的角度考慮。

我可以從經濟學的角度講講。

大概涉及「邊際效用」,明日更新。

對於ridga, 損失函式為:

sum (y - bx)^2 + gamma b^2,根據KKT條件,b需要滿足一階導數為0,即:

sum 2 (y - bx) x = 2 gamma b,其中,等式左邊為b對loss的邊際效用, 右邊是b關於懲罰項的邊際效用。

在ridge回歸中,我們要求,如果引數b越大,它對loss的邊際貢獻應該更大(2 gamma b)。同樣,如果引數b很小,我們只要求它對loss有較小的邊際貢獻。 因此,通常在ridge中,b不會被優化為0,因為對於較小的b,我們只期望它有較小的邊際貢獻。

對於lasso, 損失函式為:

sum (y - bx)^2 + gamma |b|,對應的一階條件是:

sum 2 (y - bx) x = gamma sign(b).

這種情況下,我們期待b的邊際貢獻的大小不因b的取值大小而改變。 所以,lasso會把ridge中較小的引數變為0,但也會比ridge容忍更大的引數。

2樓:

與諸位理解略有所不同,個人認為l1 和 l2的乙個區別是他們對權重的整體效果不同。l1和l2都有乙個效果,就是收縮權重,但是如何收縮卻很有區別。l1在收縮的時候權重會集中,l2卻是分散。

比如原始權重為[0,0.5,0,0.5],這裡先不考慮收縮,l1會變為[0,0,0,1],而l2為[0.

25,0.25,0.25,0.

25],這也和他們本身的形式是對應的,l1會出現稀疏解,l2會讓平方和變小。而l1往往是為了稀疏而提取特徵。而elastic則是為了讓l1也具有更好的過擬合效能而存在的。

3樓:張晉

Lasso:

Lasso用到的是帶L1約束的最小二乘法,期望得到的W是稀疏的,從貝葉斯觀點來看,就是先給W假設了乙個峰值很尖銳且接近0的分布,而L1懲罰項對應的是Laplace分布

Ridge regression:

Lasso用到的是帶L2約束的最小二乘法,只是期望W的均值能靠近0,所以先驗分布的峰值也為0,但相比Laplace分布要更平緩一些,取的是高斯分布

Linear least squares:

而Linear least squares用到的是最簡單的最小二乘法,對W沒有要求,因此也就沒有取先驗分布,僅僅在x,y的條件下取極大似然估計。

4樓:yujiao li

鑑於各種專業術語,我這就逗逼一下:

故事是這樣的:我們的自變數中,有些不中用,有些長得跟別人一樣(多重共線)。那怎麼把沒用的自變數搞死,把那些copy別人明星臉的搗蛋自變數拆穿呢?

Ridge的出場就是因為那些整容女變數的,和人家長得一樣,導致這個模型的估計不穩定,即:換一套資料,變數的係數估計就相差巨大,有時候大到不可理喻。那咋整呢?

給扣個帽子!你不是大麼,我設定個門檻,太大就滾吧。 所以樓上畫的那個以原點為圓心的圈,就是限制係數不能出圈的意思。

Lasso的故事,大家都說了叫變數選擇。那怎麼個選擇法子呢?還是上面那個例圖,它不是不讓出圈,是不讓出那個正方形的牢籠。

大家問了,不就是圈和方形的差別,有啥大不了的?我就說,其實大了去了,你想啊:其實為了讓殘差小,我們得到的beta係數估計值其實都是在圓圈或者方形的邊界上的,而lasso是取得四個角上的值,則必有橫座標,或者縱座標為0.

為零的那個倒霉的係數就這樣被剔除出局了,官方說法叫變數選擇。而相比人家ridge很圓滑的處世之道了,也就是讓那些不中用的傢伙係數渺小而已,不徹底搞死到0。

5樓:

Lasso是一階正則化,嶺回歸是二階。lasso的出發點是減少overfit,而嶺回歸一般認為是處理多重共線性的一種做法,當然它也有降低overfit的作用。lasso實際上是挑選自變數的一種做法,嶺回歸是壓縮某些係數。

二者都會在訓練集上放大誤差,但是均能在測試集上減小估計誤差(理論上)。

6樓:mathphobia

本質就是有無罰項和什麼形式的罰。

其實主要看l1罰的作用即可,對於無罰的約束問題,假設其存在乙個靠近0的極值點x0,顯然x0使其目標函式的導數接近於0。

加了l1罰之後,若只考慮l1罰的極值點,顯然是0,弱導數也是其係數,起主導作用。

而l2的導數在x0附近依然很小,基本不影響原約束問題導數的值。

7樓:

很多回答都很全面了,大意就是lasso在優化過程的目標函式中使用如下的L1 penalty:

從而把一些線性回歸項的係數「逼成」零;ridge是用L2 penalty,旨在把係數變得小一些,但非完全成零。兩者原理上的區別可由下圖表示:

不難看出由於L1 penalty規定的範圍「四四方方、有稜有角」,所以最優解的係數會被剛好縮成零,因此lasso可以實現對變數的選擇(係數為零的變數就被篩掉了)。

有趣的是,我們還可以將所有變數分組,然後在目標函式中懲罰每一組的L2範數,這樣達到的效果就是可以將一整組的係數同時消成零,即抹掉一整組的變數,這種手法叫做group lasso,其目標函式如下:

其中我們把所有變數分為 組,第一項是通常的OLS,第二項是每一組係數的L2範數之和。這裡, 控制整體懲罰的力度,是每一組的加權,可以按需調節。

比如乙個regression若有10個係數 ,我們如果選擇將其分成2組:其中 一組, 一組。那麼group lasso的懲罰專案將會是:

通過施加group-wise的L2 penalty,我們有可能促使 或者 。

最後,還有一種lasso和group lasso的奇葩結合,叫做sparse group lasso,由 Simon et al 在2023年提出,sparse group lasso的目標函式(如下)的懲罰項中,既有所有係數的L1範數,又有每一組係數的L2範數

其中 依然控制總體的懲罰力度,有新引入 控制兩個懲罰項之間的相互強弱。所以sparse group lasso既可以把係數和變數一組一組地篩掉,又可以在剩下的組中篩掉一些單個的係數,原理圖如下:

當然了,這只是在簡單OLS背景下的lasso、ridge、和group lasso和sparse group lasso,更常用的目標函式的第一項一般是log likelihood(用於maximum likelihood手法)。相似的概念也可以遷移到其他場景,比如因子分析模型(factor analysis model),其中group lasso可以幫助進行對可被觀測的變數選取,而sparse group lasso可以選取隱藏因子,我統計的thesis做的就是這個啦。

8樓:DeviliveD

The difference essentially hides in Tuning parameter lambda for those three methods, which is all about answering the following question:

"How much do you like to pay, for coefficients being non-zero?"

9樓:楊軍

線性回歸問題是很經典的機器學習問題了。

適用的方法也蠻多,有標準的Ordinary Least Squares,還有帶了L2正則的Ridge Regression以及L1正則的Lasso Regression。

這些不同的回歸模型的差異和設計動機是什麼?

我在這裡的回答更多是乙個知識性的總結,在Scott Young的《如何高效學習》[6]裡提到高效學習的幾個環節: 獲取、理解、拓展、糾錯、應用、測試。

在我來看,用自己的語言對來整理對乙個問題的認識,就是理解和擴充套件的一種形式,而發在這裡也算是一種應用、測試兼顧糾錯的形式了。

首先來看什麼是回歸問題,直白來說,就是給定

其中對映函式

未知,但是我們手上有一堆資料樣本,形式如下:

我們期望從資料樣本裡推斷出對映函式

,滿足即期望推斷出的對映函式在資料樣本上與真實目標的期望差異盡可能最小化。

通常來說,資料樣本中每個樣本的出現頻率都可以認為是1,而我們要推斷的對映函式可以認為是

乙個線性函式

其中就是我們要推斷的關鍵引數了。

這樣的問題就是線性回歸(Linear Regression)問題。

Ordinary Linear Square的求解方法很直白,結合上面的描述,我們可以將

具像化為求解函式

的最小值以及對應的關鍵引數。

對於這個目標函式,我們可以通過求導計算[2],直接得出解析解如下 :

當然,這是乙個典型的Convex優化問題,也可以通過迭代求優的演算法來進行求解,比如Gradient Descent或者Newton法[2]。

看起來不錯,那麼為什麼我們還要在OLS的基礎上提供了Ridge Regression(L2正則)和Lasso Regression(L1正則)呢?

如果說得籠統一些的話,是為了避免over-fit,如果再深入一些,則可以這樣來理解:

不引入正則項的OLS的解很可能會不stable,具體來說,兩次不同的取樣所採集到的訓練資料,用於訓練同乙個線性回歸模型,訓練資料的些微差異,最終學出的模型差異可能是巨大的。在[3]裡有乙個例子:

還是在[3]裡,提供了乙個定量的證明:

結果的證明細節,有興趣的同學可以自己去查閱,這裡直接把關鍵點引用如下:

乙個有名的病態矩陣是Hilbert矩陣[4],其形如下:

差。想象一下,今天訓練出來的模型跟明天訓練出的模型,存在明顯的模型權值差異,這看起來並不是一件非常好的事情。

那麼病態陣的根本原因是什麼呢?條件數的描述還是相對有些抽象,所以這裡又引入了奇異陣的概念。

什麼是奇異陣呢?

形式化來說,不存在逆矩陣的方陣(因為OLS的閉式解裡,需要求逆的矩陣是

那麼再具體一些,什麼樣的方陣會不存在逆呢?

非滿秩、矩陣的特徵值之和為0、矩陣的行列式為0。

滿足這三個條件中的任意乙個條件,即可推出方陣為奇異陣,不可求逆,實際上這三個條件是可以互相推導出來的。

而我們又知道,乙個方陣的逆矩陣可以通過其伴隨矩陣和行列式求出來[7]

從這裡,其實可以看的出來,對於近似奇異陣,其行列式非常接近於0,所以

會是乙個非常大的數,這其實反映出來就是在計算A的逆矩陣時,伴隨矩陣上的些微變化,會被很大程度上放大,就會導致多次取樣出來的訓練資料,學出的模型差異很大,這是除了上面提到的條件數以外的另一種比較形象的解釋了。

如果模擬普通代數的話,奇異陣就好比是0,0不存在倒數,越接近0的數,其倒數越大,同樣,奇異陣不存在逆矩陣,而接近奇異陣的逆矩陣的波動也會比較大。

所以跟奇異陣有多像(數學語言裡稱為near singularity),決定了我們的線性回歸模型有多麼不穩定。

既然知道了奇異陣的性質並且了解到是奇異陣使得從訓練資料中學出來的線性回歸模型不那麼穩定,那麼我們是不是可以人為地通過引入一些transformation讓

長得跟奇異陣不那麼像呢?

我們知道

於是乙個直觀的思路是在方陣的對角線元素上施加如下的線性變換

其中是單位陣。

有了上面的變換以後,對角線的元素為全零的概率就可以有效降低,也就達到了減少

near singularity的程度,進而減少線性回歸模型不穩定性的目的了。

那麼這個變換跟Ridge或是Lasso有什麼關係呢?

實際上,

(7.6)

正是對下面的

這個優化問題為

計算閉式解得到的結果(在[2]裡OLS的閉式解的推導過程裡加入二範數正則項,蠻自然地就會得到7.6裡的結果,[8]裡也有類似的推論)。

而(7.7)正是Ridge Regression的標準寫法。

進一步,Lasso Regression的寫法是

這實際上也是在原始矩陣上施加了一些變換,期望離奇異陣遠一些,另外1範數的引入,使得模型訓練的過程本身包含了model selection的功能,在上面的回覆裡都舉出了很多的例子,在一本像樣些的ML/DM的教材裡也大抵都有著比形象的示例圖,在這裡我就不再重複了。

乙個略微想提一下的是,對於2範數,本質上其實是對誤差的高斯先驗,而1範數則對應於誤差的Laplace先驗,這算是另乙個理解正則化的視角了。

只不過1範數的引入導致優化目標不再處處連續不能直接求取閉式解,而不得不resort到迭代求優的方法上了,而因為其非處處連續的特點,

[1]. Linear least squares, Lasso,ridge regression有何本質區別? - 資料探勘

[3]. 《數值分析導論》(數值分析導論 (豆瓣) )的例6.5.3

[4]. 《數值分析導論》(數值分析導論 (豆瓣) )的例6.5.5

[5]. 關於奇異陣的資料。

[6]. 如何高效學習 (豆瓣)

如何高效學習 (豆瓣)

wine和crossover有什麼本質區別?

國王傑瑞 Windows Linux和macOS是三種不同的系統,他們有著不同的語言。程式和遊戲只能用一種語言編寫,開發人員必須為他們想要支援的每種語言編寫單獨的程式,雖然這些程式從外面看起來可能是一樣的。所以當你試圖在Mac上執行一款為Windows編寫的程式或遊戲時,Mac電腦只會聽到一些 胡言...

「妖」和「仙」有何本質區別?

復汶道長 仙是人修為到了一定境界也就是道家講的出三界超五行的人得道為仙,長生不老是他們的標配,根據法力不同有仙能撒豆成兵 有仙能點石成金 魔是植物成的精 本質區別是龍生龍風生鳳老鼠的兒子會打洞! 修煉這種東西,很唯心的 所以妖和仙的區分,就不要用唯物的觀點去看 如果人修煉就是仙,那他剛一修煉,法力很...

Facebook 和 Twitter 的本質區別是什麼?

小西 朋友推薦了twitter,並讓我解除安裝了微博 關於facebook,因為沒有朋友推薦,所以也就沒玩。這麼回答也算清楚吧,哈哈 已登出 乙個深藍乙個淺藍乙個字母乙個象形乙個綜合功能中求創新乙個簡單形態下求互動反正都上不去。感覺已經跟它們脫節了 正所謂,不熟悉的東西都是一樣的,熟悉的東西才五顏六...