資訊理論入門教程

阮一峰發表於2019-08-01

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,才不會造成歧義。

下面是數學證明。一個二進位制位有兩種可能01,如果某個事件有多於兩種的結果(比如本例是四種可能),就只能讓01其中一個擁有特殊含義,另一個必須空出來,保證能夠唯一解碼。比如,0表示狗,1就必須空出來,不能有特殊含義。

同理,兩個二進位制位可以表示四種可能:00011011。上例中,0開頭的編碼不能用了,只剩下1011可用,用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越大,表示需要的二進位制位越多,即可能發生的結果越多,不確定性越高。

比如,H1,表示只需要一個二進位制位,就能表示所有可能性,那就只可能有兩種結果。如果H6,六個二進位制位表示有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

所以,一幅圖片所能傳遞的資訊遠遠超過文字,這就是"一圖勝千言"吧。

上面的例子是均勻分佈的情況,現實生活中,一般都是不均勻分佈,因此文章或圖片的實際檔案大小都是可以大大壓縮的。

八、參考連結

(完)

相關文章