數據挖掘與機器學習--損失函數

損失函數是用來估量模型的預測值f(x)與真實值不y一致的程度。我們的目的就是最小化損失函數,讓f(x)與y儘量接近。

通常可以使用梯度下降尋找函數最小值

損失函數大致可以分成兩類:迴歸和分類

迴歸類型損失函數

均方誤差(Mean Square Error,MSE)

模型預測值與樣本真實值之間距離平方的平均值
MSE是比較常用的一種損失函數它的曲線特點是光滑連續,可導,有利於使用梯度下降算法。而且MSE隨着誤差的減小,梯度也在減小,這有利於函數的收斂,不易產生震盪。

當y與f(x)的差值大於1時,MSE會增大其誤差,當y與f(x)的差值小於1時,MSE會減少其誤差,這是由平方的特性決定的,也就是說MSE會對誤差較大的情況給予更大的懲罰,對誤差較小的情況給予更小的懲罰。

平均絕對誤差(MAE)

缺點:MAE的曲線呈V字型,連續但在y-f(x)=0處不可導,計算機求解導數比較困難。而且MAE大部分情況下梯度都是相等的,這意味着即使很小的損失值,其梯度也是太的,在損失較小時容易產生震盪 ,這不利於函數的收斂和模型的學習。
優點:MAE 相比MSE有個優點就是MAE對離羣點不那麼敏感,更有包容性,所以魯棒性比較好。因爲MAE計算的是誤差y-f(x)的絕對值,無論是y-f(x)>1還是y-f(x)<1,沒有平方項的作用,懲罰力度都是一樣的,所佔權重一樣。

MSE與MAE

MSE與MAE
·從計算機求解梯度的複雜度來說,MSE要優於MAE,而且梯度也是動態變化的,能較快準確達到收斂。
·從離羣點角度來看,如果離羣點是重要數據,或者是應該被檢測到的異常值,即我們需要關注的樣本時,那麼我們應該使用MSE。
·若離羣點是數據損壞或者錯誤採樣和標註錯誤等情況,無須給予過多關注,那麼我們應該選擇MAE作爲損失。但這種情況下,也可以通過實際情況,對這些噪音點進行相應的過濾處理後,再結合MSE進行訓練,從而達到較好的效果。

什麼是震盪

MAE棱角過於分明,容易在左右兩個界限見跳動(震盪),而MSE弧度緩和,差值越來越小,叫容易停在斷點

Huber Loss

迴歸-Huber損失
·Huber Loss 是對MSE和MAE的綜合
·Ω值決定了Huber Loss對MSE和MAE的側重性,當ly-f(x)1≤Ω時,變爲MSE,梯度逐漸減小,能夠保證模型更精確地得到全局最優值;當ly-f(x)1>Ω時,則變成類似於MAE,梯度一直近似爲Ω,能夠保證模型以一個較快的速度更新參數。因此Huber Loss 同時具備了MSE和MAE的優點,減小了對離羣點的敏感度問題,實現了處處可導的功能。
·通常來說,超參數Ω可以通過交叉驗證選取最佳值。

·交叉熵Loss的優點是在整個實數域內,Loss近似線性變化。尤其是當ys<<0的時候,Loss更近似線性。這樣,模型受異常點的干擾就較小。
而且,交叉熵Loss連續可導,便於求導計算,是使用最廣泛的損失函數之一。

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