Metallurgy in Computer Science

資訊冶金,不僅僅是技術上的紀錄,還有一些生活經驗啥的

0%

info-theory-intro

夏農熵

要講到訊息論就不能不提到開創這個領域的「夏農熵」了

夏農熵用了一個很神奇的方式定義「資訊量」的多寡,

TODO: brief about shannon entropy

這個公式乍看之下可能不是那麼直觀,首先 p(1-p) 是為了把概率的不均衡性考慮進去,也就是說當 p=0.5 時,熵會是最大的(這也非常合理,因為一半一半的發生率是最混亂的,我們完全無法預測)

但是那個取對數是為了什麼?而且還是用底數為二的對數,不是用自然對數為定義,這是因為我們已經考慮到這是一個「二進制的應用」,也就是「最有效表示該訊息的比特數」

但是為什麼我們可以透過上述的數學式得到這樣的物理意義?我們可以透過 Asymptotic Equipartition Property (AEP)

AEP

關於這章,對於各位跟我一樣數學程度不是太好的朋友,不建議去看理論說明,包含 Elements of Information Theory 還是其他大學課程的教材,會看到一堆數學證明但是沒有著重在工程上的解釋

感謝 Asymptotic Equipartition Property (AEP) 的熱情解釋

這代表什麼呢,一旦你確定輸入字元們的分佈機率後,這樣「符合對應機率的隨機輸入們」都會落在 typical region 裡;透過從原本廣大的可行範圍,利用我們事先得知的「概率分佈」,我們可以將可行解數量向下縮減,在無損壓縮的前提下最多能夠壓縮到「 typical region 內所有可行解的數目」,這個數目又正好對應到「夏農熵能夠表達的數值範圍」

你可能會想,如果今天輸入不落在 typical region 裡,像是「all tail 的情況」,那麼就不能只用熵的比特數來表示了;不過事實是,因為「all tail」 這個事件本身就不符合我們原先假設的概率範圍內,因此不能表示是很正常的;因此 依據輸入分佈決定編碼 是一件非常重要的事

工程應用

以我自己之前做的研究為例,我嘗試在一個「只支援有限指令操作的機器」上壓縮路由訊息,這邊的路由是類似 Source routing 的變動長度編碼(實際上狀況更為複雜一點,是一個 multicast 的 source routing,所以每一跳可能會有變動大小的 nexthop)

我們要怎麼把這個冗長且變動長度的路由訊息壓縮到(希望可以)定長,這同時也是要實做在該機器上的要求(因為底層不支援遞迴解析)

非常尷尬的是,編碼大多需要

Reference

  1. Stanford EE 376A: Information Theory
  2. CMU
  3. 訊息論基礎
  4. A mathematical theory of communication

Welcome to my other publishing channels