為什麼使用交叉熵作為損失函式?

2022-09-18 10:45:22 字數 1444 閱讀 3511

如果概括性地回答這個問題,我們其實是希望得到最大似然(maximum likelihood),使得模型的**分布與資料的實際分布盡可能相近。而最大化log似然等同於最小化負log似然,最小化負log似然等價於最小化kl散度(相對熵),kl散度裡包含有只與資料集相關而與模型無關的log

p^da

talog\hat_

logp^​

data

​,這一部分對每個特定資料集來說是乙個定值,為了簡化去掉該部分我們最後得到了交叉熵。

上面博主補充這段如果你不是很理解,可以參見下面來自知乎這張圖:

圖中:p(x

)p(x)

p(x)

是由資料決定的概率,那麼p(x

)p(x)

p(x)

是定值,則它的log lnp

(x)lnp(x)

lnp(x)

也是定值,所以最小化交叉熵最終等效與最小化−∫l

nq(x

)-\int lnq(x)

−∫lnq(

x),而− ∫l

nq(x

)-\int lnq(x)

−∫lnq(

x)即為負log似然。

也就是說,雖然最小化的是交叉熵,但其實我們的目的是最大似然,因為最大似然有以下性質:

最大似然有兩個非常好的統計性質:

樣本數量趨於無窮大時,模型收斂的概率會隨著樣本數m的增大而增大。這被稱為一致性

乙個一致性估計器能夠在固定數目的樣本m下取得更低的泛化誤差(generalization error),或者等價的,需要更少的樣本就可以得到固定水平的泛化誤差。這被稱作統計高效性

最大化log似然和最小化均方誤差(mse),得到的估計是相同的。

the cramér-rao lower bound (rao, 1945; cramér, 1946)證明了沒有任何其他的一致性估計器(consistent estimator)比最大log似然估計器有更小的mse。

另外,在梯度計算層面上,交叉熵對引數的偏導不含對sigmoid函式的求導,而均方誤差(mse)等其他則含有sigmoid函式的偏導項。大家知道sigmoid的值很小或者很大時梯度幾乎為零,這會使得梯度下降演算法無法取得有效進展,交叉熵則避免了這一問題。

綜上所述,最小化交叉熵能得到擁有一致性統計高效性的最大似然,而且在計算上也比其他損失函式要適合優化演算法,因此我們通常選擇交叉熵作為損失函式。

deep learning 英文版

為什麼分類問題使用交叉熵損失函式?

理由一 kl散度 衡量兩個概率分布的差異 其中,h p q ip i l ogq i h p,q sum ip i log q i h p,q i p i log q i 是交叉熵 h p ip i log p i h p sum i p i log p i h p i p i l ogp i 是熵...

為什麼損失函式多用交叉熵entropy來計算

elasticsearch權威指南 我們知道對於回歸問題一般採用均方差來計算損失,這是因為回歸輸出的是乙個實數,這樣來計算乙個batch中 值與實際的均方差是自然而然的選擇的,而且導數非常簡單 神經網路引數的更新依據就是梯度也就是偏導 這裡不再推導均方差的偏導。但對於分類問題,輸出的是乙個n維的向量...

交叉熵損失函式 交叉熵損失函式和均方差損失函式引出

交叉熵 均方差損失函式,加正則項的損失函式,線性回歸 嶺回歸 lasso回歸等回歸問題,邏輯回歸,感知機等分類問題 經驗風險 結構風險,極大似然估計 拉普拉斯平滑估計 最大後驗概率估計 貝葉斯估計,貝葉斯公式,頻率學派 貝葉斯學派,概率 統計 記錄被這些各種概念困擾的我,今天終於理出了一些頭緒。概率...