熵的總結

知識點:自信息量,熵,交叉熵,相對熵,聯合熵, 條件熵,信息增益


自信息量首先知道什麼是自信息量,一個事件的自信息量是該事件發生概率的負對數,即I(xi)=logp(xi)。事件發生概率越大,自信息量越少,反之,自信息量越多。

熵是自信息量的期望。熵一般說一個信息源,這個信息源可以有多個隨機事件,所有隨機事件發生的概率和爲1。這個信息源的熵就是信息源產生的隨機事件的自信息量的期望,即H(x)=ni=1p(xi)I(xi)=ni=1p(xi)logp(xi) 。熵越大系統越混亂,也越穩定,因爲事物總是自發的變得無序。熵越大系統不確定性越大。

交叉熵通常一個信息源中隨機事件的概率是無法得到的,之能通過觀察信息源產生的隨機事件,來對隨機事件發生的概率進行估計。這就會出現隨機事件的兩個概率,一個是隨機事件的真正概率p(xi),和估計得到的概率q(xi)。一般來說我們根據估計得到的概率q(xi)來對隨機事件進行編碼,或者估計其重要性,或計算自信息量。但實際上並不會如我們所願,因爲我們估計的概率不準確,也就是我們對隨機事件的信息量或重要性的估計不準確。交叉熵可以得到在估計概率爲q(xi)時候,我們的期望自信息量會是多少,或者期望最短編碼長度是多少,即:H(p,q)=ni=1p(xi)logq(xi)

真實熵與交叉熵信息源的熵越大,系統越不確定,比如信息源s有兩個隨機事件a和b,如果各自概率都是0.5,那麼你就比較難以把握,如果各自概率是0.01和0.99,那麼你就比較有把握,或者說該信息源對你來說不確定性小。信息源的熵在不同背景下有不同的意義,通常都是根據事件自信息量的不同來採取不同的行爲,所以對自信息量的求期望,通常也是對行爲價值求期望。比如編碼中,將簡短的編碼分配到自信息量少事件上,那麼熵就相當於平均編碼長度,當編碼長度完全按照自信息量的比例來分配,就得到了最短的編碼長度。而在交叉熵中,我們無法知道真實的概率分佈p,只能根據估計的概率分佈q來決策我們的行爲,所以從一定程度上來說,交叉熵是對我們按照概率q來決策我們行爲的價值的估計。

相對熵 Kullback–Leibler divergence或KLD或KL-散度,是等於交叉熵減去真實的熵,即:D(p||q)=ni=1p(xi)logq(xi)ni=1p(xi)logp(xi)=ni=1p(xi)logq(xi)p(xi)。相對熵是交叉熵相對於真實熵所帶來的誤差。

聯合熵就是兩個信息源的聯合分佈的熵,即:H(X,Y)=p(X,Y)logp(X,Y)

條件熵給定y後x的熵。本來x和y都不確定就是聯合熵。給定y後,不確定程度可能減少,減少的部分是y的不確定程度,也就是條件熵等於聯合熵減去y的熵,即:H(X|Y)=H(X,Y)H(Y)。x的不確定加上y的不確定是大於x和y的聯合不確定,因爲x和y可能會存在關聯,即:H(X,Y)H(X)+H(Y)。兩個信息源的熵大雨單個信息源,給定其中一個信息源後,另一個信息源的不確定性小於等於它原來的不確定性。比如天氣是否下雨有一定的不確定性,給定是否颳風,那麼就有助於我們對天是否下雨進行判斷,不確定性減少,如果給定的信息是小明是否認識apple這個單詞,那麼對於我們判斷是否下雨沒有任何幫助,不確定性不變。

信息增益在決策樹中是指引入信息的信息後,熵降低的量即:IG(Y)=H(X)H(X|Y)=ni=1p(xi)logp(xi)mk=1{p(yk)ni=1p(xi|yk)logp(xi|yk)}。根據百度百科,相對熵也是信息增益(可能是因爲,相對熵等於交叉熵減去真實熵,而交叉熵表示真實的狀態,即我們不知道真實的分佈情況下的熵,而真實熵是理想狀態,即得到真實的分佈情況下的熵,所以相對熵的信息增益是指,我們還需要多少信息,才能達到理想狀態的熵。交叉熵大,代表的是更無序的狀態,我們當然是更喜歡熵小的有序狀態了)。

