1. 程式人生 > >L1和L2:損失函式和正則化

L1和L2:損失函式和正則化

作為損失函式

L1範數損失函式

  L1範數損失函式,也被稱之為最小絕對值誤差。總的來說,它把目標值$Y_i$與估計值$f(x_i)$的絕對差值的總和最小化。

$$S=\sum_{i=1}^n|Y_i-f(x_i)|$$

L2範數損失函式

  L2範數損失函式,也被稱為最小平方誤差,總的來說,它把目標值$Y_i$與估計值$f(x_i)$的差值的平方和最小化。

$$S=\sum_{i=1}^n(Y_i-f(x_i))^2$$

L1損失函式 L2損失函式
魯棒 不是很魯棒
不穩定性 穩定解
可能多個解 總是一個解

  總結一下:L2範數loss將誤差平均化(如果誤差大於1,則誤差會放大很多),模型的誤差會比L1範數來得大,因此模型會對樣本更加敏感,這就需要調整模型來最小化誤差。如果有個樣本是一個異常值,模型就需要調整以適應單個的異常值,這會犧牲許多其他正常的樣本,因為這些正常的樣本的誤差比這單個的異常值的誤差小。

作為正則化

  我們經常會看見損失函式後面新增一個額外項,一般為L1-norm,L2-norm,中文稱作L1正則化和L2正則化,或者L1範數和L2函式。

  L1正則化和L2正則化可以看做是損失函式的懲罰項。所謂『懲罰』是指對損失函式中的某些引數做一些限制。防止模型過擬合而加在損失函式後面的一項。

L1正規化

  L1範數符合拉普拉斯分佈,是不完全可微的。表現在影象上會有很多角出現。這些角和目標函式的接觸機會遠大於其他部分。就會造成最優值出現在座標軸上,因此就會導致某一維的權重為0 ,產生稀疏權重矩陣,進而防止過擬合。

最小平方損失函式的L1正則化:

L1正則化是指權值向量$w$中各個元素的絕對值之和

L2正規化

  L2範數符合高斯分佈,是完全可微的。和L1相比,影象上的稜角被圓滑了很多。一般最優值不會在座標軸上出現。在最小化正則項時,可以是引數不斷趨向於0,最後活的很小的引數。

  在機器學習中,正規化是防止過擬合的一種重要技巧。從數學上講,它會增加一個正則項,防止係數擬合得過好以至於過擬合。L1與L2的區別只在於,L2是權重的平方和,而L1就是權重的和。如下:

最小平方損失函式的L2正則化:

L2正則化是指權值向量$w$中各個元素的平方和然後再求平方根

作用

L1正則化

  • 優點:輸出具有稀疏性,即產生一個稀疏模型,進而可以用於特徵選擇;一定程度上,L1也可以防止過擬合
  • 缺點:但在非稀疏情況下計算效率低

L2正則化:

  • 優點:計算效率高(因為存在解析解);可以防止模型過擬合(overfitting)
  • 缺點:非稀疏輸出;無特徵選擇

稀疏模型和特徵選擇:稀疏性我在這篇文章有詳細講解,如果特徵符合稀疏性,說明特徵矩陣很多元素為0,只有少數元素是非零的矩陣,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,或者貢獻微小(因為它們前面的係數是0或者是很小的值,即使去掉對模型也沒有什麼影響),此時我們就可以只關注係數是非零值的特徵。這就是稀疏模型與特徵選擇的關係。

文獻[1]解釋了為什麼L1正則化可以產生稀疏模型(L1是怎麼樣係數等於0的),以及為什麼L2正則化可以防止過擬合,由於涉及到很多公式,想要詳細瞭解的同學,請移步。

區別

1、L1正則化是模型各個引數的絕對值之和。

  L2正則化是模型各個引數的平方和的開方值。

2、L1會趨向於產生少量的特徵,而其他的特徵都是0,產生稀疏權重矩陣。

  L2會選擇更多的特徵,這些特徵都會接近於0。

再討論幾個問題

1.為什麼引數越小代表模型越簡單?

  越是複雜的模型,越是嘗試對所有樣本進行擬合,包括異常點。這就會造成在較小的區間中產生較大的波動,這個較大的波動也會反映在這個區間的導數比較大。

  只有越大的引數才可能產生較大的導數。因此引數越小,模型就越簡單。

2.實現引數的稀疏有什麼好處?

  因為引數的稀疏,在一定程度上實現了特徵的選擇。一般而言,大部分特徵對模型是沒有貢獻的。這些沒有用的特徵雖然可以減少訓練集上的誤差,但是對測試集的樣本,反而會產生干擾。稀疏引數的引入,可以將那些無用的特徵的權重置為0.

3.L1範數和L2範數為什麼可以避免過擬合?

  加入正則化項就是在原來目標函式的基礎上加入了約束。當目標函式的等高線和L1,L2範數函式第一次相交時,得到最優解。

參考文獻

CSDN部落格:機器學習中正則化項L1和L2的直觀理解

Differences between L1 and L2 as Loss Function and Regularization

&n