Skip to content

Latest commit

 

History

History
321 lines (207 loc) · 10.6 KB

File metadata and controls

321 lines (207 loc) · 10.6 KB

熵(Entropy):從沙漠下雨談起

一、學習目標

讀完這份教材,你應該能夠:

  1. 寫出熵的定義與公式,並解釋每一項代表什麼。
  2. 區分「單一事件資訊量」與「整體熵」的不同。
  3. 用直覺判斷哪一種機率分布的熵比較高。
  4. 在已知條件變項時,計算條件熵與互資訊。

二、熵的定義

熵是用來衡量一個隨機變數的平均不確定性

直覺上:

  • 結果越難預測 → 熵越高
  • 結果越容易預測 → 熵越低

它衡量的不是「某一次發生了什麼」,而是「在你還不知道結果前,你平均要花多少資訊量才能確定它」。


三、基本公式

對一個離散隨機變數 $X$,可能取值為 $x_1, x_2, \ldots, x_n$,對應機率為 $p(x_1), p(x_2), \ldots, p(x_n)$,定義熵為:

$$ H(X) = -\sum_{i=1}^{n} p(x_i) \log_2 p(x_i) $$

單位為 bit(使用 $\log_2$ 時)。

公式的三個層次

層次 數學部分 意義
單一事件資訊量 $-\log_2 p(x_i)$ 事件 $x_i$ 發生時的「驚訝程度」
加權 $p(x_i) \cdot [-\log_2 p(x_i)]$ 用事件機率對驚訝程度加權
整體熵 $\sum_i p(x_i) \cdot [-\log_2 p(x_i)]$ 對所有可能事件取期望值

重點提醒:熵不是單一事件的稀有性,而是整個分布的平均不確定性


四、直覺觀點的數學說明

為什麼用 $-\log p$ 來衡量「資訊量」?

先從一個網路用語切入

網路上常看到這種留言:

「這事件資訊量太大,我需要時間消化。」

通常出現在什麼時候?某個藝人突然爆出驚人新聞、某個政治人物做出沒人預料到的舉動、或某個朋友傳來一張完全無法解釋的照片。

這裡的「資訊量大」其實就是離奇程度高意外程度高的同義詞。網民不是在說「這則訊息檔案很大」,而是在說:

「這件事太出乎意料,違反我原本對世界的預期,我大腦要重新計算的東西太多了。」

這個日常用法,剛好就是資訊理論裡「資訊量」的核心直覺:

  • 越意料之外的事件 → 資訊量越大
  • 越在意料之中的事件 → 資訊量越小

如果有人告訴你「太陽今天從東邊升起」,你會說「廢話」——這就是 0 bit 的資訊量。 如果有人告訴你「某位名模突然嫁給了平常不怎麼打扮的搞笑藝人」,你會說「資訊量太大」——這就是高 bit 的資訊量(當然這只是一種主觀的價值判斷,請你當成一種簡單理解資訊量的說法)。

「離奇程度」這個直覺,可以一路用到正式公式上。我們要做的,只是把「離奇程度」用數學寫下來。

從直覺到公式

我們希望「資訊量」滿足三個條件:

  1. 越罕見的事件,資訊量越大:$p$ 越小,資訊量越大 → 需要遞減函數。
  2. 必然事件沒有資訊量:$p = 1$ 時,資訊量為 0。
  3. 獨立事件可加性:兩個獨立事件同時發生的資訊量 = 各自資訊量相加。

滿足這三點的函數就是 $-\log p$

  • $p$ 小 → $-\log p$ 大 ✓
  • $p = 1$$-\log 1 = 0$
  • 獨立事件 $p(A,B) = p(A)p(B)$,取 log 後變相加 ✓

計算範例 1:機率越小,資訊量越大

設想四個不同罕見程度的事件,計算其資訊量 $I(x) = -\log_2 p(x)$

事件 $p(x)$ $-\log_2 p(x)$ 資訊量
擲硬幣得到正面 $\frac{1}{2}$ $-\log_2 0.5$ 1 bit
擲骰子得到 6 $\frac{1}{6}$ $-\log_2 \frac{1}{6}$ ≈ 2.585 bits
抽中一張特定撲克牌 $\frac{1}{52}$ $-\log_2 \frac{1}{52}$ ≈ 5.700 bits
樂透中頭獎(百萬分之一) $10^{-6}$ $-\log_2 10^{-6}$ ≈ 19.93 bits

可以清楚看到:事件越罕見,資訊量越大。中樂透頭獎帶來的「驚訝」遠比擲硬幣得到正面多。

計算範例 2:必然事件資訊量為 0

明天太陽會升起,$p = 1$:

$$ I(\text{太陽升起}) = -\log_2 1 = 0 \text{ bit} $$

聽到這個消息你毫無驚訝——因為它本來就會發生,提供 0 bit 的資訊。

計算範例 3:獨立事件的可加性

連續擲兩次硬幣,兩次都得到正面。

方法 A:把「兩次都正面」當成一個事件 $$ p(\text{兩次正面}) = \frac{1}{2} \times \frac{1}{2} = \frac{1}{4} $$ $$ I = -\log_2 \frac{1}{4} = 2 \text{ bits} $$

方法 B:分別計算後相加 $$ I(\text{第一次正面}) + I(\text{第二次正面}) = 1 + 1 = 2 \text{ bits} $$

兩種算法結果相同 ✓。這正是為什麼用 log——它能把「機率相乘」轉換成「資訊量相加」,符合我們對「兩次獨立消息」的直覺:聽到兩個獨立消息所獲得的資訊,就是兩個消息各自資訊量的總和。

為什麼用 $\log_2$

用 2 為底時,單位是 bit,恰好對應「一個是非題能提供多少資訊」:

  • 擲硬幣(1 bit):一個是非題(「是正面嗎?」)就能確定結果。
  • 擲骰子(≈ 2.585 bits):需要約 2.585 個是非題才能確定(實際操作會用 3 個)。
  • 抽撲克牌(≈ 5.700 bits):大約 6 個是非題(「是紅色嗎?」「是愛心嗎?」⋯)能定位到一張牌。

換底時資訊量會等比例縮放(用 $\log_e$ 則單位為 nat),但相對大小不變。


五、範例:沙漠的天氣

設隨機變數 $X$ 表示「今天有沒有下雨」,取值為 ${\text{下雨}, \text{不下雨}}$

範例 1:沙漠一年只下一天雨

$$ p(\text{下雨}) = \frac{1}{365}, \quad p(\text{不下雨}) = \frac{364}{365} $$

單一事件資訊量

  • 下雨那天的資訊量: $$ -\log_2 \frac{1}{365} = \log_2 365 \approx 8.51 \text{ bits} $$ 非常意外,資訊量很高。

  • 不下雨那天的資訊量: $$ -\log_2 \frac{364}{365} \approx 0.00396 \text{ bits} $$ 幾乎不意外,資訊量極低。

整體熵

$$ H(X) = -\frac{1}{365}\log_2 \frac{1}{365} - \frac{364}{365}\log_2 \frac{364}{365} $$

$$ \approx \frac{1}{365}(8.51) + \frac{364}{365}(0.00396) $$

$$ \approx 0.0233 + 0.00395 \approx 0.0273 \text{ bits} $$

解讀:雖然「下雨」這個事件本身的資訊量高達 8.51 bits,但因為它太罕見,整體分布的平均不確定性反而很低(≈ 0.027 bits)。沙漠天氣很好預測——猜「不下雨」幾乎一定對。

這正是學生最常誤解的地方:熵 ≠ 稀有性。罕見事件的單一資訊量高,不代表整體熵高。


範例 2:全年下雨與不下雨各半

$$ p(\text{下雨}) = p(\text{不下雨}) = \frac{1}{2} $$

整體熵

$$ H(X) = -\frac{1}{2}\log_2 \frac{1}{2} - \frac{1}{2}\log_2 \frac{1}{2} = \frac{1}{2}(1) + \frac{1}{2}(1) = 1 \text{ bit} $$

解讀:兩種結果一樣可能,最難猜——猜哪一邊都只有一半機率對。對於二元變數,這就是最大熵

觀察規律

對二元變數而言:

分布 $H(X)$
(1, 0) 或 (0, 1) 0 bit(完全確定)
(0.99, 0.01) 0.0808 bit
(0.9, 0.1) 0.469 bit
(0.7, 0.3) 0.881 bit
(0.5, 0.5) 1 bit(最大)

結論:分布越平均,熵越高;分布越集中,熵越低。


六、條件熵與互資訊

現在加入新變項 $T$ 代表「時間」:上半年(雨季)或下半年(乾季)。

設想以下情境:

  • $p(T = \text{上半年}) = p(T = \text{下半年}) = \frac{1}{2}$
  • 上半年下雨的條件機率:$p(X = \text{下雨} \mid T = \text{上半年}) = 0.9$
  • 下半年下雨的條件機率:$p(X = \text{下雨} \mid T = \text{下半年}) = 0.1$

步驟 1:求邊際分布 $p(X)$

$$ p(\text{下雨}) = 0.5 \times 0.9 + 0.5 \times 0.1 = 0.5 $$

$$ p(\text{不下雨}) = 0.5 $$

步驟 2:求 $H(X)$(不知道時間時)

$$ H(X) = -0.5 \log_2 0.5 - 0.5 \log_2 0.5 = 1 \text{ bit} $$

不知道時間時,天氣完全不可預測。

步驟 3:求 $H(X \mid T)$(知道時間後)

條件熵公式:

$$ H(X \mid T) = \sum_t p(t) \cdot H(X \mid T = t) $$

先算每個條件下的熵:

  • $H(X \mid T = \text{上半年})$($p = 0.9, 0.1$):

$$ -0.9 \log_2 0.9 - 0.1 \log_2 0.1 \approx 0.9(0.152) + 0.1(3.322) \approx 0.469 \text{ bit} $$

  • $H(X \mid T = \text{下半年})$($p = 0.1, 0.9$):

對稱,結果一樣 $\approx 0.469$ bit。

再加權:

$$ H(X \mid T) = 0.5 \times 0.469 + 0.5 \times 0.469 = 0.469 \text{ bit} $$

步驟 4:求互資訊 $I(X; T)$

$$ I(X; T) = H(X) - H(X \mid T) = 1 - 0.469 = 0.531 \text{ bit} $$

解讀

數值 意義
$H(X)$ 1 bit 不知道時間時,天氣的平均不確定性
$H(X \mid T)$ 0.469 bit 知道時間後,天氣還剩下多少不確定性
$I(X; T)$ 0.531 bit 「時間」這個資訊讓我們對天氣的不確定性下降了多少

七、教學主線

把這些概念串成一句話:

不確定性不是固定的,而是取決於你掌握了哪些資訊。

  • $H(X)$:原本對 $X$ 有多不確定。
  • $H(X \mid T)$:知道 $T$ 後,對 $X$ 還剩多少不確定。
  • $I(X; T)$:$T$ 幫我們減少了多少對 $X$ 的不確定性。

八、易混淆點與教學提醒

常見誤解 正確理解
「熵 = 稀有性」 熵是整個分布的平均不確定性,不是單一事件
「網民說的『資訊量大』= 熵很高」 網民說的是單一事件的離奇程度($-\log p$),不是整個分布的熵。一個罕見事件的單一資訊量可以很大,但整體熵可能很低(沙漠下雨就是例子)
「分布越極端熵越高」 相反:分布越平均熵越高
「加上條件會增加資訊量,所以條件會增加熵」 條件變項若與目標變項有關,會降低剩餘不確定性(即 $H(X \mid T) \le H(X)$
「互資訊就是相關係數」 互資訊衡量的是「降低多少不確定性」,可捕捉非線性關係,且永遠 $\ge 0$

穩定的表述方式

條件變項若與目標變項有關,就會提供資訊,使目標變項的剩餘不確定性下降。下降的量就是互資訊。


九、本章小結

  1. 衡量分布的平均不確定性,公式為 $H(X) = -\sum p(x) \log_2 p(x)$
  2. 單一事件資訊量 $-\log_2 p(x)$整體熵不同——前者看一次事件,後者看整個分布。
  3. 均勻分布熵最高;機率越集中於某一個結果,熵越低。
  4. 條件熵 $H(X \mid T)$ 表示已知 $T$$X$ 的剩餘不確定性。
  5. 互資訊 $I(X; T) = H(X) - H(X \mid T)$ 表示 $T$$X$ 提供了多少資訊。