信息量、信息熵、相對熵,交叉熵 簡單理解


信息量:

假設X是一個離散型隨機變量,其取值集合為X,概率分布函數為p(x)=Pr(X=x),x∈X,我們定義事件X=x0的信息量為: I(x0)=−log(p(x0)),可以理解為,一個事件發生的概率越大,則它所攜帶的信息量就越小,而當p(x0)=1時,熵將等於0,也就是說該事件的發生不會導致任何信息量的增加。

  事件A:小明考試及格,對應的概率P(xA)=0.1,信息量為I(xA)=−log(0.1)=3.3219 

  事件B:小王考試及格,對應的概率P(xB)=0.999,信息量為I(xB)=−log(0.999)=0.0014 

也就是說,一件事發生不出所料,那么它的發生多我們來說沒有任何驚喜,沒有新的信息。當一件不太可能的事發生,出乎意料,我們大概率會去仔細看看,所能獲得的信息也就很多了。

一個具體事件的信息量應該是隨着其發生概率而遞減的,且不能為負。隨着概率增大而減少的函數形式太多了,為什么是log呢,log計算性質:2lg3+3lg2=lg3^2+lg2^3=lg9+lg8=lg(9x8)=lg72.(對數的系數寫成真數的指數,再根據對數運算的法則,對數相加,底數不變,真數相乘)

如果我們有倆個不相關的事件x和y,那么我們觀察到的倆個事件同時發生時獲得的信息應該等於觀察到的事件各自發生時獲得的信息之和,即:

h(x,y) = h(x) + h(y)

由於x,y是倆個不相關的事件,那么滿足p(x,y) = p(x)*p(y).

根據上面推導,我們很容易看出h(x)一定與p(x)的對數有關(因為只有對數形式的真數相乘之后,能夠對應對數的相加形式)。因此我們有信息量公式如下:

[公式]

(1)為什么有一個負號

其中,負號是為了確保信息一定是正數或者是0,總不能為負數吧!

還有一個理解就是信息量取概率的負對數,其實是因為信息量的定義是概率的倒數的對數。用概率的倒數,是為了使概率越大,信息量越小,同時因為概率的倒數大於1,其對數自然大於0了。

(2)為什么底數為2

這是因為,我們只需要信息量滿足低概率事件x對應於高的信息量。那么對數的選擇是任意的。我們只是遵循信息論的普遍傳統,使用2作為對數的底!

 

信息熵:

信息量度量的是一個具體事件發生了所帶來的信息,而熵則是在結果出來之前對可能產生的信息量的期望——考慮該隨機變量的所有可能取值,即所有可能發生事件所帶來的信息量的期望。即

[公式]

從信息傳播的角度來看,信息熵可以表示信息的價值。為了求得信息的價值,我們通過求信息期望的方式,來求得信息熵。公式如下:

 

 

 

也就是說H(x) = E[I(xi)] = E[ log(1/p(xi)) ] = -∑p(xi)log(p(xi)) 其中,x表示隨機變量,與之相對應的是所有可能輸出的集合,定義為符號集,隨機變量的輸出用x表示。P(x)表示輸出概率函數。變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。為了保證有效性,這里約定當p(x)→0時,有p(x)logp(x)→0 

當X為0-1分布時,熵與概率p的關系如下圖:

 

 

 當兩種取值的可能性相等時,不確定度最大(此時沒有任何先驗知識),這個結論可以推廣到多種取值的情況。在圖中也可以看出,當p=0或1時,熵為0,即此時X完全確定。 熵的單位隨着公式中log運算的底數而變化,當底數為2時,單位為“比特”(bit),底數為e時,單位為“奈特”。

還有一個對信息熵的理解。信息熵還可以作為一個系統復雜程度的度量,如果系統越復雜,出現不同情況的種類越多,那么他的信息熵是比較大的。

如果一個系統越簡單,出現情況種類很少(極端情況為1種情況,那么對應概率為1,那么對應的信息熵為0),此時的信息熵較小。

 

 

相對熵

又稱KL散度( Kullback–Leibler divergence),是描述兩個概率分布P和Q差異的一種方法。它是非對稱的,這意味着D(P||Q) ≠ D(Q||P)。

特別的,在信息論中,D(P||Q)表示當用概率分布Q來擬合真實分布P時,產生的信息損耗,其中P表示真實分布,Q表示P的擬合分布。有人將KL散度稱為KL距離,但事實上,KL散度並不滿足距離的概念,因為:(1)KL散度不是對稱的;(2)KL散度不滿足三角不等式。

 

 

 

 

 

 

顯然,當p=q 時,兩者之間的相對熵DKL(p||q)=0 。上式最后的Hp(q)表示在p分布下,使用q進行編碼需要的bit數,而H(p)表示對真實分布p所需要的最小編碼bit數。基於此,相對熵的意義就很明確了:DKL(p||q)表示在真實分布為p的前提下,使用q分布進行編碼相對於使用真實分布p進行編碼(即最優編碼)所多出來的bit數。並且為了保證連續性,做如下約定: 

 

對於兩個概率分布[公式][公式] ,其相對熵的計算公式為:

[公式]

上式的前半部分[公式] 就是交叉熵(cross entropy)。

[公式] 是數據的真實概率分布,[公式] 是由數據計算得到的概率分布。機器學習的目的就是希望[公式]盡可能地逼近甚至等於[公式] ,從而使得相對熵接近最小值0. 由於真實的概率分布是固定的,相對熵公式的后半部分[公式] 就成了一個常數。那么相對熵達到最小值的時候,也意味着交叉熵達到了最小值。對[公式] 的優化就等效於求交叉熵的最小值。另外,對交叉熵求最小值,也等效於求最大似然估計(maximum likelihood estimation)



【交叉熵】

  交叉熵是表示兩個概率分布p,q,其中p表示真實分布,q表示非真實分布,在相同的一組事件中,其中,用非真實分布q來表示某個事件發生所需要的平均比特數。從這個定義中,我們很難理解交叉熵的定義。

  假設現在有一個樣本集中兩個概率分布p,q,其中p為真實分布,q為非真實分布。假如,按照真實分布p來衡量識別一個樣本所需要的編碼長度的期望為:

  H(p)=

  但是,如果非真實分布q來表示來自真實分布p的平均編碼長度,則應該是:

     H(p,q)=

  此時就將H(p,q)稱之為交叉熵。交叉熵的計算方式如下:

    CEH(p,q)= 

  

  

  對所有訓練樣本取均值得: 

   

 

三者相對關系理解:

1)信息熵:編碼方案完美時,最短平均編碼長度的是多少。

2)交叉熵:編碼方案不一定完美時(由於對概率分布的估計不一定正確),平均編碼長度的是多少。

平均編碼長度 = 最短平均編碼長度 + 一個增量   (上文理解中的是減法)

3)相對熵:編碼方案不一定完美時,平均編碼長度相對於最小值的增加值。(即上面那個增量)

 

 

參考:

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

https://www.cnblogs.com/raorao1994/p/8872073.html

https://zhuanlan.zhihu.com/p/26486223


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM