因為sigmoid函數的性質,如圖的兩端,幾近于平坦,導致 在 取大部分值時會很小,這樣會使得 和 更新非常慢(因為 )。

再定量解釋如下:在上式

a) 當真實值 若 輸出值 ,則

若 輸出值 ,則

b) 當真實值 , 若 輸出值 ,則

若 輸出值 ,則

也就是平方損失(MSE)的梯度更新很慢,如下圖所示

這就帶來實際操作的問題。當梯度很小的時候,應該減小步長(否則容易在最優解附近產生來回震蕩),但是如果采用 MSE ,當梯度很小的時候,無法知道是離目標很遠還是已經在目標附近了。(離目標很近和離目標很遠,其梯度都很小)

2. Cross-entropy

為了克服上述 MSE 不足,引入了categorical_crossentropy(交叉熵損失函數)

1)二分類 Binary Cross-entropy

激活函數為 sigmoid

損失函數:

或者簡寫成:

其中 , 表示樣本數量。

同樣求導可得:

證明如下:

其中,

因此, 的梯度公式中原來的 被消掉了,所以導數中沒有 這一項,權重的更新是受 這一項影響(表示真實值和輸出值之間的誤差),即受誤差的影響,所以當誤差大的時候,權重更新就快,當誤差小的時候,權重的更新就慢。

2)多分類 Categorican Cross-entropy

激活函數為 softmax

可以看作是Sigmoid的一般情況,用于多分類問題。

損失函數:

后續分析類似。

3. 補充 Cross-entropy 的缺點

sigmoid(softmax)+cross-entropy loss 擅長于學習類間的信息,因為它采用了類間競爭機制,它只關心對于正確標簽預測概率的準確性,忽略了其他非正確標簽的差異,導致學習到的特征比較散。基于這個問題的優化有很多,比如對softmax進行改進,如L-Softmax、SM-Softmax、AM-Softmax等。這些在本篇不展開討論。

原因 2:MSE是非凸優化問題而 Cross-entropy 是凸優化問題

1.MSE

我們從最簡單的線性回歸開始討論:線性回歸(回歸問題)使用的是平方損失:

因為這個函數 是凸函數,直接求導等于零,即可求出解析解,很簡單。但是對于邏輯回歸則不行(分類問題【注意:邏輯回歸不是回歸!是分類!!】。因為如果邏輯回歸也用平方損失作為損失函數,則:

其中 表示樣本數量。上式是非凸的,不能直接求解析解,而且不宜優化,易陷入局部最優解,即使使用梯度下降也很難得到全局最優解。如下圖所示:

2.Cross-entropy

而,Cross-entropy 計算 loss,則依舊是一個凸優化問題

以下進行詳細說明和推導:

邏輯回歸模型進行學習時,給定訓練集:,其中 ,可以應用 極大似然估計 估計模型參數,從而得到邏輯回歸模型。

設:

似然函數:

對數似然函數為:

接下來求 的極大值,從而得到 的估計值。

這樣一來,問題就變成了以對數似然函數為目標函數的最優化問題,邏輯回歸 中通常的方法就是梯度下降法擬牛頓法

極大似然函數是求極大,取個相反數,再對所有 個樣本取平均,即得到邏輯回歸的損失函數

并且這個損失函數 是凸函數,沒有局部最優解,便于優化。

以下是直觀理解:

其中:

當類別標簽為 時,越靠近 1 則損失越小;當類別標簽為 時,越靠近 1 則損失越大.

三、總結

  1. 分類問題,都用 one-hot + Cross-entropy
  2. training 過程中,分類問題用 Cross-entropy,回歸問題用 mean squared error
  3. training 之后,validation / testing 時,使用 classification error,更直觀,而且是我們最關注的指標。(分類錯誤數量 / 總數) 即:classification error

參考鏈接

  1. 《李宏毅機器學習》課程中 邏輯回歸 一節,: 李宏毅機器筆記 Logistic Regression(解釋 LR 為什么不能用 square error ).
  2. 解析損失函數之categorical_crossentropy loss與 Hinge loss.(https://www.jianshu.com/p/ae3932eda8f2)
  3. 神經網絡的分類模型 LOSS 函數為什么要用 CROSS ENTROPY.(https://jackon.me/posts/why-use-cross-entropy-error-for-loss-function/)
  4. 交叉熵損失函數.(https://blog.csdn.net/yimingsilence/article/details/52740638?depth_1-)

文章轉載自: 交叉熵損失(Cross-entropy)和平方損失(MSE)究竟有何區別?

上一篇:

快速接入百度地圖MCP Server

下一篇:

2025年最新LangChain Agent教程:從入門到精通
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費