常見損失彙總

迴歸模型的損失函數

L1正則損失函數(即絕對值損失函數)

L1正則損失函數是對預測值與目標值的差值求絕對值,公式如下:
L(Y,f(X))=Yf(X)L(Y,f(X))=\left | Y-f(X) \right |
缺點:L1正則損失函數在目標值附近不平滑,會導致模型不能很好地收斂。

L2正則損失函數(即歐拉損失函數)

L2正則損失函數是預測值與目標值差值的平方和,公式如下:
L(Y,f(X))=i=1n(Yf(X))2L(Y,f(X))= \sum_{i=1}^{n} (Y-f(X))^{2}
當對L2取平均值,就變成均方誤差(MSE, mean squared error),公式如下:
MSE(Y,f(X))=1ni=1n(Yf(X))2MSE(Y,f(X))= \frac{1}{n}\sum_{i=1}^{n} (Y-f(X))^{2}
優點:L2正則損失函數在目標值附近有很好的曲度,離目標越近收斂越慢,是非常有用的損失函數。
L1、L2正則損失函數如下圖所示:
在這裏插入圖片描述

Pseudo-Huber 損失函數

Huber損失函數經常用於迴歸問題,它是分段函數,公式如下:
在這裏插入圖片描述
從這個公式可以看出當殘差(預測值與目標值的差值,即y-f(x) )很小的時候,損失函數爲L2範數,殘差大的時候,爲L1範數的線性函數。該公式依賴於參數delta,delta越大,則兩邊的線性部分越陡峭。
L1、L2、Huber損失函數的對比圖如下,其中Huber的delta取0.25、5兩個值:
在這裏插入圖片描述

分類模型的損失函數

Hinge損失函數

又名摺頁損失函數、鉸鏈損失函數。Hinge損失常用於二分類問題,主要用來評估向量機算法(SVM),但有時也用來評估神經網絡算法,公式如下:
L(y)=max(0,1ty)L(y)=max(0,1-t\cdot y)
上面的代碼中,目標值爲1,當預測值離1越近,則損失函數越小,如下圖:
在這裏插入圖片描述

兩類交叉熵(Cross-entropy)損失函數

交叉熵來自於信息論,是分類問題中使用廣泛的損失函數。交叉熵刻畫了兩個概率分佈之間的距離,當兩個概率分佈越接近時,它們的交叉熵也就越小,給定兩個概率分佈p和q,則距離如下:
H(p,q)=xp(x)log(x)H(p,q)=-\sum_{x}p(x)log(x)
對於兩類問題,當一個概率p=y,則另一個概率q=1-y,因此代入化簡後的公式如下:
H(p,q)=ip(i)logq(i)=ylogy^(1y)log(1y^)H(p,q)=-\sum_{i}p(i)logq(i)=-ylog\widehat{y}-(1-y)log(1-\widehat{y})
Cross-entropy損失函數主要應用在二分類問題上,預測值爲概率值,取值範圍爲[0,1],損失函數圖如下:
在這裏插入圖片描述

加權交叉熵損失函數

加權交叉熵損失函數是Sigmoid交叉熵損失函數的加權。

Sigmoid交叉熵損失函數

與上面的兩類交叉熵類似,只是將預測值y_pred值通過sigmoid函數進行轉換,再計算交叉熵損失。由於sigmoid函數會將輸入值變小很多,從而平滑了預測值,使得sigmoid交叉熵在預測值離目標值比較遠時,其損失的增長沒有那麼的陡峭。與兩類交叉熵的比較圖如下:
在這裏插入圖片描述

Softmax交叉熵損失函數

在Logistic regression二分類問題中,我們可以使用sigmoid函數將輸入映射到區間中,從而得到屬於某個類別的概率。將這個問題進行泛化,推廣到多分類問題中,我們可以使用softmax函數,對輸出的值歸一化爲概率值。通過softmax函數將輸出結果轉化成概率分佈,從而便於輸入到交叉熵裏面進行計算(交叉熵要求輸入爲概率),softmax定義如下:
y=softmax(yi)=eyij=1neyi{y}'=softmax(y_{i})=\frac{e^{y_{i}}}{\sum_{j=1}^{n}e^{y_{i}}}
以上可以看出:y=1\sum {y}'=1,這也是爲什麼softmax層的每個節點的輸出值成爲了概率和爲1的概率分佈。
Softmax+交叉熵也被稱爲Softmax損失函數,它表達式爲:
H(P,T)=1CPlog(T)H(P,T)=-\sum_{1}^{C}Plog(T)
其中,P爲樣本的期望輸出,它是一個one-hot編碼形式。T爲樣本的實際輸出,其中T=[softmax(y1),softmax(y2),...,softmax(yi=n)]T=[softmax(y_{1}),softmax(y_{2}),...,softmax(y_{i=n})]。這裏P和T是一個長度與類別數相同的集合。
圖見《百面機器學習》P143

總結:

損失 凸函數 光滑
絕對值損失 非凸 非光滑 迴歸
歐拉損失 光滑 迴歸
Pseudo-Huber 損失 迴歸
Logistic損失 迴歸
Hinge損失 非光滑 分類
0-1損失 非凸 非光滑 分類
兩類交叉熵損失 分類
Sigmoid交叉熵損失 分類
Softmax交叉熵損失 分類

在實際使用中,對於迴歸問題經常會使用MSE均方誤差(L2取平均)計算損失,對於分類問題經常會使用Sigmoid交叉熵損失函數。

參考:
https://my.oschina.net/u/876354/blog/1940819
https://blog.csdn.net/lilong117194/article/details/81542667
https://blog.csdn.net/chaipp0607/article/details/73392175

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