資訊熵為什麼要定義成-σ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為底的對數呢,**中的解釋是這樣的:
大致意思是說選擇什麼為底與用什麼單位來度量資訊是對應的。採用2為底就是用2進製位,英文:binary digit(夏農聽了j. w. tukey的建議,將binary digit簡稱為bit,bit這個詞從此問世)。採用10為底就是用10進製位,而在遇到一些積分和微分的分析中,用e為底有時會很有用,這個時候的資訊單位稱為自然單位。
個人理解就是這裡用什麼為底都可以,畢竟單位之間可以轉換,但是為了計算方便,如果你使用二進位制數字來儲存資訊,還是用2為底更便捷。比如一開始郵件分類的例子中,有三種,在1000封郵件中,每個類別出現的概率分別是1/2,1/4,1/4。
現在打算用二進位制位表示分類,那麼就直接可以計算出來各個類別的資訊量,也就是各個類別至少需要幾個二進位制位來表示:
需及時處理的郵件:-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。
資訊熵為什麼要定義成 p log p ?
資訊熵為什麼要定義成 p log p 在解釋資訊熵之前,需要先來說說什麼是資訊量。資訊量是對資訊的度量,單位一般用bit。資訊理論之父克勞德 艾爾伍德 夏農 claude elwood shannon 對資訊量的定義如下 在解釋這個公式之前,先看看下面的例子。比如乙個黑箱裡有2個蘋果,8個橙子我們把...
為什麼說資訊是負熵?
資訊管理導論裡說 資訊是負熵。一般而言,可以將資訊定義為 資訊是物質系統運動的本質特徵,方式 運動狀態及運動的有序性。而熵簡單地理解就是在一種系統內物質運動的無序狀態,所以負熵就是一種有序的狀態,學習中的負熵可以轉化為大腦皮層的資訊,但是運動中的負熵就可以轉化為肌肉記憶,資訊通過被加工的特定形式的資...
String為什麼要設計成final
strings are constant their values cannot be changed after they are created.string buffers support mutable strings.because string objects are immutable...