天天看點

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

文章目錄

  • 回歸模型的損失函數
    • L1正則損失函數(即絕對值損失函數)
    • L2正則損失函數(即歐拉損失函數)
    • Pseudo-Huber 損失函數
  • 分類模型的損失函數
    • Hinge損失函數
    • 兩類交叉熵(Cross-entropy)損失函數
    • 權重交叉熵損失函數
    • Sigmoid交叉熵損失函數
    • Softmax交叉熵損失函數
  • 為什麼邏輯回歸不用mse,為什麼分類就不能有mse
    • 角度1—梯度角度解釋:
    • 角度二——凸or不凸:

回歸模型的損失函數

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

平均絕對誤差損失(Mean Absolute Error Loss),也稱為 L1 Loss。是對預測值與目标值的內插補點求絕對值,其基本形式如下:

L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L(Y,f(X))=\left | Y-f(X) \right | L(Y,f(X))=∣Y−f(X)∣

缺點:L1正則損失函數在目标值附近不平滑,會導緻模型不能很好地收斂。

我們可以對這個損失函數進行可視化如下圖,MAE 損失的最小值為 0(當預測等于真實值時),最大值為無窮大。可以看到随着預測與真實值絕對誤差 y − f ( X ) y-f(X) y−f(X) 的增加,MAE 損失呈線性增長。

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

背後的假設

我們是在一定的假設下通過最大化似然得到 MAE 損失的形式,假設模型預測與真實值之間的誤差服從拉普拉斯分布 Laplace distribution( μ = 0 , b = 1 \mu=0,b=1 μ=0,b=1)。

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

均方差損失(Mean Squared Error Loss MSE) 損失是機器學習、深度學習回歸任務中最常用的一種損失函數,也稱為 L2 Loss。

L2正則損失函數是預測值與目标值內插補點的平方和,公式如下:

L ( Y , f ( X ) ) = ∑ i = 1 n ( Y − f ( X ) ) 2 L(Y,f(X))= \sum_{i=1}^{n} (Y-f(X))^{2} L(Y,f(X))=i=1∑n​(Y−f(X))2

當對L2取平均值,就變成均方誤差(MSE, mean squared error),公式如下:

M S E ( Y , f ( X ) ) = 1 n ∑ i = 1 n ( Y − f ( X ) ) 2 MSE(Y,f(X))= \frac{1}{n}\sum_{i=1}^{n} (Y-f(X))^{2} MSE(Y,f(X))=n1​i=1∑n​(Y−f(X))2

優點:L2正則損失函數在目标值附近有很好的曲度,離目标越近收斂越慢,是非常有用的損失函數。

L1、L2正則損失函數如下圖所示:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

背後的假設

實際上在一定的假設下,我們可以使用最大化似然得到均方差損失的形式。假設模型預測與真實值之間的誤差服從标準高斯分布( μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1 )。

Pseudo-Huber 損失函數

Huber損失函數經常用于回歸問題,它是分段函數,公式如下:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

從這個公式可以看出當殘差(預測值與目标值的內插補點,即y-f(x) )很小的時候,損失函數為L2範數,殘差大的時候,為L1範數的線性函數。該公式依賴于參數delta,delta越大,則兩邊的線性部分越陡峭。

L1、L2、Huber損失函數的對比圖如下,其中Huber的delta取0.25、5兩個值:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

分類模型的損失函數

Hinge損失函數

又名折頁損失函數、鉸鍊損失函數。Hinge損失常用于二分類問題,主要用來評估向量機算法(SVM),但有時也用來評估神經網絡算法,公式如下:

L ( y ) = m a x ( 0 , 1 − t ⋅ y ) L(y)=max(0,1-t\cdot y) L(y)=max(0,1−t⋅y)

上面的代碼中,目标值為1,當預測值離1越近,則損失函數越小,如下圖:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

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

交叉熵來自于資訊論,是分類問題中使用廣泛的損失函數。交叉熵刻畫了兩個機率分布之間的距離,當兩個機率分布越接近時,它們的交叉熵也就越小,給定兩個機率分布p和q,則距離如下:

H ( p , q ) = − ∑ x p ( x ) l o g ( x ) H(p,q)=-\sum_{x}p(x)log(x) H(p,q)=−x∑​p(x)log(x)

