比較下MSE和交叉熵

2021-10-06 01:59:47 字數 1344 閱讀 9113

在之前的文章中也說過為啥lr用sigmod函式,這裡著重說一下為啥分類問題用到交叉熵比較多呢,為啥不用mse這些呢?交叉熵有啥好處?本文主要比較小mse以及交叉熵,關於lr為啥用sigmod函式,分類問題中為啥用交叉熵這些問題,在這裡可以找到。

首先來看兩者的表示式:

mse:

l =1

n∑i=

1n∣∣

yi−y

^i∣∣

22

l = \frac \sum_^ ||y_i - \hat_i ||_2^2

l=n1​∑

i=1n

​∣∣y

i​−y

^​i​

∣∣22

​交叉熵:

l =1

n∑i=

1n∑k

=1ky

ik

∗log⁡y

^ik"

l = \frac \sum_^ \sum_^ y_i^k * \log \hat_i^k"

l=n1​∑

i=1n

​∑k=

1k​y

ik​∗

logy^​

ik​"

可以看到,對於分類問題,實際的標籤為0和1,那麼交叉熵很多項是不用算的,舉個例子,

實際標籤是[1,0,0],模型**得到的概率是[0.9,0.4,0.3],那麼交叉熵損失函式的結果是 1log(0.9)+0log(0.4)+0log(0.3),而mse則都得全部算一遍。因此我們得到結論1

結論1:mse無差別得關注全部類別上**概率和真實概率的差.交叉熵關注的是正確類別的**概率.

其次,我們在之前的文章中也說到了關於求解優化模型的時候的問題,mse會收斂的慢一些,因為它求導的結果相比於交叉熵還多乘以乙個sigmod函式,但是交叉熵梯度中不再含有sigmoid的導數,有的是sigmoid的值和實際值之間的差,也就滿足了我們之前所說的錯誤越大,下降的越快的要求,你說爽不爽,因而得到結論2,也就是交叉熵更有利於梯度更新。

第三點:mse是假設資料符合高斯分布時,模型概率分布的負條件對數似然;交叉熵是假設模型分布為多項式分布時,模型分布的負條件對數似然。

還有一點要說明,mse對殘差大的樣例懲罰更大些.,我們還舉個例子看看,比如真實標籤分別是(1, 0, 0).模型1的**標籤是(0.8, 0.2, 0),模型2的是(0.9, 0.1, 0). 但mse-based算出來模型1的誤差是mse-based算出模型2的4倍,而交叉熵-based算出來模型1的誤差是交叉熵-based算出來模型2的2倍左右.對於模型1和模型2輸出的結果。其實也主要是由於mse太苛刻了,想要把左右的值都**的分毫不差,而交叉熵只關注正樣本也也是就1的那些,計算那些損失函式就可以了,樣本標籤為0的壓根不用算。

第五節,損失函式 MSE和交叉熵

損失函式用於描述模型 值與真實值的差距大小,一般有兩種比較常見的演算法 均值平方差 mse 和交叉熵。1 均值平方差 mse 指引數估計值與引數真實值之差平方的期望值。在神經網路計算時,值要與真實值控制在同樣的資料分布內,假設將 值經過sigmoid啟用函式得到取值範圍在0 1之間,那麼真實值也歸一...

資訊熵,交叉熵和相對熵

怎樣去量化資訊?一些大牛對某些問題的見解,我們會說乾貨滿滿,就代表這個見解具有很大的資訊。對於一些不太確定的事,比如一場足球比賽的結果,會有勝平負三種情況,有不確定的情況,但如果某人有直接的內幕訊息,說這場主隊穩輸,因為 這樣的乙個資訊就具有很大的資訊量了,因為不確定的事情變得十分確定。如果有人告訴...

softmax和交叉熵

softmax用於多分類過程中,往往加在神經網路的他將多個神經元的輸出,對映到 0,1 區間內,看成概率來解,這些值的累和為1,在選取輸出節點的時候選取概率最大的節點作為我們的 目標,從而進行多分類。softmax 相關求導 當對分類的loss進行改進時,我們通過梯度下降,每次優化乙個step大小的...