交叉熵?fù)p失函數(shù)

轉(zhuǎn)自簡(jiǎn)單的交叉熵?fù)p失函數(shù),你真的懂了嗎?
說(shuō)起交叉熵?fù)p失函數(shù)「Cross Entropy Loss」,腦海中立馬浮現(xiàn)出它的公式:

交叉熵函數(shù)
我們已經(jīng)對(duì)這個(gè)交叉熵函數(shù)非常熟悉,大多數(shù)情況下都是直接拿來(lái)使用就好。但是它是怎么來(lái)的?為什么它能表征真實(shí)樣本標(biāo)簽和預(yù)測(cè)概率之間的差值?上面的交叉熵函數(shù)是否有其它變種?也許很多朋友還不是很清楚!沒(méi)關(guān)系,接下來(lái)我將盡可能以最通俗的語(yǔ)言回答上面這幾個(gè)問(wèn)題。


1. 交叉熵?fù)p失函數(shù)的數(shù)學(xué)原理

我們知道,在二分類問(wèn)題模型:例如邏輯回歸「Logistic Regression」、神經(jīng)網(wǎng)絡(luò)「Neural Network」等,真實(shí)樣本的標(biāo)簽為 [0,1],分別表示負(fù)類和正類。模型的最后通常會(huì)經(jīng)過(guò)一個(gè) Sigmoid 函數(shù),輸出一個(gè)概率值,這個(gè)概率值反映了預(yù)測(cè)為正類的可能性:概率越大,可能性越大。

Sigmoid 函數(shù)的表達(dá)式和圖形如下所示:
Sigmoid

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

我們說(shuō)了,預(yù)測(cè)輸出即 Sigmoid 函數(shù)的輸出表征了當(dāng)前樣本標(biāo)簽為 1 的概率:

很明顯,當(dāng)前樣本標(biāo)簽為 0 的概率就可以表達(dá)成:
重點(diǎn)來(lái)了,如果我們從極大似然性的角度出發(fā),把上面兩種情況整合到一起:
y∈[0, 1]
也即,當(dāng)真實(shí)樣本標(biāo)簽 y = 0 時(shí),上面式子第一項(xiàng)就為 1,概率等式轉(zhuǎn)化為:

當(dāng)真實(shí)樣本標(biāo)簽 y = 1 時(shí),上面式子第二項(xiàng)就為 1,概率等式轉(zhuǎn)化為:
兩種情況下概率表達(dá)式跟之前的完全一致,只不過(guò)我們把兩種情況整合在一起了。

重點(diǎn)看一下整合之后的概率表達(dá)式,我們希望的是概率 P(y|x) 越大越好。首先,我們對(duì) P(y|x) 引入 log 函數(shù),因?yàn)?log 運(yùn)算并不會(huì)影響函數(shù)本身的單調(diào)性。則有:

我們希望 log P(y|x) 越大越好,反過(guò)來(lái),只要 log P(y|x) 的負(fù)值 -log P(y|x) 越小就行了。那我們就可以引入損失函數(shù),且令 Loss = -log P(y|x)即可。則得到損失函數(shù)為:
非常簡(jiǎn)單,我們已經(jīng)推導(dǎo)出了單個(gè)樣本的損失函數(shù),是如果是計(jì)算 N 個(gè)樣本的總的損失函數(shù),只要將 N 個(gè) Loss 疊加起來(lái)就可以了:
這樣,我們已經(jīng)完整地實(shí)現(xiàn)了交叉熵?fù)p失函數(shù)的推導(dǎo)過(guò)程。

2. 交叉熵?fù)p失函數(shù)的直觀理解

可能會(huì)有讀者說(shuō),我已經(jīng)知道了交叉熵?fù)p失函數(shù)的推導(dǎo)過(guò)程。但是能不能從更直觀的角度去理解這個(gè)表達(dá)式呢?而不是僅僅記住這個(gè)公式。好問(wèn)題!接下來(lái),我們從圖形的角度,分析交叉熵函數(shù),加深大家的理解。

首先,還是寫出單個(gè)樣本的交叉熵?fù)p失函數(shù):

