(entropy)是系統中不確定性或無序程度的度量。你可以把熵想成一個隨機化過程的結果裡藏有多少「驚訝」:熵越高,結果的確定性越低

如何計算#

我們可以計算一個機率分布的熵。若分布由機率 p₁, p₂, ..., pN 組成,其熵為所有機率乘以其對數之總和取負值:

H = −p₁ × log(p₁) − p₂ × log(p₂) − ... − pN × log(pN)

這裡的 log二進位對數(binary logarithm,以 2 為底)。與自然對數不同,二進位對數以位元為單位表達資訊量,且當機率是 2 的冪次時會得到整數值:

log(1/2) = −1
log(1/4) = −2
log(1/2ⁿ) = −n

由於這些對數值為負,我們才取負總和,以得到一個正數。

均勻分布的熵#

以均勻分布產生的隨機 128 位元金鑰,其熵為:

2^128 × ( −2^(−128) × log(2^(−128)) ) = −log(2^(−128)) = 128 位元

把 128 換成任意整數 n,你會得到:均勻分布的 n 位元字串,其熵為 n 位元。

熵在分布為均勻時達到最大,因為均勻分布最大化了不確定性——沒有任何一個結果比其他結果更可能發生。

因此,n 位元的值不可能擁有超過 n 位元的熵。

偏差如何降低熵#

同理,當分布非均勻時,熵會更低。以擲硬幣為例:

公正的硬幣:

−(1/2) × log(1/2) − (1/2) × log(1/2) = 1/2 + 1/2 = 1 位元

有偏的硬幣(正面 1/4、反面 3/4):

−(3/4) × log(3/4) − (1/4) × log(1/4)
  ≈ −(3/4) × (−0.415) − (1/4) × (−2)
  ≈ 0.81 位元

0.81 小於公正硬幣的 1 位元,這告訴我們:硬幣越偏,分布越不均勻,熵就越低。

再往下推:

正面機率
1/21
1/40.81
1/100.469
1/1000.081

熵也可以看成資訊量的度量。

公正擲硬幣的結果給你恰好一個位元的資訊——正面或反面——而你事先無法預測結果。至於不公正的擲硬幣,你事先就知道反面比較可能出現,因此通常能預測結果;擲出來的結果,只是提供了讓你能確定地預測的那份資訊。