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的優點,對異常點更加魯棒。