L1、L2損失函數、Huber損失函數


 

L1范數損失函數,也被稱為最小絕對值偏差(LAD),最小絕對值誤差(LAE)

L2范數損失函數,也被稱為最小平方誤差(LSE)

L2損失函數 L1損失函數
不是非常的魯棒(robust) 魯棒
穩定解 不穩定解
總是一個解 可能多個解

魯棒性

最小絕對值偏差之所以是魯棒的,是因為它能處理數據中的異常值。如果需要考慮任一或全部的異常值,那么最小絕對值偏差是更好的選擇。

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

穩定性

最小絕對值偏差方法的不穩定性意味着,對於數據集的一個小的水平方向的波動,回歸線也許會跳躍很大。

相反地,最小平方法的解是穩定的,因為對於一個數據點的任何微小波動,回歸線總是只會發生輕微移動

總結

MSE對誤差取了平方,如果存在異常值,那么這個MSE就很大。

MAE更新的梯度始終相同,即使對於很小的值,梯度也很大,可以使用變化的學習率。MSE就好很多,使用固定的學習率也能有效收斂。

總而言之,處理異常點時,L1損失函數更穩定,但它的導數不連續,因此求解效率較低。L2損失函數對異常點更敏感,但通過令其導數為0,可以得到更穩定的封閉解。

Huber

l1和l2都存在的問題:

若數據中90%的樣本對應的目標值為150,剩下10%在0到30之間。

那么使用MAE作為損失函數的模型可能會忽視10%的異常點,而對所有樣本的預測值都為150,因為模型會按中位數來預測;

MSE的模型則會給出很多介於0到30的預測值,因為模型會向異常點偏移。

這些情況下最簡單的辦法是對目標變量進行變換。而另一種辦法則是換一個損失函數,這就引出了下面要講的第三種損失函數,即Huber損失函數。

Huber損失,平滑的平均絕對誤差

Huber損失對數據中的異常點沒有平方誤差損失那么敏感。

本質上,Huber損失是絕對誤差,只是在誤差很小時,就變為平方誤差。誤差降到多小時變為二次誤差由超參數δ(delta)來控制。當Huber損失在[0-δ,0+δ]之間時,等價為MSE,而在[-∞,δ]和[δ,+∞]時為MAE。

Huber損失結合了MSE和MAE的優點,對異常點更加魯棒。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM