跳轉到

3.1 熵的定義與三條公理#

導言:平均不確定性的名字#

第 2 章我們建立了自資訊 \(I(x) = -\log_2 p(x)\) 。現在把它對信源取期望,得到資訊理論最核心的量——熵(entropy):

\[ H(X) = \sum_{x \in \mathcal{X}} p(x) \log_2 \frac{1}{p(x)} = -\sum_{x \in \mathcal{X}} p(x) \log_2 p(x) \]

單位 bits/symbol。熵是「信源的平均驚訝度」、「壓縮的極限」、「通道的不確定度量」——這三個身份在本章與後續章節中逐一展開。本節先從公理出發:為什麼熵是唯一合理的選擇。

三條公理與唯一性#

Shannon(1948)與 Khinchin(1957)給出的公理化:設 \(H(p_1, \dots, p_M)\) 是不確定性度量,要求:

  1. 對稱性:交換 \(p_i\) 的順序不改變 \(H\) (符號的標籤無關緊要)。
  2. 極值性: \(H \le \log_2 M\) ,且等號 iff 均勻分佈(2.1 節第一原則:結果越均勻越不確定)。
  3. 可加性(群展性):把結果分成兩組 \(A\) 與 \(B\) ,先不確定「落在哪一組」(權重為組機率),再不確定「組內是哪一個」,總不確定性應等於一次到位的不確定性:
\[ H(p_1, \dots, p_M) = H(q_1, \dots, q_K) + q_1 H\!\left(\frac{p_{a_1}}{q_1}, \dots, \frac{p_{a_K}}{q_K}\right) + q_2 H(\cdots) + \cdots \]

其中 \(q_j = \sum_{i \in A_j} p_i\) 。可加性是決定性的:它強迫 \(H\) 具有對數的內稟尺度。可以證明(Khinchin 定理)滿足這三條公理的函數只有 \(-C\sum p_i \log p_i\) ;選定單位後即為 Shannon 熵。歷史上,Faddeev(1956)的公理版本(加上「對機率微小擾動連續」)是最常見的證明。

例題:用公理驗證熵的行為#

  • 對稱性: \(H(0.2, 0.3, 0.5) = H(0.5, 0.2, 0.3)\) ,顯然成立(求和與順序無關)。
  • 極值性: \(H(1/4, 1/4, 1/4, 1/4) = 4 \times \frac14 \times 2 = 2 = \log_2 4\) ,達到極大。
  • 可加性: \(H(1/2, 1/4, 1/4)\) 。分組 \(\{a\}, \{b, c\}\) : \(q = (1/2, 1/2)\) , $$ H(1/2, 1/4, 1/4) = H(1/2, 1/2) + \tfrac12 H(1/2, 1/2) = 1 + 0.5 = 1.5 $$ 直接計算: \(0.5 \times 1 + 0.25 \times 2 + 0.25 \times 2 = 1.5\) 。✓

熵的基本性質#

性質一:非負且有界#

\[ 0 \le H(X) \le \log_2 |\mathcal{X}| \]

下界: \(p(x) \log(1/p(x)) \ge 0\) (因 \(p \in (0,1]\) 時 \(\log_2 (1/p) \ge 0\) )。上界:由對數凹性或 Jensen 不等式(詳下)。

性質二:Jensen 證上界#

\(\log\) 是凹函數,Jensen 不等式 \(E[\log Z] \le \log E[Z]\) 給出:

\[ H(X) = E\!\left[\log_2 \frac{1}{p(X)}\right] \le \log_2 E\!\left[\frac{1}{p(X)}\right] \]

注意 \(E[1/p(X)] = \sum_x p(x) \cdot \frac{1}{p(x)} = |\mathcal{X}|\) ,故 \(H \le \log_2 |\mathcal{X}|\) ,等號 iff \(1/p(X)\) 為常數,即均勻分佈。

性質三:凹性#

熵是 pmf 的凹函數:對兩個分佈 \(p, q\) 與 \(\lambda \in [0,1]\) ,

\[ H(\lambda p + (1-\lambda) q) \ge \lambda H(p) + (1-\lambda) H(q) \]

凹性意味著「混合兩個信源比兩個信源各自更不確定」——這是最大熵方法(見下)與容量計算(第 4 章: \(\max_{p(x)} I(X;Y)\) 是凹極大化)的理論基礎,保證極大值存在且局部極大即全域極大。

