一文總結條件熵、交叉熵、相對熵、互資訊

hearthougan發表於2017-09-07

條件熵:H(Y|X)表示在已知隨機變數X的條件下,隨機變數Y的不確定性,H(Y|X)定義為:


舉個例子:
  有一堆西瓜,已知這堆西瓜的色澤,以及每種色澤對應好瓜和壞瓜的個數,如下所示,設X表示色澤,Y表示好瓜或者壞瓜。





則:




這個例子就是計算條件熵的一個過程,現在證明條件熵公式:








有很多書上的條件熵是這麼定義的,如果繼續化簡就可以得到我們上面定義的條件熵,接著化簡:







得證!


資訊增益:

  ,表示X出現後隨機變數Y的不確定性減少了多少。


  比如上述西瓜的例中,當不知道色澤的時候,好瓜與壞瓜的不確定度為:


  當知道色澤之後,好瓜與壞瓜的不確定度為:


  那麼知道色澤之後,好瓜與壞瓜的不確定度減少了:



交叉熵(只談論離散情況)

  假設有這樣一個樣本集,p為它的真實分佈,q為它的估計分佈。如果按照真實分佈p來度量識別一個樣本所需要的編碼長度的期望為:(如果對編碼長度不瞭解的,請看:http://blog.csdn.net/hearthougan/article/details/77774948


  如果使用估計的分佈q來表示來自真實分佈p的平均編碼長度,則:


  因為我們編碼的樣本來自於真實的分佈p,所以乘的是真實概率。在影象分類的時候,比如softmax分類器,在訓練的時候,我們已經給定影象的標籤,所以這個時候每幅圖片的真實概率就是1,這個時候的損失函式就是:


  怎麼理解呢?就是讓預測的概率值越來越接近於1!(想多瞭解softmax,請參考http://blog.csdn.net/hearthougan/article/details/71629657

舉個知乎上的例子,有4個字母(A,B,C,D)的資料集中,真實分佈p=(1/2, 1/2, 0, 0),即A和B出現的概率均為1/2,C和D出現的概率都為0,


  真實分佈的編碼長度(最優編碼長度)

  也就是說,我們僅僅需要一位編碼就可以確定所要傳送的資料是什麼。那麼假如我們的估計分佈如下:

  那麼傳送資料的平均編碼長度為:


  即為了確定所傳送的資料,平均需要長度2編碼,才可以。交叉熵可以這麼理解:用估計的分佈對來自真實分佈的樣本進行編碼,所需要的平均長度

  根據Gibbs' inequality可知交叉熵要大於等於真實分佈的資訊熵(最優編碼)。Gibbs' inequality如下:

對於樣本服從分佈,對於其他任何概率分佈,都有:


當且僅當時,等號成立。


相對熵(KL散度)

  由交叉熵可知,用估計的概率分佈所需的編碼長度,比真實分佈的編碼長,但是長多少呢?這個就需要另一個度量,相對熵,也稱KL散度。


  相對熵:用交叉熵減去真實分佈的資訊熵,表示用估計分佈計算的平均編碼長度比最短平均編碼長度長多少。因此有:

  交叉熵=資訊熵+相對熵

  由於對數函式時凸函式,則有:


  因此,相對熵始終是大於等於0的。從上面的描述中也可以看得出,相對熵其實可以理解成兩種分佈的距離。

互資訊:

  兩個隨機變數X,Y的互資訊,定義為:X,Y的聯合分佈P(X,Y)與乘積分佈P(X)P(Y)的相對熵:


  怎麼理解呢?也就是用乘積分佈P(X)P(Y)的交叉熵,減去聯合分佈的資訊熵,就是互資訊,還不好理解,就可以看如下圖示:


  相當於一種不嚴謹的說法就是:

  或許另一種等價的定義好理解:


  其實兩種定義是等價的:



Reference:

https://baike.baidu.com/item/%E7%9B%B8%E5%AF%B9%E7%86%B5/4233536?fr=aladdin

https://baike.baidu.com/item/%E4%BA%92%E4%BF%A1%E6%81%AF/7423853?fr=aladdin

https://www.zhihu.com/question/41252833

相關文章