1948年,美國數學家克勞德·夏農發表論文《通訊的數學理論》(A Mathematical Theory of Communication),奠定了資訊理論的基礎。
今天,資訊理論在訊號處理、資料壓縮、自然語言等許多領域,起著關鍵作用。雖然,它的數學形式很複雜,但是核心思想非常簡單,只需要中學數學就能理解。
本文使用一個最簡單的例子,幫助大家理解資訊理論。
一、詞彙的編碼
小張是我的好朋友,最近去了美國。
我們保持著郵件聯絡。小張寫信的時候,只使用4個詞彙:狗,貓,魚,鳥。
信的所有內容就是這4個詞的組合。第一封信寫著"狗貓魚鳥",第二封信寫"魚貓鳥狗"。
信件需要二進位制編碼,在網際網路傳遞。兩個二進位制位就可以表示四個詞彙。
- 狗 00
- 貓 01
- 魚 10
- 鳥 11
所以,第一封信"狗貓魚鳥"的編碼是00011011
,第二封信"魚貓鳥狗"的編碼是10011100
。
二、詞彙的分佈
最近,小張開始養狗,信裡提到狗的次數,多於其他詞彙。假定機率分佈如下。
- 狗:50%
- 貓:25%
- 魚:12.5%
- 鳥:12.5%
小張的最新一封信是這樣的。
狗狗狗狗貓貓魚鳥
上面這封信,用前一節的方法進行編碼。
0000000001011011
一共需要16個二進位制。網際網路的流量費很貴,有沒有可能找到一種更短編碼方式?
很容易想到,"狗"的出現次數最多,給它分配更短的編碼,就能減少總的長度。請看下面的編碼方式。
- 狗 0
- 貓 10
- 魚 110
- 鳥 111
使用新的編碼方式,小張的信"狗狗狗狗貓貓魚鳥"編碼如下。
00001010110111
這時只需要14個二進位制位,相當於把原來的編碼壓縮了12.5%。
根據新的編碼,每個詞只需要1.75個二進位制位(14 / 8)。可以證明,這是最短的編碼方式,不可能找到更短的編碼,詳見後文。
三、編碼方式的唯一性
前一節的編碼方式,狗的編碼是0
,這裡的問題是,可以把這個編碼改成1
嗎,即下面的編碼可行嗎?
- 狗 1
- 貓 10
- 魚 110
- 鳥 111
回答是否定的。如果狗的編碼是1
,會造成無法解碼,即解碼結果不唯一。110
有可能是"狗貓",也可能是"魚"。只有"狗"為0
,才不會造成歧義。
下面是數學證明。一個二進位制位有兩種可能0
和1
,如果某個事件有多於兩種的結果(比如本例是四種可能),就只能讓0
或1
其中一個擁有特殊含義,另一個必須空出來,保證能夠唯一解碼。比如,0
表示狗,1
就必須空出來,不能有特殊含義。
同理,兩個二進位制位可以表示四種可能:00
、01
、10
和11
。上例中,0
開頭的編碼不能用了,只剩下10
和11
可用,用10
表示貓,為了表示"魚"和"鳥",必須將11
空出來,使用三個二進位制位表示。
這就是,上一節的編碼方式是如何產生的。
四、編碼與機率的關係
根據前面的討論,可以得到一個結論:機率越大,所需要的二進位制位越少。
- 狗的機率是50%,表示每兩個詞彙裡面,就有一個是狗,因此單獨分配給它1個二進位制位。
- 貓的機率是25%,分配給它兩個二進位制位。
- 魚和鳥的機率是12.5%,分配給它們三個二進位制位。
夏農給出了一個數學公式。L
表示所需要的二進位制位,p(x)
表示發生的機率,它們的關係如下。
透過上面的公式,可以計算出某種機率的結果所需要的二進位制位。舉例來說,"魚"的機率是0.125
,它的倒數為8
, 以 2 為底的對數就是3
,表示需要3個二進位制位。
知道了每種機率對應的編碼長度,就可以計算出一種機率分佈的平均編碼長度。
上面公式的H
,就是該種機率分佈的平均編碼長度。理論上,這也是最優編碼長度,不可能獲得比它更短的編碼了。
接著上面的例子,看看這個公式怎麼用。小張養狗之前,"狗貓魚鳥"是均勻分佈,每個詞平均需要2個二進位制位。
H = 0.25 x 2 + 0.25 x 2 + 0.25 x 2 + 0.25 x 2
= 2
養狗之後,"狗貓魚鳥"不是均勻分佈,每個詞平均需要1.75個二進位制位。
H = 0.5 x 1 + 0.25 x 2 + 0.125 x 3 + 0.125 x 3
= 1.75
既然每個詞是 1.75 個二進位制位,"狗狗狗狗貓貓魚鳥"這8個詞的句子,總共需要14個二進位制位(8 x 1.75)。
五、資訊與壓縮
很顯然,不均勻分佈時,某個詞出現的機率越高,編碼長度就會越短。
從資訊的角度看,如果資訊內容存在大量冗餘,重複內容越多,可以壓縮的餘地就越大。日常生活的經驗也是如此,一篇文章翻來覆去都是講同樣的內容,摘要就會很短。反倒是,每句話意思都不一樣的文章,很難提煉出摘要。
圖片也是如此,單調的圖片有好的壓縮效果,細節豐富的圖片很難壓縮。
由於資訊量的多少與機率分佈相關,所以在資訊理論裡面,資訊被定義成不確定性的相關概念:機率分佈越分散,不確定性越高,資訊量越大;反之,資訊量越小。
六、資訊熵
前面公式裡的H
(平均編碼長度),其實就是資訊量的度量。H
越大,表示需要的二進位制位越多,即可能發生的結果越多,不確定性越高。
比如,H
為1
,表示只需要一個二進位制位,就能表示所有可能性,那就只可能有兩種結果。如果H
為6
,六個二進位制位表示有64種可能性,不確定性大大提高。
資訊理論借鑑了物理學,將H
稱為"資訊熵"(information entropy)。在物理學裡,熵表示無序,越無序的狀態,熵越高。
七、資訊量的例項
最後,來看一個例子。如果一個人的詞彙量為10萬,意味著每個詞有10萬種可能,均勻分佈時,每個詞需要 16.61 個二進位制位。
log₂(100, 000) = 16.61
所以,一篇1000個詞的文章,需要 1.6 萬個二進位制位(約為 2KB)。
16.61 x 1000 = 16,610
相比之下,一張 480 x 640、16級灰度的圖片,需要123萬個二進位制位(約為 150KB)。
480 x 640 x log₂(16) = 1,228,800
所以,一幅圖片所能傳遞的資訊遠遠超過文字,這就是"一圖勝千言"吧。
上面的例子是均勻分佈的情況,現實生活中,一般都是不均勻分佈,因此文章或圖片的實際檔案大小都是可以大大壓縮的。
八、參考連結
- Visual Information Theory, by Christopher Olah
- Information Theory (PDF), Roni Rosenfeld
(完)