對于兩類問題,當一個機率p=y,則另一個機率q=1-y,是以代入化簡後的公式如下:

H ( p , q ) = − ∑ i p ( i ) l o g q ( i ) = − y l o g y ^ − ( 1 − y ) l o g ( 1 − y ^ ) H(p,q)=-\sum_{i}p(i)logq(i)=-ylog\widehat{y}-(1-y)log(1-\widehat{y}) H(p,q)=−i∑​p(i)logq(i)=−ylogy

​−(1−y)log(1−y

​)

Cross-entropy損失函數主要應用在二分類問題上,預測值為機率值,取值範圍為[0,1],損失函數圖如下:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

權重交叉熵損失函數

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

Sigmoid交叉熵損失函數

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

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

Softmax交叉熵損失函數

在Logistic regression二分類問題中,我們可以使用sigmoid函數将輸入映射到區間中,進而得到屬于某個類别的機率。将這個問題進行泛化,推廣到多分類問題中,我們可以使用softmax函數,對輸出的值歸一化為機率值。通過softmax函數将輸出結果轉化成機率分布,進而便于輸入到交叉熵裡面進行計算(交叉熵要求輸入為機率),softmax定義如下:

y ′ = s o f t m a x ( y i ) = e y i ∑ j = 1 n e y i {y}'=softmax(y_{i})=\frac{e^{y_{i}}}{\sum_{j=1}^{n}e^{y_{i}}} y′=softmax(yi​)=∑j=1n​eyi​eyi​​

以上可以看出: ∑ y ′ = 1 \sum {y}'=1 ∑y′=1,這也是為什麼softmax層的每個節點的輸出值成為了機率和為1的機率分布。

交叉熵描述了兩個機率分布之間的距離,當交叉熵越小說明二者之間越接近。盡管交叉熵刻畫的是兩個機率分布之間的距離,但是神經網絡的輸出卻不一定是一個機率分布。為此我們常常用Softmax回歸将神經網絡前向傳播得到的結果變成機率分布。

Softmax+交叉熵也被稱為Softmax損失函數,它表達式為:

H ( P , T ) = − ∑ 1 C P l o g ( T ) H(P,T)=-\sum_{1}^{C}Plog(T) H(P,T)=−1∑C​Plog(T)

其中,P為樣本的期望輸出,它是一個one-hot編碼形式。T為樣本的實際輸出,其中 T = [ s o f t m a x ( y 1 ) , s o f t m a x ( y 2 ) , . . . , s o f t m a x ( y i = n ) ] T=[softmax(y_{1}),softmax(y_{2}),...,softmax(y_{i=n})] T=[softmax(y1​),softmax(y2​),...,softmax(yi=n​)]。這裡P和T是一個長度與類别數相同的集合。

圖見《百面機器學習》P143

參考:https://blog.csdn.net/xg123321123/article/details/80781611

為什麼邏輯回歸不用mse,為什麼分類就不能有mse

角度1—梯度角度解釋:

常見損失彙總回歸模型的損失函數分類模型的損失函數為什麼邏輯回歸不用mse,為什麼分類就不能有mse

其中fw,b代表的是我們的訓練模型,根據上面的梯度更新公式可知,當預測值趨于0或者趨于1,也就是預測越來越準的情況下,梯度會趨于消失,即梯度消失問題,這樣模型很難收斂。

角度二——凸or不凸:

當我們使用mse作為邏輯回歸的損失函數的時候推導出來的損失函數是一個非凸函數,我們無法使用梯度下降法這類凸優化的方法來求解一個非凸函數的最優值,如果一定要使用凸優化的方法去解決非凸函數優化問題則會很容易陷入局部最優值。

https://zhuanlan.zhihu.com/p/70127314

總結:

損失 凸函數 光滑
絕對值損失 非凸 非光滑 回歸
歐拉損失 光滑 回歸
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

https://zhuanlan.zhihu.com/p/70127314

https://zhuanlan.zhihu.com/p/77686118

回歸損失函數的選取:平法差适合高斯分布的資料,絕對值适合拉普拉斯分布的資料。

繼續閱讀