常見分佈的熵表#

分佈 熵(bits) 說明
確定( \(p=1\) ) 0 零不確定性
二元 \(\{1/2, 1/2\}\) 1 極大二元熵 \(H_2(0.5)=1\)
二元 \(\{0.9, 0.1\}\) 0.469 偏斜,易壓縮
二元 \(\{0.99, 0.01\}\) 0.081 幾乎確定
均勻 \(M\) 元 \(\log_2 M\) 達上界(Hartley)
\(\{1/2, 1/4, 1/8, 1/8\}\) 1.75 2.2 節例題
幾何/指數分佈 \(E[I] + \log_2 e\) 給定均值下最大

例題:二元熵函數#

二元熵 \(H_2(p) = -p \log_2 p - (1-p)\log_2(1-p)\) 是整本書反覆出現的函數(BSC 容量 \(C = 1 - H_2(p)\) )。

\(p\) 0 0.01 0.1 0.11 0.2 0.5 1
\(H_2(p)\) 0 0.0808 0.4690 0.4999 0.7219 1 0

注意對稱性 \(H_2(p) = H_2(1-p)\) 與 \(p = 0.5\) 處的極大。通道編碼中, \(p = 0.11\) 時 \(C \approx 0.5\) :每兩個通道使用可零錯誤傳 1 位元——即使錯誤率高達 11%。

典型序列與 AEP:熵的極限定理#

熵之所以是壓縮極限,靠漸近等分性質。對 i.i.d. 信源 \(X^n\) ,定義典型集:

\[ A_\epsilon^{(n)} = \left\{ x^n : \left| \frac{1}{n} \log_2 \frac{1}{p(x^n)} - H(X) \right| \le \epsilon \right\} \]

三個關鍵性質( \(n \to \infty\) ):

  1. \(P(X^n \in A_\epsilon^{(n)}) \to 1\) (典型序列承載幾乎全部機率)。
  2. \(|A_\epsilon^{(n)}| \le 2^{n(H + \epsilon)}\) (典型集很小)。
  3. \(|A_\epsilon^{(n)}| \ge (1 - \delta) 2^{n(H - \epsilon)}\) 。

因此每個典型序列只需 \(n(H+\epsilon)\) 位元標記,壓縮率逼近 \(H\) 。AEP = 大數法則應用到自資訊(2.2 節),這是資訊理論所有「直接法」證明的模板:第 5 章(壓縮)、第 4 章(隨機編碼)共用這個腳本。

例題:AEP 的數值感受#

\(P(a) = 0.75\) 、 \(P(b) = 0.25\) 、 \(H \approx 0.811\) bits。 \(n = 10000\) 、 \(\epsilon = 0.01\) :

  • 典型序列約 \(2^{8210}\) 個,佔全部 \(2^{10000}\) 序列的比例為 \(2^{-1790}\) (天文數字般稀少)。
  • 但這個稀薄的典型集承載 \(\ge 0.99\) 的機率質量。
  • 結論:丟掉非典型序列幾乎不損失任何東西,卻把標記需求從 \(10000\) 位元砍到 \(8210\) 位元。

熵與統計力學:同名兄弟#

Boltzmann(1872–1877)與 Gibbs(1902)的統計力學熵:

\[ S = -k_B \sum_i p_i \ln p_i \]

與 Shannon 熵只差常數 \(k_B\) 與對數底。歷史上誰影響誰?Shannon 自述熵的名稱由馮諾伊曼建議,但函數形式是從公理推出的,不是抄來的;兩者的獨立殊途同歸暗示熵是某種普適量。深層聯繫:

  • 最大熵原理(Jaynes, 1957):給定約束(如平均能量),最合理的機率分佈是熵最大的分佈。約束為平均能量時,最大熵分佈正是 Boltzmann–Gibbs 分佈 \(p_i \propto e^{-\beta E_i}\) 。
  • 熱力學第二定律的資訊版:孤立系統熵不減;對應資訊處理中「觀測/操作產生資訊損耗」。Landauer 原理(1961):擦除 1 位元資訊至少耗散 \(k_B T \ln 2\) 熱量——資訊與物理的橋樑(10.3 節)。

例題:最大熵與指數分佈#

