~/wikiLeon 的个人知识库
[97]

# 信息熵

信息熵

信息熵(Information Entropy)由香农(Claude Shannon)于 1948 年在论文《通信的数学理论》中提出,是信息论的基础概念。它解决了一个根本问题:信息量如何量化?


核心直觉:不确定性 = 信息量

一条信息的信息量,等于它消除的不确定性的大小。

  • 已知明天太阳从东方升起 → 信息量极小(几乎必然发生)
  • 得知某支冷门球队赢得世界杯 → 信息量极大(极不确定)

度量方法: 对 32 支球队猜冠军,每次猜"前半还是后半",最多猜 5 次确定答案。这条消息的信息量 = 5 比特(bit)。一个比特 = 消除一次二选一的不确定性。


信息熵公式

对于一个有 N 种可能结果的随机变量,每种结果概率为 p₁, p₂, ..., pN:

H = -(p₁·log₂p₁ + p₂·log₂p₂ + ... + pN·log₂pN)

关键性质:

  • 各结果等概率时,熵最大(最不确定)
  • 某个结果概率为 1 时,熵为 0(完全确定,无信息量)
  • 32 支球队等概率时,H = log₂32 = 5 比特;若概率不等(热门队更可能夺冠),H < 5

汉字的信息熵

常用汉字约 7000 个(二级国标)。若等概率,每字需 13 比特(log₂7000 ≈ 13)。但汉字分布极不均匀:

  • 不考虑上下文的独立概率:每字约 8–9 比特
  • 考虑上下文相关性(语言模型):每字约 5 比特

因此一本 50 万字的中文书,信息量约 250 万比特,压缩后约 320KB。直接用双字节国标编码存储约需 1MB,是压缩文件的 3 倍,差值称为冗余度 (redundancy)。

汉语在所有语言中冗余度相对较小——与"汉语是最简洁的语言"的直觉一致。


语言模型复杂度(Perplexity)

贾里尼克(Jelinek)用信息熵定义了衡量语言模型好坏的指标:困惑度(Perplexity)

困惑度可以理解为:在这个语言模型下,句子中每个位置平均有多少个词可供选择。越小越好。

以李开复的 Sphinx 语音识别系统为例:

语言模型 困惑度
无语言模型(零元) 997
二元模型(只看共现,不看概率) 60
二元模型(考虑概率) 20

困惑度从 997 降到 20,语音识别错误率大幅降低。


互信息与相对熵

信息熵的两个重要引申概念:

互信息(Mutual Information): 衡量两个随机事件的相关性。北京下雨 vs. 空气湿度 → 互信息大;北京下雨 vs. 火箭队胜负 → 互信息接近零。用于机器翻译中消除词义歧义(Bush 是总统还是灌木丛?)。

相对熵(KL Divergence): 衡量两个概率分布的相似程度。两个完全相同的分布,KL 散度为 0。本质上,TF/IDF 中的 IDF 就是特定条件下词概率分布的交叉熵——信息检索又回到了信息论。


应用场景

flowchart TD H[信息熵 H] --> A[衡量语言模型好坏\n困惑度 Perplexity] H --> B[数据压缩理论上限\n香农第一定理] H --> C[输入法极限分析\n每字最少敲几次键] H --> D[密码学\n最好的密码让密文熵最大] H --> E[最大熵模型\n在约束下保持最大不确定性]

香农第一定理(无损编码定理):任何编码方案的平均编码长度,不可能低于信息熵给出的下界。拼音输入法理论极限:不考虑上下文约 2.1 键/字,考虑语言模型约 1.3 键/字。