徹底搞懂機器學習裡的L1與L2正則化

2021-02-18 極市平臺

特徵錦囊:今天一起搞懂機器學習裡的L1與L2正則化

今天我們來講講一個理論知識,也是老生常談的內容,在模型開發相關崗位中出場率較高的,那就是L1與L2正則化了,這個看似簡單卻十分重要的概念,還是需要深入了解的。網上有蠻多的學習資料,今天我就著自己的理解也寫一下筆記。

從西瓜書裡我們可以了解到正則項的作用,那就是降低模型過擬合的風險,通常常用的有L1範數正則化與L2範數正則化,作為單獨一項(正則項)加入到損失函數中,也可以自己作為損失函數。

在了解L1和L2範數之前,我們可以先來了解一下範數(norm)的定義,根據參考文獻[2]的說明:A norm is a mathematical thing that is applied to a vector (like the vector β above). The norm of a vector maps vector values to values in [0,∞). In machine learning, norms are useful because they are used to express distances: this vector and this vector are so-and-so far apart, according to this-or-that norm.簡單來說也就是範數其實在 [0,∞)範圍內的值,是向量的投影大小,在機器學習中一般會勇于衡量向量的距離。範數有很多種,我們常見的有L1-norm和L2-norm,其實還有L3-norm、L4-norm等等,所以抽象來表示,我們會寫作Lp-norm,一般表示為 

我們引用文章裡的圖片,L2-norm的距離就是兩個黑點之間的綠線,而另外的3條線,都是L1-norm的大小。

在上面我們有提及到,L1、L2範數可以用於損失函數裡的一個正則化項,作用就是降低模型複雜度,減小過擬合的風險。這裡的正則化項,存在的目的就是作為一個「懲罰項」,對損失函數中的某一些參數做一些限制,是結構風險最小化策略的體現,就是選擇經驗風險(平均損失函數)和模型複雜度同時較小的模型。

針對線性回歸模型,假設對其代價函數裡加入正則化項,其中L1和L2正則化項的表示分別如下所示,其中λ >= 0,是用來平衡正則化項和經驗風險的係數。

(1)使用L1範數正則化,其模型也被叫作Lasso回歸(Least Absolute Shrinkage and Selection Operator,最小絕對收縮選擇算子)。(2)使用L2範數正則化,其模型被叫做Ridge回歸,中文為嶺回歸。上面介紹的L1和L2範數正則化都有著降低過擬合風險的功能,但它們有什麼不同?我們到底應該選擇哪一個呢,兩者之間各有什麼優勢和適用場景?別急,我們一一來展開講講。
Q1:L1和L2正則化項的區別?

首先,我們從上面那張二維的圖可以看出,對於L2-norm,其解是唯一的,也就是綠色的那條;而對於L1-norm,其解不唯一,因此L1正則化項,其計算難度通常會高於L2的。

其次,L1通常是比L2更容易得到稀疏輸出的,會把一些不重要的特徵直接置零,至於為什麼L1正則化為什麼更容易得到稀疏解,可以看下圖:

上圖代表的意思就是目標函數-平方誤差項的等值線和L1、L2範數等值線(左邊是L1),我們正則化後的代價函數需要求解的目標就是在經驗風險和模型複雜度之間的平衡取捨,在圖中形象地表示就是黑色線與彩色線的交叉點。

對於L1範數,其圖形為菱形,二維屬性的等值線有4個角(高維的會有更多),「突出來的角」更容易與平方誤差項進行交叉,而這些「突出來的角」都是在坐標軸上,即W1或則W2為0;

而對於L2範數,交叉點一般都是在某個象限中,很少有直接在坐標軸上交叉的。

因此L1範數正則化項比L2的更容易得到稀疏解。

Q2:各有什麼優勢,如何作選擇?

直接上結論:

1)因為L1範數正則化項的「稀疏解」特性,L1更適合用於特徵選擇,找出較為「關鍵」的特徵,而把一些不那麼重要的特徵置為零。

2)L2範數正則化項可以產生很多參數值很小的模型,也就是說這類的模型抗幹擾的能力很強,可以適應不同的數據集,適應不同的「極端條件」。

講完了作為正則化項的內容了,那麼講講L1、L2範數作為損失函數的情況。假設我們有一個線性回歸模型,我們需要評估模型的效果,很常規的,我們會用「距離」來衡量誤差!

若使用L1-norm來衡量距離,那就是我們的LAD(Least Absolute Deviation,最小絕對偏差),其優化的目標函數如下:

若使用L2-norm,那就是我們的LSE(Least Squares Error,最小二乘誤差),其優化的目標函數如下:

L1損失函數的結果更具魯棒性,也就是說對於異常值更加不敏感。而根據其範數「天性」,L2的求解更為簡單與「唯一」。 

Reference

[1] Differences between L1 and L2 as Loss Function and Regularization

http://www.chioka.in/differences-between-l1-and-l2-as-loss-function-and-regularization/

[2] L1 Norms versus L2 Norms

https://www.kaggle.com/residentmario/l1-norms-versus-l2-norms

相關焦點

  • 徹底搞懂機器學習中的正則化
    Reference在總結正則化(Regularization)之前,我們先談一談正則化是什麼,為什麼要正則化。個人認為正則化這個字眼有點太過抽象和寬泛,其實正則化的本質很簡單,就是對某一問題加以先驗的限制或約束以達到某種特定目的的一種手段或操作。在算法中使用正則化的目的是防止模型出現過擬合。一提到正則化,很多同學可能馬上會想到常用的L1範數和L2範數,在匯總之前,我們先看下LP範數是什麼鬼。
  • TensorFlow(Keras)中的正則化技術及其實現(附代碼)
    該損失函數是一種方法,量化「 如何 」機器學習模型執行。量化是基於一組輸入的輸出(成本),這些輸入稱為參數值。參數值用於估計預測,「損失」是預測與實際值之間的差。本文將不關注正則化的數學。相反,本文介紹了一些標準的正則化方法以及如何使用TensorFlow(Keras)在神經網絡中實現它們。
  • 使用python+sklearn實現Logistic回歸中的L1懲罰與稀疏性
    = LogisticRegression(C=C, penalty='elasticnet', solver='saga',                                   l1_ratio=l1_ratio, tol=0.01)    clf_l1_LR.fit(X, y)    clf_l2_LR.fit(X, y)    clf_en_LR.fit
  • AMS機器學習課程:Keras深度學習 - 卷積神經網絡正則化
    儘管使用卷積和池化確實可以充當正則化器,但對於具有許多權重的網絡,可能需要其他正則化技術。我們將討論兩種常見的正則化技術:權重衰減 (Weight decay) 和丟棄法 (Dropout)。權重衰減權重衰減 (Weight decay) 是一種通過在損失函數中包含懲罰項來約束回歸模型權重的方法,該函數將權重的總大小最小化。 懲罰項的影響由參數 alpha 控制。
  • 機器學習中的正則化到底是什麼意思?
    L1正則化和L2正則化機器學習中幾乎都可以看到損失函數後面會添加一個額外項,常用的額外項一般有兩種,一般英文稱作ℓ1-norm和ℓ2-norm,中文稱作L1正則化和L2正則化,或者L1範數和L2範數。通常機器學習中特徵數量很多,例如文本處理時,如果將一個詞組(term)作為一個特徵,那麼特徵數量會達到上萬個(bigram)。
  • 機器學習 - 正則化
    如果訓練集過於noisy,有很多幹擾項異常沒有清理之類;或者模型過於複雜,你只是為了擬合而擬合;或者有一些可能並不是很相關的變量與關係加入了模型裡,然而可能只是在你的樣本上有了數字上關係。和統計學裡的自由度一個意思?統計學裡自由度是啥?統計學自由度:計算統計量的樣本數,或者說計算統計量所需要的最少數據量。計算方法是:計算需要用到的數量N - 統計量數量。萬年困惑:怎麼不是N?
  • 一文讀懂機器學習中的正則化
    Reference在總結正則化(Regularization)之前,我們先談一談正則化是什麼,為什麼要正則化。個人認為正則化這個字眼有點太過抽象和寬泛,其實正則化的本質很簡單,就是對某一問題加以先驗的限制或約束以達到某種特定目的的一種手段或操作。在算法中使用正則化的目的是防止模型出現過擬合。一提到正則化,很多同學可能馬上會想到常用的L1範數和L2範數,在匯總之前,我們先看下LP範數是什麼鬼。
  • 機器學習算法之嶺回歸、Lasso回歸和ElasticNet回歸
    的時候會出錯。嶺回歸最先用來處理特徵數多於樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計。這裡通過引入ElasticNet:結合l1-norm、l2-norm進行正則  簡單的理解正則化:正則化的目的:防止過擬合正則化的本質:約束(限制)要優化的參數關於第1點,過擬合指的是給定一堆數據,這堆數據帶有噪聲,利用模型去擬合這堆數據,可能會把噪聲數據也給擬合了
  • 距離及其在機器學習中應用
    向量之間的距離,是機器學習的重要概念,但並非只有一種定義方式,這裡暫且列出幾種,在後續內容中還會提到其他形式的「距離」。然而,在機器學習中,還有對距離的其他定義方式。曼哈頓距離曼哈頓距離(Manhattan Distance),也稱計程車距離或城市街區距離。
  • 機器學習入門之範數與正則化
    0.導語研究一下範數與正則化,並做相應記錄!
  • sklearn中的邏輯回歸中及正則化
    因此就需要使用正則化,且sklearn中的邏輯回歸,都是使用的正則化。0x01 邏輯回歸中使用正則化 對損失函數增加L1正則或L2正則。注意觀察,有一個參數penalty的默認參數是l2,這說明sklearn中默認是使用L2正則項的,且超參數C默認1。
  • 在機器學習的世界裡打怪升級——談談正則化
    通常是給損失函數加一個約束項,也叫正則化項。這也是工業界和學術界經常使用的方法,並且得到廣泛應用。 具體來說,通常有兩種正則化方式,分別是L2正則化和L1正則化。 L2正則化 顧名思義,L2正則化就是使用了L2範數進行構建。
  • [無痛的機器學習連載]CNN——L1正則的稀疏性
    我們與無痛的機器學習合作在此連載機器學習系列文章,更多文章可以前往閱讀:https://zhuanlan.zhihu.com/hsmyy
  • 深度學習基礎(十):TensorFlow 2.x模型的驗證、正則化和回調
    否則,如果您無法使用機器學習模型來訓練模型所依據的數據,而無法成功地進行預測,那麼該方法又有什麼用呢?通過模型選擇和正則化來實現泛化和避免過度擬合。Tensorflow 2.x提供了 回調 函數的功能,工程師可以通過該 功能在培訓進行時根據保留的驗證集監視模型的性能。
  • 通過正則化擴展回歸庫
    這就是所謂的Elastic正則化。在理論部分結束後,讓我們進入正則化的實際應用。正則化的示例使用用例人類很善於識別聲音。僅憑音頻,我們就能夠區分汽車、聲音和槍枝等事物。如果有人特別有經驗,他們甚至可以告訴你什麼樣聲音屬於哪種汽車。在這種情況下,我們將建立一個正則化回歸模型。
  • 機器學習之sklearn基礎教程!
    機器學習算法主要步驟有:調整算法本次分享主要把目光聚集在"選擇分類器並優化算法",我們將用學術界和工業界常用的機器學習庫sklearn,對算法進行實踐。本文內容:1.,可選擇『l1』, 『l2』, 『elasticnet』, 『none』,默認'l2'dual:是否選擇對偶,當n_samples> n_features時,首選dual = Falsetol:算法停止的誤差條件,默認是0.0001C:正則強度的倒數;必須為正浮點數,較小的值指定更強的正則化,默認為1.0
  • 【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第4章( 中) 訓練模型
    —— 第1章 機器學習概覽(下)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章  一個完整的機器學習項目(上)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章 一個完整的機器學習項目(中)【翻譯】Sklearn 與 TensorFlow 機器學習實用指南 —— 第2章 一個完整的機器學習項目
  • 數學推導+純Python實現機器學習算法:Lasso回歸
    本節我們要介紹的是基於L1正則化的Lasso模型,下一節介紹基於L2正則化的Ridge模型。在正式介紹這兩種模型之前,筆者還是想帶大家複習一下過擬合和正則化等機器學習關鍵問題。總的來說,監督機器學習的核心原理莫過於如下公式:該公式可謂是機器學習中最核心最關鍵最能概述監督學習的核心思想的公式了:所有的有監督機器學習,無非就是正則化參數的同時最小化經驗誤差函數。最小化經驗誤差是為了極大程度的擬合訓練數據,正則化參數是為了防止過分的擬合訓練數據。你看,多麼簡約數學哲學。
  • 深度學習筆記4:深度神經網絡的正則化
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 線性模型(二)正則化的回歸
    正則化的回歸正則化的回歸是在普通回歸經驗風險中加入正則項構成的回歸,如式(9-10)所示:正則化原理最常見的正則化方法是使用Lp正則化項,即Lp範數,其數學表達式為式(9-11):圖9-4描述了二維情況下Lp範數的幾何圖形:機器學習中最常見的是使用L1和L2正則化,即圖9-4中的兩條實線表示的曲線,一個曲線尖銳,一個則很圓滑。