給定 \(E[X] = \mu\) 的非負連續分佈,最大化微分熵得指數分佈 \(f(x) = \frac{1}{\mu} e^{-x/\mu}\) 。這解釋了為什麼指數分佈(等待時間、元件壽命)在只知均值的場合是「最不偏」的模型。離散情形的對應:給定 \(E[X]\) 的正整數分佈,最大熵是幾何分佈。

熵的計算技巧#

例題:英文文本的熵估計#

  • 只看字母頻率(i.i.d. 模型): \(H \approx 4.18\) bits/字母(2.1 節頻率表)。
  • 計入前一字母(一階馬可夫): \(H \approx 3.56\) bits/字母。
  • 計入前兩字母:約 \(3.3\) 。
  • 人類猜字母實驗(Shannon, 1951《Prediction and Entropy of Printed English》):約 \(1.3\) – \(1.5\) bits/字母。

Shannon 用「讓人猜下一個字母、數猜錯次數」的實驗定義了熵的上界估計方法,這篇論文同時預告了預測式壓縮(PPM、算術編碼的上下文模型,5.3 節)與今日語言模型困惑度(perplexity \(= 2^H\) )的框架。

歷史前因後果#

誰、何時、為什麼#

  • 1948 Shannon:從 Hartley 的 \(\log M\) (1.2 節)出發,以三公理推出熵,並證明它同時是壓縮極限(信源編碼定理)與容量問題的核心。
  • 1948 Wiener:在《Cybernetics》中獨立使用同形式的量(稱 information),但動機是濾波與預測。
  • 1957 Khinchin:嚴格公理化(數學家版本),推廣到 \(\alpha\) -階 Renyi 熵的比較。
  • 1957 Jaynes:最大熵原理,把熵從描述性工具提升為推論原則。

解決了什麼問題#

熵回答了「一個信源到底含多少資訊」——Morse 的直覺、Hartley 的度量、英文頻率統計,全部收束成一個可計算的數。它給了工程師一個絕對標尺:任何壓縮器的位元率都有一個不可能跨越的地板。

引發什麼新問題#

  1. 熵是 i.i.d. 或平穩過程的量;非平穩信源(語音的時變特性)怎麼辦?——自適應編碼(5.3 節)。
  2. 熵度量「無失真」極限;有失真時的極限是什麼?——率失真理論(8.2 節)。
  3. 條件與互訊息版本?——下一節(3.2、3.3)。
  4. Kolmogorov 追問:熵依賴機率模型,但「一個字串本身」的資訊量呢?——演算法資訊理論(10.3 節)。

與其他領域的關聯#

凸分析#

熵是凹函數,條件熵、互資訊對輸入分佈的凹性保證了容量問題是凸優化(4.1 節 Blahut–Arimoto 演算法)。凹性/凸性是資訊論證明與演算法的通用工具。

線性代數#

熵上界 \(\log_2 M\) 的證明可用 doubly stochastic 矩陣:任何分佈可由均勻分佈經 doubly stochastic 矩陣 \(B\) 得到 \(p = Bu\) ,而 Birkhoff 定理說此類矩陣是置換矩陣的凸組合;熵的凹性 + 對稱性即給 \(H(p) \le H(u) = \log_2 M\) 。

機器學習#

最大熵分類器(logistic regression 的推導)、決策樹的資訊增益( \(H - H(\text{split})\) )、語言模型的困惑度、變分推論的 ELBO——全是熵的直系後代。

小結與思考題#

熵 \(H(X) = -\sum p \log_2 p\) 由公理唯一決定,是平均自資訊、壓縮下界、不確定性的極值度量、以及統計力學熵的同構兄弟。三個「身份」合而為一,是 Shannon 理論最美的部分。

思考題

  1. 計算 \(p = (0.5, 0.25, 0.125, 0.125)\) 的熵,並驗證可加性公理(把 \(\{1/8, 1/8\}\) 合成一組)。
  2. 證明 \(H_2(p) = H_2(1-p)\) ,並求 \(H_2(p) = 0.5\) 的 \(p\) (數值近似,答案約 0.11)。
  3. 用 Jensen 不等式證明 \(H \le \log_2 |\mathcal{X}|\) ,並指出等號條件。
  4. 一個信源輸出「永遠是 a」與「0.5/0.5 的 a、b」,熵各為何?哪個壓縮器更難設計?
  5. Shannon 1951 的猜字母實驗為什麼能給出熵的上界?(提示:猜對次數與自資訊的關係。)

下一節:當我們知道 \(Y\) ,熵會如何改變?——條件熵與鏈法則。


深入探討:熵的計算技術、推廣與極值問題#

一、Faddeev 公理化與唯一性證明的完整思路#

3.1 節引用了 Khinchin/Faddeev 公理,這裡給出唯一性證明的完整路線圖(證明細節可作為讀者的研習題):

Faddeev 公理( \(H(p_1, \dots, p_M)\) ):

  1. 連續性:對每個 \(p_i\) 連續。
  2. 對稱性:與順序無關。
  3. 分支性(grouping):3.1 節的公式。
  4. 標準化: \(H(1-p, p)\) 是 \(p\) 的嚴格增函數( \(p \in (0, \frac12]\) )。

證明路線:

  1. 由分支性推 \(H(1/2, 1/2, \dots)\) 型分佈的值:把 \(2^k\) 個等可能結果逐次二分,得 \(H(2^{-k}, \dots) = k H(1/2)\) 。
  2. 對一般有理機率 \(p_i = a_i/n\) :構造 \(n\) 個結果的實驗,把結果按組歸併,用分支性反覆拆分,證 \(H = \log n - \sum p_i \log a_i\) 型表達式。
  3. 由連續性延拓到無理機率,係數由標準化定為 \(-1/\log 2\) 。

教學價值:這個證明展示「可加性公理如何強迫對數出現」的機制,與 2.2 節自資訊的可加性公理互為表裡:單事件的資訊與信源的熵,由同一條可加性公理鎖定為對數形式。

二、Renyi 熵家族:熵的推廣光譜#

Shannon 熵只是一個家族的成員。 \(\alpha\) 階 Rényi 熵(1961):

\[ H_\alpha(X) = \frac{1}{1-\alpha} \log_2 \sum_x p(x)^\alpha, \qquad \alpha \ge 0, \alpha \ne 1 \]

特殊成員與用途:

\(\alpha\) 名稱 用途
\(0\) Hartley 熵 \(\log_2 \|\text{支集}\|\) 支集大小
\(1\) Shannon 熵(極限 \(\alpha \to 1\) ) 壓縮極限
\(2\) 碰撞熵 \(-\log_2 \sum p^2\) 密碼學猜中機率、Goppa 碼
\(\infty\) 最小熵 \(-\log_2 p_{\max}\) 最壞情況保密、抽取器

性質: \(H_\alpha\) 對 \(\alpha\) 單調不增,故 \(H_{\min} \le H_2 \le H_{\text{Shannon}} \le H_{\max}\) 。應用:密碼學的隨機性提取(9.3 節 QKD 後處理)以最小熵為安全度量(攻擊者只能保證猜中一次的機率上界);統計檢定以 Rényi 熵給錯誤指數(3.3 節 Chernoff 資訊)。Shannon 熵管平均性能,Renyi 熵管極端事件——這個分工在 4.3 節錯誤指數中具體化。

三、熵的極值問題三連解#

極值問題是熵理論的練習場,也是最大熵原理的實戰。三個經典題(約束下最大化 \(H\) ):

題 1:無約束 → 均勻分佈, \(H = \log_2 M\) (Jensen,3.1 節)。

題 2:給定期望 \(E[X] = \mu\) ( \(X\) 為正實數的連續分佈)→ 指數分佈 \(f(x) = \frac{1}{\mu}e^{-x/\mu}\) 。變分法解:拉格朗日函數 \(\int f(\mu + \lambda + \ln f) dx\) ,駐點條件 \(\ln f = \text{const} - x/\mu\) 。

題 3:給定 \(E[X] = \mu\) 、 \(E[X^2] = \sigma^2 + \mu^2\) → 高斯 \(N(\mu, \sigma^2)\) 。這就是 4.2 節容量公式中「最佳輸入是高斯」的根據。

對偶視角(統計力學):每個極值分佈對應一個統計力學系綜——均勻=微觀等機率、指數=正則系綜(能量約束)、高斯=巨正則系綜(能量與粒子數約束)。拉格朗日乘數 \(\beta\) 就是溫度的倒數。資訊理論的最大熵原理與統計力學的分佈推導是同一套變分計算(Jaynes 1957 的宣言)。

四、熵的計算技巧合集#

技巧 1:鏈式分解。 \(H(X,Y) = H(X) + H(Y|X)\) ;對條件機率有「2 的冪」結構時立即可算。

技巧 2:bits 與 nats 的混合運算。含 \(e\) 指數的分佈(幾何、Poisson)用 nats 算再換算: \(H_{\text{bits}} = H_{\text{nat}} / \ln 2\) 。

技巧 3:二進位展開法。 \(p = \{1/2, 1/4, 1/8, 1/8\}\) 型分佈(dyadic),熵 = \(\sum p_i \cdot (\text{碼長})\) 直接讀出(3.1 節例題)。

技巧 4:熵的近似。小機率尾部的貢獻: \(-p\log_2 p\) ,當 \(p = 10^{-6}\) 時貢獻約 \(0.02\) bits——尾部機率對熵的貢獻遠小於其自資訊(因為乘了 \(p\) )。這解釋了為什麼重尾分佈的熵可以不大,而其典型集行為仍由主體機率決定。

五、英文熵的多層估計:完整數據表#

3.1 節引用了 Shannon 1951 的猜字實驗,這裡給出完整的層級數據(整合各文獻的典型值),作為「模型越細、熵越低」的主線數據:

模型 熵(bits/字母) 估計方法
等可能 27 符號 4.75 Hartley 上限
一階頻率(i.i.d.) 4.14 字母統計
一階馬可夫 3.56 雙字母組轉移
二階馬可夫 3.30 三字母組
三階以上 2.8–3.0 更高組統計
詞級(1.2 萬詞彙) 約 2.2 詞頻
人類猜字(Shannon 1951) 1.3–1.5 序貫猜錯次數法
現代語言模型(GPT 級) 約 1.05–1.2 大語料交叉熵

兩個教學點:

  1. 熵的估計隨模型細化單調下降(更多約束 = 更可預測),但估計誤差隨模型維度上升( \(n\) 階模型有 \(27^{n}\) 個條件分佈要估)——這是 2.1 節 MDL 取捨的數據版。
  2. Shannon 的猜字實驗(1951)用人類當模型,給出的 1.3 bits 在七十多年後才被神經語言模型逼近——這是「熵作為預測任務的下界」的歷史性驗證,也直接預告了 10.3 節「壓縮即智慧」的評測哲學(困惑度)。

六、熱力學第二定律的資訊表述#

3.1 節末提到 Landauer 原理,這裡把資訊與物理的接口講清楚:

Landauer 原理(1961):在溫度 \(T\) 的環境中擦除一個位元(把隨機狀態變為確定狀態,即熵減 1 bit),環境至少增加 \(k_B T \ln 2\) 的熱熵:

\[ Q \ge k_B T \ln 2 \approx 2.9 \times 10^{-21} \text{ J(室溫)} \]

意義:

  1. 資訊是物理的:擦除不可逆,必伴隨熱耗散——第二定律對資訊處理的約束。
  2. 邏輯門的分類:AND/OR 丟資訊(有 Landauer 成本),XOR/NOT 可逆(理論上零成本)——可逆計算(Toffoli 閘、量子計算)由此而生。
  3. Maxwell 惡魔的終結:惡魔「知道」分子狀態需要記憶,記憶擦除付 Landauer 稅——第二定律獲救(Bennett 1982 的解決)。
  4. 與 Shannon 的對帳: \(k_B T \ln 2\) J/bit 的物理成本 vs \(-\log_2 p\) bit 的數學度量,在 2020 年代的全同態加密與低功耗 AI 晶片能耗核算中成為實際工程參數。

七、補充思考題#

  1. 用 Rényi 熵計算 \(p = \{0.5, 0.25, 0.25\}\) 的 \(H_0, H_2, H_\infty\) ,驗證單調鏈。
  2. 證明幾何分佈 \(p(k) = (1-q)q^{k-1}\) 是「給定均值下熵最大的正整數分佈」,並算其熵率。
  3. 對第五節表格:為什麼從「詞級 2.2」到「人類 1.3」還有 0.9 bits 的差距?人類用了哪些詞級統計之外的結構(語法、語義、常識)?這個差距是 10.3 節語義通訊的度量對象。
  4. Landauer 極限下,擦除 1 GB 資料的理論最小能耗是多少?( \(2^{33}\) bits × \(kT\ln 2\) ,約 \(2.5 \times 10^{-8}\) J——與實際晶片的 \(10^{-4}\) J 相差七個數量級,可逆計算的誘惑與難度都在這裡。)