我們知道,當(dāng) y = 1 時(shí):
這時(shí)候,L 與預(yù)測(cè)輸出的關(guān)系如下圖所示:
看了 L 的圖形,簡(jiǎn)單明了!橫坐標(biāo)是預(yù)測(cè)輸出,縱坐標(biāo)是交叉熵?fù)p失函數(shù) L。顯然,預(yù)測(cè)輸出越接近真實(shí)樣本標(biāo)簽 1,損失函數(shù) L 越?。活A(yù)測(cè)輸出越接近 0,L 越大。因此,函數(shù)的變化趨勢(shì)完全符合實(shí)際需要的情況。

當(dāng) y = 0 時(shí):

這時(shí)候,L 與預(yù)測(cè)輸出的關(guān)系如下圖所示:

同樣,預(yù)測(cè)輸出越接近真實(shí)樣本標(biāo)簽 0,損失函數(shù) L 越??;預(yù)測(cè)函數(shù)越接近 1,L 越大。函數(shù)的變化趨勢(shì)也完全符合實(shí)際需要的情況。

從上面兩種圖,可以幫助我們對(duì)交叉熵?fù)p失函數(shù)有更直觀的理解。無(wú)論真實(shí)樣本標(biāo)簽 y 是 0 還是 1,L 都表征了預(yù)測(cè)輸出與 y 的差距。

另外,重點(diǎn)提一點(diǎn)的是,從圖形中我們可以發(fā)現(xiàn):預(yù)測(cè)輸出與 y 差得越多,L 的值越大,也就是說(shuō)對(duì)當(dāng)前模型的 “ 懲罰 ” 越大,而且是非線性增大,是一種類似指數(shù)增長(zhǎng)的級(jí)別。這是由 log 函數(shù)本身的特性所決定的。這樣的好處是模型會(huì)傾向于讓預(yù)測(cè)輸出更接近真實(shí)樣本標(biāo)簽 y。

3. 交叉熵?fù)p失函數(shù)的其它形式

什么?交叉熵?fù)p失函數(shù)還有其它形式?沒(méi)錯(cuò)!我剛才介紹的是一個(gè)典型的形式。接下來(lái)我將從另一個(gè)角度推導(dǎo)新的交叉熵?fù)p失函數(shù)。

這種形式下假設(shè)真實(shí)樣本的標(biāo)簽為 +1 和 -1,分別表示正類和負(fù)類。有個(gè)已知的知識(shí)點(diǎn)是Sigmoid 函數(shù)具有如下性質(zhì):

這個(gè)性質(zhì)我們先放在這,待會(huì)有用。

好了,我們之前說(shuō)了 y = +1 時(shí),下列等式成立:

如果 y = -1 時(shí),并引入 Sigmoid 函數(shù)的性質(zhì),下列等式成立:
重點(diǎn)來(lái)了,因?yàn)?y 取值為 +1 或 -1,可以把 y 值帶入,將上面兩個(gè)式子整合到一起:
這里的y∈[-1, +1]
接下來(lái),同樣引入 log 函數(shù),得到:

要讓概率最大,反過(guò)來(lái),只要其負(fù)數(shù)最小即可。那么就可以定義相應(yīng)的損失函數(shù)為:
還記得 Sigmoid 函數(shù)的表達(dá)式吧?將 g(ys) 帶入:
好咯,L 就是我要推導(dǎo)的交叉熵?fù)p失函數(shù)。如果是 N 個(gè)樣本,其交叉熵?fù)p失函數(shù)為:
接下來(lái),我們從圖形化直觀角度來(lái)看。當(dāng) y = +1 時(shí):
這時(shí)候,L 與上一層得分函數(shù) s 的關(guān)系如下圖所示:
橫坐標(biāo)是 s,縱坐標(biāo)是 L。顯然,s 越接近真實(shí)樣本標(biāo)簽 1,損失函數(shù) L 越?。籹 越接近 -1,L 越大。

另一方面,當(dāng) y = -1 時(shí):

這時(shí)候,L 與上一層得分函數(shù) s 的關(guān)系如下圖所示:

同樣,s 越接近真實(shí)樣本標(biāo)簽 -1,損失函數(shù) L 越?。籹 越接近 +1,L 越大。

4. 總結(jié)

本文主要介紹了交叉熵?fù)p失函數(shù)的數(shù)學(xué)原理和推導(dǎo)過(guò)程,也從不同角度介紹了交叉熵?fù)p失函數(shù)的兩種形式。第一種形式在實(shí)際應(yīng)用中更加常見(jiàn),例如神經(jīng)網(wǎng)絡(luò)等復(fù)雜模型;第二種多用于簡(jiǎn)單的邏輯回歸模型。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容