L1 和 L2正則化的區別,在機器學習中如何選擇

L1範數的定義

L1範數是指向量中各個元素絕對值之和

\left \| x \right \|_{1}=\sum |x_{i}|

L1正則

帶L1正則項的cost function:

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat{y}^{i}, y^{i})+\frac{\lambda }{2m}\left \| w \right \|_{1}

用L1正則得到的參數稀疏,有很多0。用一個圖例解釋下。假設一個二維樣本,求解二維參數W(w1,w2),如果沒有正則項,對於線性迴歸的目標函數來說,最優解再最裏面的紫色圓圈的等高線上。加入L1正則項,|w1| + |w2| =F,即下圖的菱形,現在不僅希望目標函數越小越好,且希望F越小越好(菱形越小越好)。

preview

那麼在菱形與等高線相交或相切時,且菱形最小,滿足條件。從圖中可以看出,在座標軸上,等高線與菱形最容易相交,比如上圖,在衆軸上,w1爲0,所以,L1正則容易求得稀疏解。

參數稀疏有什麼好處?

    (1)特徵選擇(Feature Selection)

      參數稀疏規則化能夠實現特徵的自動選擇,在特徵工程的過程中,一般來說,xi的大部分元素(特徵)都和其標籤yi沒有關係的。我們在最小化目標函數的時候,考慮了這些無關特徵,雖然可以獲得最小的訓練誤差,但是對於新的樣本時,這些沒用的信息反而被考慮,干擾了對樣本的預測。稀疏規則化將這些沒用的特徵的權重置爲0,去掉這些沒用的特徵。

     (2)可解釋性

     將無關特徵置爲0,模型更容易解釋。例如:患某種病的概率爲y,我們收集到的數據x是1000維的,我們的任務是尋找這1000種因素是如何影響患上這種病的概率。假設,我們有一個迴歸模型:y=w1*x1+w2*x2+…+w1000*x1000+b,通過學習,我們最後學習到w*只有很少的非零元素。例如只有5個非零的w*,那麼這5個w*含有患上這種病的關鍵信息。也就是說,是否患上這種病和這5個特徵相關,那事情變得容易處理多了。

L2範數定義

\left \| x \right \|_{2}=\sqrt{\sum |x_{i}|^2}

L2正則

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\widehat{y}^{i}, y^{i})+\frac{\lambda }{2m}\left \| w \right \|_{2}

L2正則化得到的w每個元素都比較小,接近0,更加平滑(不等於0)

L1範數MAE 與 L2範數 MSE作爲損失函數的對比

MSE= \sum_{i=1}^{n}(\widehat{y}^{i}-y^{i})^{2}

MAE= \sum_{i=1}^{n}|\widehat{y}^{i}-y^{i}|

在機器學習中,通過最小化預測值和真實值的誤差,更新模型參數,那麼基於L1範數的MAE誤差和基於L2範數的MSE誤差有什麼區別,該怎麼選擇呢?

(1)MAE相比MSE,魯棒性更強。MSE對誤差取了平方,如果數據存在異常值,誤差會被放大。所以,MAE對於異常值比MSE更穩定。

(2)然而MAE存在一個嚴重的問題(特別是對於神經網絡):更新的梯度始終相同,也就是說,即使對於很小的損失值,梯度也很大。這樣不利於模型的學習。爲了解決這個缺陷,我們可以使用變化的學習率,在損失接近最小值時降低學習率。而MSE在這種情況下的表現就很好,即便使用固定的學習率也可以有效收斂。MSE損失的梯度隨損失增大而增大,而損失趨於0時則會減小。這使得在訓練結束時,使用MSE模型的結果會更精確。

根據不同情況選擇損失函數

(1)如果需要檢測出數據重要的異常值,選用MSE損失函數,如果把異常值當作受損數據,應避免異常值的影響,選用MAE損失函數

(2)二者兼有的問題是:在某些情況下,上述兩種損失函數都不能滿足需求。例如,若數據中90%的樣本對應的目標值爲150,剩下10%在0到30之間。那麼使用MAE作爲損失函數的模型可能會忽視10%的異常點,而對所有樣本的預測值都爲150。
這是因爲模型會按中位數來預測。而使用MSE的模型則會給出很多介於0到30的預測值,因爲模型會向異常點偏移。上述兩種結果在許多商業場景中都是不可取的。這些情況下應該怎麼辦呢?最簡單的辦法是對目標變量進行變換。而另一種辦法則是換一個損失函數。如Huber損失,Log-Cosh損失,分位數損失。也有些時候可以將利用MAE與MSE訓練出的模型進行融合。

(3)選擇MSE訓練模型效率更高

 

Reference

1. https://baijiahao.baidu.com/s?id=1603857666277651546&wfr=spider&for=pc

2. https://zhuanlan.zhihu.com/p/35356992?utm_medium=social&utm_source=wechat_session

3. https://blog.csdn.net/fisherming/article/details/79492602

 

 

 

 

 

 

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