機器學習常見的損失函數、代價函數

  • **損失函數(Loss Function):**定義在單個樣本上的,指一個樣本的誤差
  • **代價函數(Cost Function):**定義在整個訓練集上,是所有樣本誤差的平均,也就是所有損失函數值的平均
  • **目標函數(Object Function):**指最終需要優化的函數,一般來說是經驗風險+結構風險(代價函數+正則化項)。

損失函數

分類問題

0-1損失函數

預測正確時,損失函數值爲0;預測錯誤時,損失函數值爲1。該損失函數不考慮預測值與真實值的誤差程度。

Hinge損失函數(SVM)

L(w,b)=max{0,1yf(x)} L(w,b)=max\{0,1-yf(x)\}

其中y∈{+1,-1},f(x)=wx+b,當爲SVM的線性核時。

Logistic損失函數

L(y,p(yx))=log p(yx) L(y,p(y|x))=-log\ p(y|x)

該損失函數用到了極大似然估計的思想。

P(Y|X)通俗的解釋就是:在當前模型的基礎上,對於樣本X,其預測值爲Y,也就是預測正確的概率。

由於概率之間的同時滿足需要使用乘法,爲了將其轉化爲加法,我們將其取對數。

最後由於是損失函數,所以預測正確的概率越高,其損失值應該是越小,因此再加個負號取個反。

交叉熵損失函數(Cross Entry)

H(p,q)=i=1Np(x(i))log q(x(i)) H(p,q)=-\sum_{i=1}^Np(x^{(i)})log\ q(x^{(i)})

交叉熵是用來評估當前訓練得到的概率分佈與真實分佈的差異情況,減少交叉熵損失就是在提高模型的預測準確率。其中 p(x) 是指真實分佈的概率,q(x) 是模型通過數據計算出來的概率估計。

Exponential損失函數(AdaBoost)

L(y,f(x))=exp(yf(x)) L(y,f(x))=exp(-yf(x))

指數損失函數是AdaBoost裏使用的損失函數,同樣地,它對異常點較爲敏感,魯棒性不夠

Log損失函數(LR)

L(y,P(yx))=logP(yx) L(y,P(y|x))=-logP(y|x)

詳見

1558963289779

迴歸問題

平方損失函數(Least Squares)

L(y,f(x))=(yf(x))2 L(y,f(x))=(y-f(x))^2

預測值與實際值的誤差的平方。

絕對值損失函數(Least Absolute)

L(y,f(x))=yf(x) L(y,f(x))=|y-f(x)|

預測值與實際值的誤差的絕對值。

Log-cosh損失函數

Llog(cosh(y,f(x)))=log(cosh(f(x)y))cosh(x)=(ex+ex)2 L_{log(-cosh(y,f(x)))}=log(cosh(f(x)-y)) \\ cosh(x)=\frac {(e^x+e^{-x})}2

log-cosh損失函數比均方損失函數更加光滑,具有huber損失函數的所有優點,且二階可導。因此可以使用牛頓法來優化計算,但是在誤差很大情況下,一階梯度和Hessian會變成定值,導致牛頓法失效。

分位數損失函數

Lγ(y,f(x))=i:yi<fi(x)(1γ)yifi(x)+i:yifi(x)γyifi(x)γ01γ0.5MAEγ(γ) L_\gamma(y,f(x))=\sum_{i:y_i<f_i(x)}(1-\gamma)|y_i-f_i(x)|+\sum_{i:y_i\ge f_i(x)}\gamma|y_i-f_i(x)| \\ 預測的是目標的取值範圍而不是值。γ 是所需的分位數,其值介於0和1之間,γ等於0.5時,相當於MAE。 \\ 設置多個 γ 值,得到多個預測模型,然後繪製成圖表,即可知道預測範圍及對應概率(兩個 γ 值相減)

1558962525717

代價函數

均方誤差(Mean Squared Error)

MSE=1Ni=1N(y(i)f(x(i))) MSE=\frac 1N\sum_{i=1}^N(y^{(i)}-f(x^{(i)}))

均方誤差是指參數估計值與參數真值之差平方的期望值;

MSE可以評價數據的變化程度,MSE的值越小,說明預測模型描述實驗數據具有更好的精確度。

通常用來做迴歸問題的代價函數

均方根誤差(Root Mean Squared Error)

RMSE=1Ni=1N(y(i)f(x(i)))2 RMSE=\sqrt[2] {\frac 1N\sum_{i=1}^N(y^{(i)}-f(x^{(i)}))}

均方根誤差是均方誤差的算術平方根,能夠直觀觀測預測值與實際值的離散程度。

通常用來作爲迴歸算法的性能指標

平均絕對誤差(Mean Absolute Error)

MAE=1Ni=1Ny(i)f(x(i)) MAE=\frac 1N\sum_{i=1}^N|y^{(i)}-f(x^{(i)})|

平均絕對誤差是絕對誤差的平均值 ,平均絕對誤差能更好地反映預測值誤差的實際情況。

通常用來作爲迴歸算法的性能指標

借鑑來源

https://www.cnblogs.com/lliuye/p/9549881.html

https://blog.csdn.net/zuolixiangfisher/article/details/88649110

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