漸進均分性(Asymptotic Equipartition Property)
\(\newcommand{\E}{\mathbb{E}}\)在機率論中,我們有大數定理(弱):對於一列獨立同分布的隨機變數\(X_1,X_2,\cdots\),前\(n\)個隨機變數的平均值\(\dfrac{1}{n}\sum\limits_{i=1}^{n}X_i\)(依然是一個隨機變數)當\(n\to\infty\)時會依機率收斂到\(\E [X_1]\)。也即\(\forall\varepsilon>0,\lim\limits_{n\to\infty}\Pr\left[\left|\dfrac{1}{n}\sum\limits_{i=1}^{n}X_i-\E[X_1]\right|>\varepsilon\right]=0\)。
從資訊理論的角度如何理解大數定律呢?對於獨立同分布的隨機變數\(X_1,X_2,\cdots\),我們只關注它們的分佈,並對每個取值的機率取對數,得到的一列隨機變數\(\log p(X_1),\log p(X_2),\cdots\)顯然也是獨立同分布的。那麼根據大數定理,\(\dfrac{1}{n}\sum\limits_{i=1}^{n}\log p(X_i)\)將會依機率收斂到\(\E[\log p(X_1)]\),這恰好是隨機變數的熵\(H(X_1)\)(的相反數)!我們試著理解左邊那一項有什麼含義:\(\sum\limits_{i=1}^{n}\log p(X_i)\)可以寫成\(\log \left(p(X_1)p(X_2)\cdots p(X_n)\right)\),由於\(p(X_i)\)是互相獨立的,這等價於\(\log p(X_1,X_2,\cdots,X_n)\)。這是一個隨機變數,表示每種序列出現的機率(的對數)。現在大數定律告訴我們,當\(n\)充分大時,\(p(X_1,X_2,\cdots,X_n)\)有極大的機率分佈在\(2^{-nH(X_1)}\)附近。這說明,大多數的序列出現的機率實際上是相等的,它們在漸進意義下均分了總機率。在資訊理論中,我們把這樣的性質稱為“漸進均分性”。
為了更精確的討論這種“充分接近”,我們把機率分佈在\([2^{-n(H(X_1)+\epsilon)},2^{-n(H(X_1)-\epsilon)}]\)的序列收集進集合\(A_\epsilon^{(n)}\),把這個集合稱為\(\epsilon\)-典型集(Typical Set)。典型集本質上是一個事件(因為它是樣本的一個集合),根據弱大數定理的依機率收斂,典型集的機率滿足\(\Pr[A_\epsilon^{(n)}]>1-\epsilon\)。
同時,我們對典型集中的序列個數也有一個估計。由於典型集中序列的機率有下界\(2^{-n(H(X_1)+\epsilon)}\),因此其中的序列個數滿足\(1\geq \sum\limits_{x\in A_\epsilon^{(n)}}p(x)\geq |A_\epsilon^{(n)}|2^{-n(H(X_1)+\epsilon)}\),因此序列個數有上界\(2^{n(H(X_1)+\epsilon)}\);同理,典型集中序列的機率有上界\(2^{-n(H(X_1)-\epsilon)}\),因此\(1-\epsilon<\Pr[A_\epsilon^{(n)}]= \sum\limits_{x\in A_\epsilon^{(n)}}p(x)\leq |A_\epsilon^{(n)}|2^{-n(H(X_1)-\epsilon)}\),因此序列個數有下界\((1-\epsilon)2^{n(H(X_1)-\epsilon)}\)。這說明,有極大的機率典型集中的序列個數就分佈在\(2^{nH(X_1)}\)附近。
資料的壓縮編碼:熵的意義
在定義熵的時候,我們只能大概感受到熵在刻畫平均意義下編碼一個隨機變數所需要的位數。在當時,這種理解其實還並不具有數學基礎。透過漸進均分性,我們能夠更清晰的看到熵的意義。
對於隨機變數\(X\),我們可以採用下面這樣的一種相當簡單粗暴的編碼方式。這種編碼方式絕對不一定是最優的,但它反映出了熵在描述的事實。我們取足夠多的相同的\(X\)形成一列獨立同分布的隨機變數列\(X_1,X_2,\cdots\)。對於足夠大的\(n\),根據漸進均分性,我們知道絕大多數序列都會出現在典型集中。典型集中的序列個數有極大的機率在\(2^{nH(X)}\)左右。而所有可能的序列個數共為\(|\mathcal{X}|^n\)。現在我們要給每個序列一個編碼,使得編碼儘可能短,但又能和序列間形成雙射。我們先對典型集中的序列依次編碼,由於總個數為\(2^{nH(X)}\),所以二進位制編碼需要至少\(nH(X)\)。為了處理小數向上取整的情況,我們加上1,也就是說極大機率下\(nH(X)+1\)就能完成典型集內的編碼。而典型集外的序列無論如何也不超過\(|\mathcal{X}|^n\)個,因此編碼所需要的位數為\(n\log |\mathcal{X}|+1\)。為了區分典型集內與典型集外的序列,我們附加上一個標識為。這樣,我們就用\(nH(X)+2\)位編碼了典型集內的序列,用\(n\log |\mathcal{X}|+2\)編碼了典型集外的序列。在這樣的編碼下,期望意義上一個長度為\(n\)的序列是多少位的呢?\(\E[l(X^n)]=\sum\limits_{x^n}p(x^n)l(x^n)\)\(=(1-\epsilon)(nH(X)+2)+\epsilon(n\log |\mathcal{X}|+2)\)\(=nH(X)+2+\epsilon n(\log|\mathcal{X}|-H(X))\)\(\leq n[H(X)+\dfrac{2}{n}+\epsilon\log |\mathcal{X}|]\)。可見當\(n\)充分大時,存在一個可以充分小的\(\epsilon'\)使得\(\E[l(X^n)]\leq n(H(X)+\epsilon')\)。這也說明如果僅對一個隨機變數\(X\)編碼,所需要的位數不超過\(H(X)+\epsilon'\)。——熵刻畫了給一個隨機變數做最優編碼所需要的位數的一個上界!