信息熵為什么要定義成-Σp*log(p)?
在解釋信息熵之前,需要先來說說什么是信息量。
信息量是對信息的度量,單位一般用bit。
信息論之父克勞德·艾爾伍德·香農(Claude Elwood Shannon )對信息量的定義如下:
在解釋這個公式之前,先看看下面的例子。
比如一個黑箱里有2個蘋果,8個橙子我們把從黑箱里取蘋果、橙子看成是一個隨機過程,X={蘋果,橙子}。
當我們了解到拿出來的是什么的時候,我們就接受到了信息,這個信息的信息量的大小與這個東西出現的概率有關,這里蘋果是0.2,橙子是0.8。越小概率的事情發生,其產生的信息量越大,比如我了解到拿出來的是一個蘋果所獲得的信息量比一個橙子的信息量要大的多。
至於為什么越小概率的事情發生,其產生的信息量越大,可以這樣理解,在考慮信息傳輸的過程中,如何對消息序列進行合理的編碼轉換成信號序列,才可以節省信道容量?
以英語舉例,在電報通信中,要傳送的消息由字符序列組成(比如摩爾斯電碼,每個摩爾斯電碼符號由一系列點和破折號組成)。
如果最常見的英文字母 E 使用最短的信道符號“一個點”來表示;而出現較少的 Q,X,Z 等則使用更多的點和破折號來表示,則可以最大程度上節省信道容量,也就是說同樣的一句消息,采用此策略來編碼,其傳輸需要的時間會更少,而事實上的電報通信中,正是這么做的。
那么這里的字母E由於出現概率最大,所以用了一個點來表示,其信息量相對最小。
所以如果我們要尋找一個函數來定義信息,則該函數要滿足如下條件:
要符合隨着概率的增大而減小的形式;
函數的值不能為負數,因為信息量最小為0。
帶負號的對數函數顯然符合以上要求,當然,肯定有其他函數也會符合以上要求,對此,香農在《A Mathematical Theory of Communication》(通信的數學理論)這篇論文中有說明選擇對數函數的原因:
大意是說:
如果集合中的消息的數量是有限的,而且每條消息被選擇的可能性相等,那么這個消息數或者任意這個消息數的單調函數可以用來做為從集合選擇一條消息時產生的信息量的度量。而最自然的選擇是對數函數。
關於對數函數更便捷的原因,論文中給出了3點:
- 在實踐中更有用。
對數函數可以讓一些工程上非常重要的參數比如時間、帶寬、繼電器數量等與可能性的數量的對數成線性關系,例如,增加一個繼電器會使繼電器的可能狀態數加倍,而如果對這一可能狀態數求以2為底的對數,結果只是加 1。加倍時間,可能的消息數會近似變成原來的平方(1,2,4,8,...),而其對數則是加倍(log2 1,log2 2,log2 4,log2 8,...)=(0,1,2,3,...) - 更貼近於人類對度量的直覺。
線性比較就是人類的度量直覺。比如,人們認為,兩張打孔卡存儲信息的容量應當是一張打孔卡的兩倍,兩個相同信道的信息傳輸能力應當是一個信道的兩倍。 - 更適用數學運算。
許多極限運算很容易用對數表示,如果采用可能性的數目表示,可能會需要進行冗繁笨拙的重新表述。
那么,為什么選擇2為底的對數呢,論文中的解釋是這樣的:
大致意思是說選擇什么為底與用什么單位來度量信息是對應的。采用2為底就是用2進制位,英文:binary digit(香農聽了J. W. Tukey的建議,將binary digit簡稱為bit,bit這個詞從此問世)。采用10為底就是用10進制位,而在遇到一些積分和微分的分析中,用e為底有時會很有用,這個時候的信息單位稱為自然單位。
個人理解就是這里用什么為底都可以,畢竟單位之間可以轉換,但是為了計算方便,如果你使用二進制數字來存儲信息,還是用2為底更便捷。比如一開始郵件分類的例子中,有{無聊時閱讀的郵件、需及時處理的郵件、無需閱讀的郵件}三種,在1000封郵件中,每個類別出現的概率分別是1/2,1/4,1/4。
現在打算用二進制位表示分類,那么就直接可以計算出來各個類別的信息量,也就是各個類別至少需要幾個二進制位來表示:
無聊時閱讀的郵件:-log2 (1/2) = 1,所以用1個二進制位可以表示;
需及時處理的郵件:-log2 (1/4) = 2,所以用2個二進制位可以表示;
無需閱讀的郵件:-log2 (1/4) = 2,所以用2個二進制位可以表示。
那么你可能要問了,雖然計算結果是這樣,但是怎么理解呢?
從直覺上理解就是,出現概率越大,信息量越少,比如明天太陽從東邊升起,和明天太陽從西邊升起,后者的信息量更大是符合直覺判斷的;
從存儲的角度來理解,對於那些出現概率越大的變量,用越少的位編碼的話,就可以節省出越大的空間。
說完了信息量,我們來看看什么是信息熵。
信息量是表達某個事件需要的二進制位數,比如“某個郵件屬於需及時處理的郵件”就是一個事件,而所有可能發生的各事件所需信息量的總體均值,也就是期望值被定義為信息熵。
根據概率和統計學中對期望值的定義:期望值是指在一個離散性隨機變量試驗中每次可能結果的概率乘以其結果值之后的累加和。信息熵的公式如下:
這里可能結果的概率是某類事件出現的概率,結果值是某個事件所需的信息量,其中的log一般以2為底。
該公式帶來的結果是,各類事件出現概率的區分度越低,信息熵就越大;區分度越高,信息熵越小:
比如,假設有四種天氣事件:(陰 雨 晴 雪)
若對應的概率是(1/4 1/4 1/4 1/4),則信息熵計算結果是2,
若對應的概率是(2/8 1/8 2/8 3/8),則信息熵計算結果是1.905,
若對應的概率是(2/8 1/8 4/8 1/8),則信息熵計算結果是1.75
而數據區分度越大,說明數據越可能遵循了某種規律(意味着無效信息更少,數據更純);區分度越小,則數據越雜亂無序或者說越混亂。
因此,在一些機器學習算法比如ID3決策樹中就常用信息熵來量化數據集的混亂程度,以選擇出更好的特征來划分數據,讓划分出的數據子集越來越純,最終就可以根據多數表決來決定葉子節點的分類,從而構建出完整的分類決策樹。
ok,本篇就這么多內容啦~,感謝閱讀O(∩_∩)O。