如果概括性地回答這個問題,我們其實是希望得到最大似然(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回歸等回歸問題,邏輯回歸,感知機等分類問題 經驗風險 結構風險,極大似然估計 拉普拉斯平滑估計 最大後驗概率估計 貝葉斯估計,貝葉斯公式,頻率學派 貝葉斯學派,概率 統計 記錄被這些各種概念困擾的我,今天終於理出了一些頭緒。概率...