補充:相對熵和交叉熵都可以用於評價兩個語言模型之間的差異或者相關度。比如兩個計算query和doc之間的相關性時用交叉熵:CE(θq|θd)。評價兩個文本之間的語義距離用相對熵:KLD(θd1|θd2)。那什麼時候用交叉熵,什麼時候用相對熵呢?個人認爲,在評價query和doc之間先關性是,用交叉熵是因爲前面的query一直不變,求的是doc相對於固定的query的相關性,你減不減去query的熵,也不影響doc的排序,所以用交叉熵。如果計算文本之間的差異性,因爲涉及到,文檔間兩兩相互比較,或者說前面的文檔d1是會變的,我們想得到一個相對值的時候,想得到歸一化後的差異值,就使用相對熵。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

摘抄:https://www.zhihu.com/question/41252833/answer/140950659

1)信息熵:編碼方案完美時,最短平均編碼長度的是多少。
2)交叉熵:編碼方案不一定完美時(由於對概率分佈的估計不一定正確),平均編碼長度的是多少。
平均編碼長度 = 最短平均編碼長度 + 一個增量
3)相對熵:編碼方案不一定完美時,平均編碼長度相對於最小值的增加值。(即上面那個增量)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

摘抄:http://blog.csdn.net/hguisu/article/details/27305435

