交叉熵損失函數的理解

轉載自:https://blog.csdn.net/red_stone1/article/details/80735068

交叉熵損失函數的公式:

1、交叉熵損失函數的原理

我們知道,在二分類問題模型:例如邏輯迴歸、神經網絡等,真實樣本的標籤爲[0, 1],分別表示負類和正類。模型的最後通常會經過一個sigmoid函數,輸出一個概率值,這個概率值反映了預測爲正類的可能性:概率越大,可能性越大。sigmoid函數表達式和圖形如下所示:

其中s是模型上一層的輸出,sigmoid函數有這樣的特點:s = 0 時,g(s) = 0.5; s >> 0 時,g ≈ 1,s << 0 時,g ≈ 0。顯然,g(s) 將前一級的線性輸出映射到[0, 1]之間的數值概率上,這裏g(s)就是交叉熵公式中的模型預測輸出。

預測輸出即sigmoid函數的輸出表徵了當前樣本標籤爲1的概率:

當前樣本標籤爲 0 的概率就可以表達成:

如果我們從極大似然的角度出發,把上面兩種情況整合到一起:

當真實樣本標籤 y = 0 時,上面式子第一項就爲1,概率等式轉化爲:

當真實樣本標籤 y = 1 時,上面式子第二項就爲1,概率等式轉化爲:

兩種情況下概率表達式跟之前的完全一致,只不過把兩種情況整合在一起了。

重點看一下整合之後的概率表達式,我們希望的是概率P(y|x)越大越好(y等於0或者1都會使P = 1, 概率爲1最大,不想讓P稱爲成爲中間的值)。首先,我們對P(y|x)引入log函數,因爲log運算並不會影響函數本身的單調性。則有:

我們希望logP(y|x)越大越好,反過來,只要logP(y|x)的負值-logP(y|x)越小就行了。那我們就可以引入損失函數,且令Loss = -logP(y|x)即可。則得到損失函數爲:

我們已經推導出了單個樣本的損失函數,如果計算N個樣本的損失函數,只要將N個Loss疊加起來就可以了:

這樣,我們已經完整地實現了交叉熵損失函數的推導過程。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章