理解熵,交叉熵和交叉熵的應用

一 信息量

信息論當中的熵指的是信息量的混亂程度,也可以理解成信息量的大小。

舉個簡單的例子,以下兩個句子,哪一個句子的信息量更大呢?

  1. 我今天沒中彩票
  2. 我今天中彩票了

從文本上來看,這兩句話的字數一致,描述的事件也基本一致,但是顯然第二句話的信息量要比第一句大得多,原因也很簡單,因爲中彩票的概率要比不中彩票低得多。一個低概率的結果與一個高概率的結果相比,低概率的結果帶來的信息量更大。

我們用對數函數來量化一個事件的信息量:

因爲一個事件發生的概率取值範圍在0到1之間,所以log(p(X))的範圍是負無窮到0,我們加一個負號將它變成正值。畫成函數大概是下面這個樣子:

二 信息熵

現在我知道一個事件產生某個結果的自信息,我想知道這個事件平均帶來多少自信息。對自信息s進行加權平均是很直觀的。現在的問題是選擇什麼權重?因爲我知道每個結果的概率,所以用概率作爲權重是有意義的,因爲這是每個結果應該發生的概率

我們上面的公式定義的是信息量,但是這裏有一個問題,我們定義的只是事件X的一種結果的信息量。對於一個事件來說,它可能的結果可能不止一種。我們希望定義整個事件的信息量,其實也很好辦,我們算下整個事件信息量的期望即可,這個期望就是信息熵。

期望的公式我們應該都還記得:

套入信息量的公式可以得到信息熵H(x):

對於某個事件,有n種可能性,每一種可能性都有一個概率p(xi) ,這樣就可以計算出某一種可能性的信息量。舉一個例子,假設你拿出了你的電腦,按下開關,會有三種可能性,下表列出了每一種可能的概率及其對應的信息量。

所以上面的問題結果就是 :

三 交叉熵

現在,如果每個結果的實際概率爲 pi 卻有人將概率估計爲 qi怎麼辦。在這種情況下,每個事件都將以pi的概率發生,但是公式裏的自信息就要改成qi(因爲人們以爲結果的概率是qi)。現在,在這種情況下,加權平均自信息就變爲了交叉熵c,它可以寫成:

交叉熵總是大於熵,並且僅在以下情況下才與熵相同 pi = qi,你可以觀看 https://www.desmos.com/calculator/zytm2sf56e 的插圖來幫助理解

 

交叉熵損失

    

紫色線代表藍色曲線下的面積,估計概率分佈(橙色線),實際概率分佈(紅色線)

在上面我提到的圖中,你會注意到,隨着估計的概率分佈偏離實際/期望的概率分佈,交叉熵增加,反之亦然。因此,我們可以說,最小化交叉熵將使我們更接近實際/期望的分佈,這就是我們想要的。這就是爲什麼我們嘗試降低交叉熵,以使我們的預測概率分佈最終接近實際分佈的原因。因此,我們得到交叉熵損失的公式爲:

在只有兩個類的二分類問題的情況下,我們將其命名爲二分類交叉熵損失,以上公式變爲:

 

從期望角度上理解來說,信息熵計算的是log(p)在p上的期望,交叉熵則是log(q)在p上的期望;換句話說,信息熵爲事件的信息量關於其事件發生的概率分佈的期望值,那麼交叉熵可以認爲是事件的信息量關於真實概率分佈的期望值

 

四 交叉熵的應用

1.爲什麼要用交叉熵做loss函數?

在線性迴歸問題中,常常使用MSE(Mean Squared Error)作爲loss函數,比如:

這裏的m表示m個樣本的,loss爲m個樣本的loss均值。
MSE在線性迴歸問題中比較好用,那麼在邏輯分類問題中還是如此麼?

 

2.交叉熵在單分類問題中的使用

這裏的單類別是指,每一張圖像樣本只能有一個類別,比如只能是狗或只能是貓。
交叉熵在單分類問題上基本是標配的方法

上式爲一張樣本的loss計算方法,n代表着n種類別。


舉例說明,比如有如下樣本

對應一個batch的loss就是

m爲當前batch的樣本數

 

3.交叉熵在多分類問題中的使用

這裏的多類別是指,每一張圖像樣本可以有多個類別,比如同時包含一隻貓和一隻狗
和單分類問題的標籤不同,多分類的標籤是n-hot。

有一張圖,即有青蛙,又有老鼠,所以是一個多分類問題

值得注意的是,這裏的Pred不再是通過softmax計算的了,這裏採用的是sigmoid。將每一個節點的輸出歸一化到[0,1]之間。所有Pred值的和也不再爲1。換句話說,就是每一個Label都是獨立分佈的,相互之間沒有影響。所以交叉熵在這裏是單獨對每一個節點進行計算,每一個節點只有兩種可能值,所以是一個二項分佈。前面說過對於二項分佈這種特殊的分佈,熵的計算可以進行簡化。
同樣的,交叉熵的計算也可以簡化,即

注意,上式只是針對一個節點的計算公式。這一點一定要和單分類loss區分開來。
例子中可以計算爲:

單張樣本的loss即爲loss=loss貓+loss蛙+loss鼠

每一個batch的loss就是:

m爲當前batch中的樣本量,n爲類別數。

 

單分類時,每張圖片的損失是一個交叉熵,交叉熵針對的是所有類別(所有類別概率和是1)。 多分類時,每張圖片的損失是N個交叉熵之和(N爲類別數),交叉熵針對的是單個類別(單個類別概率和是1)。

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