§8.5信息
8.5.1復合熵
前面(8.2.2)式得出了僅有一個隨機變量情況下的熵公式(8.2)。如果抽樣實驗是由兩個(或者多個)實驗復合而成(對應於兩個集合的笛卡爾積),就存在一個聯合概率分布。例如擲一枚硬幣還擲一次骰子,根據獨立事件的概率的乘法,它們的每個結局的出現概率分布應當是0.5×(1/6)=0.0833 。這可以列成一個概率分布表
表(8.5)骰子不同點數與硬幣的正面或者反面同時出現的概率
1點 |
2點 |
3點 |
4點 |
5點 |
6點 |
|
硬幣正面 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
硬幣反面 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
0.0833 |
對於隨機變量x和y的聯合概率分布p(x,y)一般有表(8.6)。這個表對於兩個變量是獨立或者不是獨立的都適用。
表(8.6) 變量x,y的聯合概率p(x,y)分布表
y1 |
y2 |
… |
yj |
… |
ym |
|
x1 |
p(1,1) |
p(1,2) |
p(1,j) |
p(1,m) |
||
x2 |
p(2,2) |
p(2,2) |
p(2,j) |
p(2,m) |
||
… |
||||||
xi |
p(i,1) |
p(i,2) |
p(i,j) |
p(i,m) |
||
… |
||||||
xn |
p(n,1) |
p(n,2) |
p(n,j) |
p(n,m) |
它對應的熵稱為復合熵,並且由下式計算
(8.6)
公式(8.6)就是根據兩個離散隨機變量的概率分布計算它的復合熵的公式。這里復合熵的符號H(x,y)僅表示這個熵是對於變量x,y 的,H 是一個值,不是x,y的函數。對於擲一枚硬幣並且擲一次骰子組成的復合隨機實驗,其復合熵顯然為-12(0.0833log20.0833)=7.89比特
復合熵的公式還可以推廣到連續變量和多個變量的情況。
8.5.2條件熵
從某小學的學生中任選一人稱他(她)的體重,其體重就是個隨機變量,它就有個概率分布函數存在(不同的體重的出現概率不同)。如果僅對身高為1.2-1.3米的學生抽樣稱其體重,就得到另外一個概率分布函數。相對前一種概率分布,后者就是條件概率分布。條件就是已經知道了學生身高是1.2-1.3米。根據條件概率,利用熵公式計算的信息熵稱為條件熵。
如果以x表示學生體重,以y表示身高,以 p(x∣y表示身高為y時的體重為x 的出現的概率,把熵公式用到這個特殊情況得到是熵顯然應當是
上面得到的計算公式是針對y為一個特殊值y時求得的熵。考慮到y會出現各種可能值,如果問已知學生身高時(不特指某一身高,而是泛指身高已經知道)的體重的熵(不確定程度),它應當是把前面的公式依各種y的出現概率做加權平均。即
(8.7)
這就是條件熵的一般計算公式。上面的第二個公式是針對連續變量的,其中的f是概率密度分布函數。另外根據概率論的乘法定理p(x,y)=p(x)p(y∣x)
上面的公式也可以寫成
(8.8)
根據對數的性質,還可以把上面的公式改為
如果求x已知時y的條件熵,顯然也會得到類似的公式,即還有
合並這兩個公式有
(8.9)
這個公式把復合熵、條件熵以及熵聯系到一起了。它們也顯示了熵的對稱性。
條件熵僅能大於等於零而不會有負值,而且不大於原來的熵,即
(8.10)
它說明條件熵的最大值是無條件熵。在x與y獨立無關時,條件熵與原熵值相等,即
(8.11)
利用這些公式還可以得出復合熵小於等於對應的無條件熵的和,即
H(x,y)≤H(x)+H(y) (8.12)
這個公式表明兩個(或者多個)隨機變量的熵的和大於等於它們的復合熵。
在介紹復雜程度時曾經引入了“0+0可以>0”的問題。由於復雜程度與熵有對應關系,上面的公式是否與前面的結論有矛盾?我們說沒有。公式(8.12)中熵的加號對應的並不是兩個集合的並而是所謂笛卡爾積。而“0+0可以>0”問題對應的是兩個集合(廣義集合)的並運算,它不是乘積。利用熵概念也可以得到“0+0可以>0”的結論,但是它也是對應着兩個廣義集合的並,不是這里的笛卡爾積。
條件熵概念擴大了熵概念的應用范圍,也為引入“信息”做了准備。。
8.5.3信息
信息是通過熵與條件熵的差計量的
擲一次骰子,由於六種結局(點)的出現概率相等,所以結局的不確定程度(熵)為log6 ,如果告訴你擲骰子的結局是單數或者雙數,這顯然是一個信息。這個信息消除了我們的一些不確定性。把消除的不確定性稱為信息顯然是妥當的。
說明這個問題可以通過計算無條件熵和條件熵來解決。這里的無條件熵就是log6 ,而已經知道結局是單數或者雙數的條件熵可以根據前面的條件熵公式計算。為此先列出表(8.7)
表(8.7)肯定是單點(雙點)時它是各個點的概率
( 條件概率)
1 |
2 |
3 |
4 |
5 |
6 |
|
單數 |
1/3 |
0 |
1/3 |
0 |
1/3 |
0 |
雙數 |
0 |
1/3 |
0 |
1/3 |
0 |
1/3 |
這個表給出了不同的點數與單數或者雙數同時出現的概率。它們代表不同情況時的條件概率。計算條件熵,用公式(8.7)計算比較方便。公式中的p(y有兩種情況,一個指單數的出現概率,一個是雙數的出現概率。它們顯然都是1/2 ,因此公式(8.7)變成了
H=-6[(1/6)log(1/3)]=log3
於是條件熵H為log3 。
在不知道結局為單雙數時,擲一次骰子的結局的不確定性為log6 ,在僅告訴你結局是單數或者雙數時是沒有全部解除你對結局的疑惑,但是它確實給了一些信息,這個信息(以I表示)就用無條件熵與條件熵的差來計量。於是有
I=log6-log3=log6/3=log2
如果對數的底是2,那么僅告訴你結局的單雙數,而不告訴你絕對值,它提供的信息量就是1比特。
這個例子說明y提供的關於x的信息I,即
信息量I=(x的不確定性)- (得到了消息y以后x的不確定性)
(8.12)
這就是計算信息的基本公式
信息量有很多性質。
如果令公式中的y=x,H(x∣y)變成了H(x∣x),其含義當然是x已知時x的條件熵,可是x 已知時它自己當然沒有不確定性了。所以H(x∣x)=0 。把它帶入信息公式,得到
也就是說x 值已知時所帶來的信息恰好等於原來的不確定性。或者說x。這正是在一些場合下把熵直接稱為信息的原因。遺憾的是有些人沒有理解這個認識過程,而引出了信息是熵或者信息是負的熵的概念混亂。
如果條件熵與原熵值相等,H(x)=H(x∣y),顯然信息等於零,即
I
這說明因素y 與x 無關,它當然也提供不了關於x 的任何信息。把公式(8.10)和信息公式(8.12)合並得到
Iy(x)≥0
它說明任何因素提供的信息不會小於零,信息沒有負值。
利用關於復合熵的公式(8.9)與信息公式(8.12)可以得到
I(8.13)
它說明變量y含有的關於變量x的信息與變量x含有的關於變量y的信息是相同的。即變量之間含有的信息是對稱的。
以上討論的信息、信息熵都是指直接與概率聯系的所謂信息論中的熵。
前文提到過,除了開方檢驗(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征選擇方法。但凡是特征選擇,總是在將特征的重要程度量化之后再進行選擇,而如何量化特征的重要性,就成了各種方法間最大的不同。開方檢驗中使用特征與類別間的關聯性來進行這個量化,關聯性越強,特征得分越高,該特征越應該被保留。
在信息增益中,重要性的衡量標准就是看特征能夠為分類系統帶來多少信息,帶來的信息越多,該特征越重要。
因此先回憶一下信息論中有關信息量(就是“熵”)的定義。說有這么一個變量X,它可能的取值有n多種,分別是x1,x2,……,xn,每一種取到的概率分別是P1,P2,……,Pn,那么X的熵就定義為:
意思就是一個變量可能的變化越多(反而跟變量具體的取值沒有任何關系,只和值的種類多少以及發生概率有關),它攜帶的信息量就越大(因此我一直覺得我們的政策法規信息量非常大,因為它變化很多,基本朝令夕改,笑)。
對分類系統來說,類別C是變量,它可能的取值是C1,C2,……,Cn,而每一個類別出現的概率是P(C1),P(C2),……,P(Cn),因此n就是類別的總數。此時分類系統的熵就可以表示為:
有同學說不好理解呀,這樣想就好了,文本分類系統的作用就是輸出一個表示文本屬於哪個類別的值,而這個值可能是C1,C2,……,Cn,因此這個值所攜帶的信息量就是上式中的這么多。
信息增益是針對一個一個的特征而言的,就是看一個特征t,系統有它和沒它的時候信息量各是多少,兩者的差值就是這個特征給系統帶來的信息量,即增益。系統含有特征t的時候信息量很好計算,就是剛才的式子,它表示的是包含所有特征時系統的信息量。
問題是當系統不包含t時,信息量如何計算?我們換個角度想問題,把系統要做的事情想象成這樣:說教室里有很多座位,學生們每次上課進來的時候可以隨便坐,因而變化是很大的(無數種可能的座次情況);但是現在有一個座位,看黑板很清楚,聽老師講也很清楚,於是校長的小舅子的姐姐的女兒托關系(真輾轉啊),把這個座位定下來了,每次只能給她坐,別人不行,此時情況怎樣?對於座次的可能情況來說,我們很容易看出以下兩種情況是等價的:(1)教室里沒有這個座位;(2)教室里雖然有這個座位,但其他人不能坐(因為反正它也不能參與到變化中來,它是不變的)。
對應到我們的系統中,就是下面的等價:(1)系統不包含特征t;(2)系統雖然包含特征t,但是t已經固定了,不能變化。
我們計算分類系統不包含特征t的時候,就使用情況(2)來代替,就是計算當一個特征t不能變化時,系統的信息量是多少。這個信息量其實也有專門的名稱,就叫做“條件熵”,條件嘛,自然就是指“t已經固定“這個條件。
但是問題接踵而至,例如一個特征X,它可能的取值有n多種(x1,x2,……,xn),當計算條件熵而需要把它固定的時候,要把它固定在哪一個值上呢?答案是每一種可能都要固定一下,計算n個值,然后取均值才是條件熵。而取均值也不是簡單的加一加然后除以n,而是要用每個值出現的概率來算平均(簡單理解,就是一個值出現的可能性比較大,固定在它上面時算出來的信息量占的比重就要多一些)。
因此有這樣兩個條件熵的表達式:
這是指特征X被固定為值xi時的條件熵,
這是指特征X被固定時的條件熵,注意與上式在意義上的區別。從剛才計算均值的討論可以看出來,第二個式子與第一個式子的關系就是:
具體到我們文本分類系統中的特征t,t有幾個可能的值呢?注意t是指一個固定的特征,比如他就是指關鍵詞“經濟”或者“體育”,當我們說特征“經濟”可能的取值時,實際上只有兩個,“經濟”要么出現,要么不出現。一般的,t的取值只有t(代表t出現)和(代表t不出現),注意系統包含t但t 不出現與系統根本不包含t可是兩回事。
因此固定t時系統的條件熵就有了,為了區別t出現時的符號與特征t本身的符號,我們用T代表特征,而用t代表T出現,那么:
與剛才的式子對照一下,含義很清楚對吧,P(t)就是T出現的概率,就是T不出現的概率。這個式子可以進一步展開,其中的
另一半就可以展開為:
因此特征T給系統帶來的信息增益就可以寫成系統原本的熵與固定特征T后的條件熵之差:
公式中的東西看上去很多,其實也都很好計算。比如P(Ci),表示類別Ci出現的概率,其實只要用1除以類別總數就得到了(這是說你平等的看待每個類別而忽略它們的大小時這樣算,如果考慮了大小就要把大小的影響加進去)。再比如P(t),就是特征T出現的概率,只要用出現過T的文檔數除以總文檔數就可以了,再比如P(Ci|t)表示出現T的時候,類別Ci出現的概率,只要用出現了T並且屬於類別Ci的文檔數除以出現了T的文檔數就可以了。
從以上討論中可以看出,信息增益也是考慮了特征出現和不出現兩種情況,與開方檢驗一樣,是比較全面的,因而效果不錯。但信息增益最大的問題還在於它只能考察特征對整個系統的貢獻,而不能具體到某個類別上,這就使得它只適合用來做所謂“全局”的特征選擇(指所有的類都使用相同的特征集合),而無法做“本地”的特征選擇(每個類別有自己的特征集合,因為有的詞,對這個類別很有區分度,對另一個類別則無足輕重)。
看看,導出的過程其實很簡單,沒有什么神秘的對不對。可有的學術論文里就喜歡把這種本來很直白的東西寫得很晦澀,仿佛只有讀者看不懂才是作者的真正成功。
咱們是新一代的學者,咱們沒有知識不怕被別人看出來,咱們有知識也不怕教給別人。所以咱都把事情說簡單點,說明白點,大家好,才是真的好。
轉自:http://www.cnblogs.com/xiedan/archive/2010/04/03/1703722.html