信息論(Information Theory)是概率論與數理統計的一個分枝。用於信息處理、信息熵、通信系統、數據傳輸、率失真理論、密碼學、信噪比、數據壓縮和相關課題。
基本概念
先說明一點:在信息論里面對數log默認都是指以2為底數。
自信息量
![]()
聯合自信息量
![]()
條件自信息量
![]()
信息熵
![]()
條件熵
![]()
聯合熵
![]()
根據鏈式規則,有
![]()
可以得出
![]()
信息增益Information Gain
系統原先的熵是H(X),在條件Y已知的情況下系統的熵(條件熵)為H(X|Y),信息增益就是這兩個熵的差值。
![]()
熵表示系統的不確定度,所以信息增益越大表示條件Y對於確定系統的貢獻越大。
信息增益在特征選擇中的應用
由(7)式可以直接推出詞條w的信息增益,(7)式中的X代表類別的集合,Y代表w存在和不存在兩種情況
![]()
![]()
![]()
p(ci)是第i類文檔出現的概率;p(w)是在整個訓練集中包含w的文檔占全部文檔的比例;p(ci|w)表示出現w的文檔集合中屬於類別i的文檔所占的比例;
表示沒有出現w的文檔集合中屬於類別i的文檔所占的比例。
信息增益在決策樹中的應用
| outlook | temperature | humidity | windy | play |
| sunny | hot | high | FALSE | no |
| sunny | hot | high | TRUE | no |
| overcast | hot | high | FALSE | yes |
| rainy | mild | high | FALSE | yes |
| rainy | cool | normal | FALSE | yes |
| rainy | cool | normal | TRUE | no |
| overcast | cool | normal | TRUE | yes |
| sunny | mild | high | FALSE | no |
| sunny | cool | normal | FALSE | yes |
| rainy | mild | normal | FALSE | yes |
| sunny | mild | normal | TRUE | yes |
| overcast | mild | high | TRUE | yes |
| overcast | hot | normal | FALSE | yes |
| rainy | mild | high | TRUE | no |
(7)式中的X表示打球和不打球兩種情況。
只看最后一列我們得到打球的概率是9/14,不打球的概率是5/14。因此在沒有任何先驗信息的情況下,系統的熵(不確定性)為
![]()
| outlook | temperature | humidity | windy | play | |||||||||
| yes | no | yes | no | yes | no | yes | no | yes | no | ||||
| sunny | 2 | 3 | hot | 2 | 2 | high | 3 | 4 | FALSE | 6 | 2 | 9 | 5 |
| overcast | 4 | 0 | mild | 4 | 2 | normal | 6 | 1 | TRUR | 3 | 3 | ||
| rainy | 3 | 2 | cool | 3 | 1 | ||||||||
如果選outlook作為決策樹的根節點,(7)式中的Y為集合{sunny、overcast、rainy},此時的條件熵為
![]()
![]()
![]()
![]()
![]()
![]()
即選擇outlook作為決策樹的根節點時,信息增益為0.94-0.693=0.247。
同樣方法計算當選擇temperature、humidity、windy作為根節點時系統的信息增益,選擇IG值最大的作為最終的根節點。
互信息Mutual Informantion
yj對xi的互信息定義為后驗概率與先驗概率比值的對數。
![]()
互信息越大,表明yj對於確定xi的取值的貢獻度越大。
系統的平均互信息

![]()
可見平均互信息就是信息增益!
互信息在特征選擇中的應用
詞條w與類別ci的互信息為
![]()
p(w)表示出現w的文檔點總文檔數目的比例,p(w|ci)表示在類別ci中出現w的文檔點總文檔數目的比例。
對整個系統來說,詞條w的互信息為

最后選互信息最大的前K個詞條作為特征項。
交叉熵Cross Entropy
交叉熵(Cross Entropy)、相對熵(Relative Entropy)、KL距離(Kullback-Leibler Distance) 、KL散度(Kullback-Leibler Divergence)指的都是同一個概念。
交叉熵是一種萬能的Monte-Carlo技術,常用於稀有事件的仿真建模、多峰函數的最優化問題。交叉熵技術已用於解決經典的旅行商問題、背包問題、最短路問題、最大割問題等。這里給一個文章鏈接:A Tutorial on the Cross-Entropy Method
交叉熵算法的推導過程中又牽扯出來一個問題:如何求一個數學期望?常用的方法有這么幾種:
- 概率方法,比如Crude Monte-Carlo
- 測度變換法change of measure
- 偏微分方程的變量代換法
- Green函數法
- Fourier變換法
在實際中變量$x$服從的概率分布$h$往往是不知道的,我們會用$g$來近似地代替$h$----這本質上是一種函數估計。有一種度量$g$和$h$相近程度的方法叫 Kullback-Leibler距離,它是求$g$和$h$在對數上的期望:
$$D(g,h)=E_g\ log{\frac{g(x)}{h(x)}}$$
當$x$是離散變量時,KL距離定義為:
$$D(g,h)=\sum_{i=1}^N{g(x_i)log{\frac{g(x_i)}{h(x_i)}}}$$
通常選取g和h具有相同的概率分布類型(比如已知h是指數分布,那么就選g也是指數分布)----參數估計,只是pdf參數不一樣(實際上h中的參數根本就是未知的)。
由KL距離的公式可以看到這種距離具有不對稱性,即$D(g,h)\ne{D(h,g)}$,所以有時候人們會使用另外一種具有對稱性的距離:$D(g,h)+D(h,g)$
基於期望交叉熵的特征項選擇
$$CE(w)=\sum_i{p(c_i|w)log\frac{p(c_i|w)}{p(c_i)}}$$
p(ci|w)表示在出現詞條w時文檔屬於類別ci的概率。
交叉熵反應了文本類別的概率分布與在出現了某個詞條的情況下文本類別的概率分布之間的距離。詞條的交叉熵越大,對文本類別分布影響也就越大。所以選CE最大的K個詞條作為最終的特征項。
如果使用具有對稱性的交叉熵,那公式就變成了
$$CE(w)=\sum_i{[p(c_i|w)log\frac{p(c_i|w)}{p(c_i)}+p(c_i)log\frac{p(c_i)}{p(c_i|w)}]}$$
