L1與L2損失函式和正則化的區別
本文翻譯自文章: ofollow,noindex" target="_blank">Differences between L1 and L2 as Loss Function and Regularization ,如有翻譯不當之處,歡迎拍磚,謝謝~
在機器學習實踐中,你也許需要在神祕的L1和L2中做出選擇。通常的兩個決策為:1) L1範數 vs L2範數 的損失函式; 2) L1正則化 vs L2正則化。
作為損失函式
L1範數損失函式,也被稱為最小絕對值偏差(LAD),最小絕對值誤差(LAE)。總的說來,它是把目標值( \(Y_{i}\) )與估計值( \(f(x_{i})\) )的絕對差值的總和( \(S\) )最小化:
\[S=\sum\limits_{i=1}^{n}|Y_{i}-f(x_{i})|.\]
L2範數損失函式,也被稱為最小平方誤差(LSE)。總的來說,它是把目標值( \(Y_{i}\) )與估計值( \(f(x_{i})\) )的差值的平方和( \(S\) )最小化:
\[S=\sum\limits_{i=1}^{n}\Big(Y_{i}-f(x_{i})\Big)^{2}.\]
L1範數與L2範數作為損失函式的區別能快速地總結如下:
L2損失函式 | L1損失函式 |
---|---|
不是非常的魯棒(robust) | 魯棒 |
穩定解 | 不穩定解 |
總是一個解 | 可能多個解 |
魯棒性(robustness),根據維基百科,被解釋為:
因為與最小平方相比,最小絕對值偏差方法的魯棒性更好,因此,它在許多場合都有應用。最小絕對值偏差之所以是魯棒的,是因為它能處理資料中的異常值。這或許在那些異常值可能被安全地和有效地忽略的研究中很有用。如果需要考慮任一或全部的異常值,那麼最小絕對值偏差是更好的選擇。
從直觀上說,因為L2範數將誤差平方化(如果誤差大於1,則誤差會放大很多),模型的誤差會比L1範數來得大( e vs e^2 ),因此模型會對這個樣本更加敏感,這就需要調整模型來最小化誤差。如果這個樣本是一個異常值,模型就需要調整以適應單個的異常值,這會犧牲許多其它正常的樣本,因為這些正常樣本的誤差比這單個的異常值的誤差小。
穩定性,根據維基百科,被解釋為:
最小絕對值偏差方法的不穩定性意味著,對於資料集的一個小的水平方向的波動,迴歸線也許會跳躍很大。在一些資料結構(data configurations)上,該方法有許多連續解;但是,對資料集的一個微小移動,就會跳過某個資料結構在一定區域內的許多連續解。(The method has continuous solutions for some data configurations; however, by moving a datum a small amount, one could “jump past” a configuration which has multiple solutions that span a region. )在跳過這個區域內的解後,最小絕對值偏差線可能會比之前的線有更大的傾斜。相反地,最小平方法的解是穩定的,因為對於一個數據點的任何微小波動,迴歸線總是隻會發生輕微移動;也就說,迴歸引數是資料集的連續函式。
下面的圖是用真實資料和真實擬合模型生成的:
這裡使用的基本模型為梯度提升迴歸(GradientBoostingRegressor),使用L1範數和L2範數作為損失函式。綠線和紅色分別代表了模型使用L1範數與L2範數作為損失函式時的情形。實線代表了訓練的模型中不含有異常值(橙色)的情形,虛線代表了訓練的模型中含有異常值(橙色)的情形。
我緩慢地將這個異常值從左向右移動,使得它在中間時不那麼異常,而在左右兩邊時更加異常。當這個異常值不那麼異常時(在中間的情形),在擬合直線的時候,L2範數的變動較小,而L1範數的表動較大。
當這個異常值更加異常(上左位置,下右位置,它們離左、右兩邊更加遠)時,這兩個範數都有大的變動,但是再一次地,L1範數總體上比L2範數變動更大。
通過資料視覺化,我們能夠對這兩個損失函式的穩定性有更好的認知。
作為正規化
在機器學習中,正規化是防止過擬合的一種重要技巧。從數學上講,它會增加一個正則項,防止係數擬合得過好以至於過擬合。L1與L2的區別只在於,L2是權重的平方和,而L1就是權重的和。如下:
最小平方損失函式的L1正則化:
最小平方損失函式的L2正則化:
它們的性質的區別能快速地總結如下:
L2正則化 | L1正則化 |
---|---|
計算效率高(因為有解析解) | 在非稀疏情形下計算效率低 |
非稀疏輸出 | 稀疏輸出 |
無特徵選擇 | 內建特徵選擇 |
解的唯一性是一個更簡單的性質,但需要一點想象。首先,看下圖:
綠色的線(L2範數)是唯一的最短的路徑,而紅色、藍色、黃色線條(L1範數)都是同一路徑,長度一樣(12)。可以將其擴充套件至n-維的情形。這就是為什麼L2範數有唯一解而L1並不是。
內建特徵選擇是L1範數被經常提及的有用的性質,而L2範數並不具備。這是L1範數的自然結果,它趨向於產生稀疏的係數(在後面會解釋)。假設模型有100個係數,但是僅僅只有其中的10個是非零的,這實際上是說“其餘的90個係數在預測目標值時都是無用的”。L2範數產生非稀疏的係數,因此它不具備這個性質。
稀疏性指的是一個矩陣(或向量)中只有少數的項是非零的。L1範數具備性質:產生許多0或非常小的係數和少量大的係數。
計算效率。L1範數沒有一個解析解,但是L2範數有。這就允許L2範數在計算上能高效地計算。然而,L1範數的解具備稀疏性,這就允許它可以使用稀疏演算法,以使得計算更加高效。