1.  前言

   熵的概念最早起源於物理學,用於度量一個熱力學系統的無序程度。

   在信息論裏則叫信息量,即熵是對不確定性的度量。從控制論的角度來看,應叫不確定性信息論的創始人香農在其著作《通信的數學理論》中提出了建立在概率統計模型上的信息度量。他把信息定義爲“用來消除不確定性的東西”。在信息世界,熵越高,則能傳輸越多的信息,熵越低,則意味着傳輸的信息越少。

   當我們不知道某事物具體狀態,卻知道它有幾種可能性時,顯然,可能性種類愈多,不確定性愈大。不確定性愈大的事物,我們最後確定了、知道了,這就是說我們從中得到了愈多的信息,也就是信息量大。所以,熵、不確定性、信息量,這三者是同一個數值。

   兩種可能性:最簡單的是隻有兩種可能性,非此即彼,我們就以這種事物的信息量爲單位,叫1比特(bit)。

       4種可能性:用二分法,分爲2組,我們要非此即彼地確定2次,才能確定其狀態,所以含有2比特信息量。

   如果可能性數目有2n次方(N=2^n):那就是n比特,即信息量等於可能性數目N的‘以2爲底的對數’:H=2N)=㏒(N/㏒(2)。後一個等號說明,以2爲底的對數㏒2可用普通對數㏒(以10爲底)來計算,即用N的普通對數除2的普通對數。N3種可能性時,信息量H=㏒(3/㏒(2)=1.585。只要有函數型計算器,我們就可以進行以下簡單實例的驗算。

    我們現在不是討論事物本身的信息量,而是討論描述事物的文字符號包含的信息量。先討論比較簡單的數字符號。

二進制數:二進制數只有2個符號:0和1。一位二進制數有2種可能性,其信息量是1比特。n位二進制數可記N=2^n個不相等的數,含有n比特信息,所以每位數字的信息量還是1

十進制數:十進制數字有10個,每位數字的信息量是㏒(10)/ ㏒(2)=1/0.301=3.32。不難驗證所有十進制數,每位數字的信息量都是3.32,例如3位數共1000個,信息量是㏒(1000)/ ㏒(2)=3*3.32。而十六進制的每位數字的信息量是4。

    事情好像很簡單,其實不然。試考慮還沒有發明數字的遠古人,他用刻畫來記數,用刻n畫的方法記數目n。10以內的數平均每個數要刻(1+10)/2=5.5畫,每畫的平均信息量是3.32/5.5=0.604,而100以內的數平均每個數(1+100)/2=50.5畫,每畫的平均信息量只有6.64/50. 5=0.132。因爲古人刻的每一畫是沒有次序或位置的區別的,所以每一畫的信息量變化很大,數值則很小。次序或位置非常重要,羅馬字和我國古代的數碼,也是短畫,但要講究位置組合,每畫所含的信息量就大大提高了。注意,我們以後討論的文字信號,都是有次序的。

這樣,文字信號的信息量H是信號個數n的以2爲底的對數: H=㏒(n)/ ㏒(2)。英文有 26個字母,每個字母的信息量H=㏒(26)/ ㏒(2)=4.700。漢字個數不定,算1000個時等於3*3.32=9.96,算作一萬、十萬時則分別爲13.28、16.60。我們能隨意增加大量一輩子也用不到的漢字,來無限地增加每個漢字的信息量?這當然不合理。原來信息量不能無條件地按符號的個數來計算,只有各符號的可能性一樣,都等於1/n時纔行。數字符號就滿足這樣的條件。事實上信息量應按符號的可能性(數學上叫概率大小)來計算,它是概率的負對數。對於二進制數,每個符號的概率都等於1/2,按負對數計算:-㏒(1/n)=-(㏒(1)- ㏒(n))=-(0-㏒(n))=㏒(n)。這就是我們前面使用的公式的來源。如果符號i的概率pi不等於1/n,則Hi=-㏒(pi)。因爲各個符號的概率pi不相等,對於總體來說,平均信息量就是它們的加權平均H=-∑pi㏒(pi),這裏累加符號∑表示對所有 i 進行累計。(以上式子除以㏒(2),就可化爲以比特爲單位了)。


2.  熵的定義

     如果有一枚理想的硬幣,其出現正面和反面的機會相等,則拋硬幣事件的熵等於其能夠達到的最大值。我們無法知道下一個硬幣拋擲的結果是什麼,因此每一次拋硬幣都是不可預測的。因此,使用一枚正常硬幣進行若干次拋擲,這個事件的熵是一比特,因爲結果不外乎兩個——正面或者反面,可以表示爲0, 1編碼,而且兩個結果彼此之間相互獨立。若進行n獨立實驗,則熵爲n,因爲可以用長度爲n比特流表示。[1]但是如果一枚硬幣的兩面完全相同,那個這個系列拋硬幣事件的熵等於零,因爲結果能被準確預測。現實世界裏,我們收集到的數據的熵介於上面兩種情況之間。

另一個稍微複雜的例子是假設一個隨機變量X,取三種可能值\begin{smallmatrix} x_1, x_2, x_3 \end{smallmatrix},概率分別爲\begin{smallmatrix} \frac{1}{2}, \frac{1}{4}, \frac{1}{4} \end{smallmatrix},那麼編碼平均比特長度是:\begin{smallmatrix} \frac{1}{2} \times 1 + \frac{1}{4} \times 2 + \frac{1}{4} \times 2 = \frac{3}{2} \end{smallmatrix}。其熵爲3/2。

因此熵實際是對隨機變量的比特量和順次發生概率相乘再總和的數學期望

熵在信息論中的定義推導過程如下:

信源的不確定性信源發出的消息不肯定性越大,收信者獲取的信息量就越大。如果信源發送的消息是確切的,則對收信者來說沒有任何價值(沒有信息量)。衡量不確定性的方法就是考察信源X的概率空間。X包含的狀態越多,狀態Xi的概率pi越小,則不確定性越大,所含有的信息量越大。

不確定程度用H(X)表示,簡稱不確定度, 用概率的倒數的對數來度量不肯定程度。一般寫成H(X) = log(1/p) = -log(p).

 自信息量一個事件(消息)本身所包含的信息量,由事件的不確定性決定的。

即隨機事件Xi發生概率爲P(xi),則隨機事件的自信息量定義爲:

表示事件Xi發生後能提供的信息量。事件不同,則他的信息量也不同,所以自信息量是一個隨機變量。不能用來表徵整個信源的不肯定性。可以用平均自信息量來表徵整個信源的不肯定性。

  定義信息量爲概率的負對數,是很合理的。試考慮一個兩種可能性的事物,僅當可能性相等時,不確定性最大,最後我們知道了某一可能性確實發生了,也得到最大的信息量。如果其中某一個可能性很大(另一個必然很小),不確定性就很小。如果可能性大到1,也就是必然要發生的,因爲1的對數爲0,我們從知道它的發生這件事得到的信息也爲0。

(1)非負性

(2)隨機性     是隨機變量

(3)單調性      概率大自信息量小

(4)隨機事件的不確定性在數量上等於它的自信息量。

(5)單位

     以2爲底,記作lb,單位比特(bit);

     以e爲底,記作ln,單位奈特(nat);

     以10爲底,記作lg,單位哈脫來(hat)。


信息熵隨機變量自信息量I(xi)的數學期望(平均自信息量),用H(X)表示,即爲熵的定義:

  

  即一個值域爲{x1, ..., xn}的隨機變量 X 的熵值 H 定義爲:

H(X)  =  \operatorname{E}(I(X))

其中,E 代表了期望函數,而 I(X) 是 X 的信息量(又稱爲信息本體)。I(X) 本身是個隨機變量。如果 p 代表了 X 的機率質量函數(probability mass function),則熵的公式可以表示爲:

H(X) = \sum_{i=1}^n {p(x_i)\,I(x_i)} = -\sum_{i=1}^n {p(x_i) \log_b p(x_i)}

在這裏 b 是對數所使用的,通常是 2, 自然常數 e,或是10。當b = 2,熵的單位是bit;當b = e,熵的單位是 nat;而當 b = 10,熵的單位是 dit

pi = 0時,對於一些i值,對應的被加數0 logb 0的值將會是0,這與極限一致。

\lim_{p\to0+}p\log p = 0.


3. 範例

如果有一個系統S內存在多個事件S = {E1,...,En},每個事件的機率分佈 P = {p1, ..., pn},則每個事件本身的信息量爲:

I_e = -\log_2 {p_i} (對數以2爲底,單位是比特(bit))

I_e = -\ln {p_i} (對數以e爲底,單位是納特/nats)

如英語有26個字母,假如每個字母在文章中出現次數平均的話,每個字母的訊息量爲:

I_e = -\log_2 {1\over 26} = 4.7

而漢字常用的有2500個,假如每個漢字在文章中出現次數平均的話,每個漢字的信息量爲:

I_e = -\log_2 {1\over 2500} = 11.3

實際上每個字母和每個漢字在文章中出現的次數並不平均,比方說較少見字母(如z)和罕用漢字就具有相對高的信息量。但上述計算提供了以下概念:使用書寫單元越多的文字,每個單元所包含的訊息量越大。

熵是整個系統的平均消息量,即:

H_s = \sum_{i=1}^n p_i I_e = -\sum_{i=1}^n p_i \log_2 p_i
這個平均消息量就是消息熵。因爲和熱力學中描述熱力學熵的玻耳茲曼公式形式一樣,所以也稱爲“熵”。

 英語文本數據流的熵比較低,因爲英語很容易讀懂,也就是說很容易被預測。即便我們不知道下一段英語文字是什麼內容,但是我們能很容易地預測,比如,字母e總是比字母z多,或者qu字母組合的可能性總是超過q與任何其它字母的組合。如果未經壓縮,一段英文文本的每個字母需要8個比特來編碼,但是實際上英文文本的熵大概只有4.7比特。如果壓縮是無損的,即通過解壓縮可以百分之百地恢復初始的消息內容,那麼壓縮後的消息攜帶的信息和未壓縮的原始消息是一樣的多。而壓縮後的消息可以通過較少的比特傳遞,因此壓縮消息的每個比特能攜帶更多的信息,也就是說壓縮信息的熵更加高。熵更高意味着比較難於預測壓縮消息攜帶的信息,原因在於壓縮消息裏面沒有冗餘,即每個比特的消息攜帶了一個比特的信息。香農的信息理論揭示了,任何無損壓縮技術不可能讓一比特的消息攜帶超過一比特的信息。消息的熵乘以消息的長度決定了消息可以攜帶多少信息。

如果兩個系統具有同樣大的消息量,如一篇用不同文字寫的同一文章,由於是所有元素消息量的加和,那麼中文文章應用的漢字就比英文文章使用的字母要少。所以漢字印刷的文章要比其他應用總體數量少的字母印刷的文章要短。即使一個漢字佔用兩個字母的空間,漢字印刷的文章也要比英文字母印刷的用紙少。

4.  信息增益

已經有了熵作爲衡量訓練樣例集合純度的標準,現在可以定義屬性分類訓練數據的效力的度量標準。這個標準被稱爲“信息增益(information gain)”。簡單的說,一個屬性的信息增益就是由於使用這個屬性分割樣例而導致的期望熵降低(或者說,樣本按照某屬性劃分時造成熵減少的期望)在信息增益中,衡量標準是看特徵能夠爲分類系統帶來多少信息,帶來的信息越多,該特徵越重要。對一個特徵而言,系統有它和沒它時信息量將發生變化,而前後信息量的差值就是這個特徵給系統帶來的信息量

更精確地講,一個屬性A相對樣例集合S的信息增益Gain(S,A)被定義爲:


5.  熵的特性

1、熵均大於等於零,即,H_s \ge 0。 
       2、設N是系統S內的事件總數,則熵H_s \le log_2N。當且僅當p1=p2=...=pn時,等號成立,此時系統S的熵最大。 
       3、聯合熵H(X,Y) \le H(X) + H(Y),當且僅當X,Y在統計學上相互獨立時等號成立。 
       4、條件熵H(X|Y) = H(X,Y) - H(Y) \le H(X),當且僅當X,Y在統計學上相互獨立時等號成立。 

 

5.  拋硬幣的熵


 
    拋硬幣的熵H(X)(即期望自信息),以比特度量,與之相對的是硬幣的公正度 Pr(X=1).

   注意圖的最大值取決於分佈;在這裏,要傳達一個公正的拋硬幣結果至多需要1比特,但要傳達一個公正的拋骰子結果至多需要log2(6)比特。






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