信息论(Information Theory)是研究信息度量、传输和处理的数学理论。它由克劳德·香农(Claude Shannon)于1948年在其开创性论文《通信的数学理论》中奠基,为解决通信系统中的根本问题——如何在有噪声的信道上可靠地传输信息——提供了理论基础。信息论的影响远远超出了通信工程,它深刻影响了统计学(AIC/BIC准则)、机器学习(交叉熵损失、互信息特征选择)、计算语言学(语言模型困惑度)、神经科学(神经编码)、量子物理(量子信息论)乃至生物学(基因信息处理)等多个领域。
信息论解决的核心问题可以用一个简洁的框架来概括:数据的压缩(编码)与可靠传输之间存在怎样的极限?
香农天才地指出,这两个问题分别对应着信息论的两个核心定理:
- 信源编码定理(Source Coding Theorem):任何信源都存在一个可压缩的理论下限——信息熵。如果压缩率低于熵,信息必然丢失。
- 信道编码定理(Channel Coding Theorem):任何有噪声的信道都存在一个最大可靠传输速率——信道容量。只要传输速率低于信道容量,就可以实现任意小的错误率。
这两个结论共同确立了信息论的理论边界——它们告诉我们在什么极限下可以做到什么,什么是不可能的。
信息论的核心概念是熵(Entropy),它量化了一个随机变量的不确定性——或者说,观测该变量所获得的信息量。这个思想可以追溯到熵在热力学中的起源,但香农赋予了它在信息语境下的全新含义。
思考实验:假设你想知道明天是否会下雨。如果天气预报说"有80%的概率下雨",那么当你第二天看到窗外果然在下雨时,你获得了多少信息?如果天气预报说"有50%的概率下雨",你获得的信息量是更多还是更少?
直觉告诉我们:越不确定的事件,其发生提供的信息量越大。香农将这一直觉形式化为:
I(x)=log2P(x)1=−log2P(x)
其中 I(x) 是事件 x 的自信息(Self-Information),P(x) 是该事件发生的概率。当使用以2为底的对数时,信息量的单位是比特(bit);使用自然对数时,单位是纳特(nat);使用以10为底的对数时,单位是哈特利(hartley)。
为什么使用对数?因为在独立事件中,信息具有可加性。如果一个事件同时告诉我们两件独立的事情,总信息量应该是各自信息量之和。对数函数恰好满足这一性质:log(ab)=loga+logb。
对于离散随机变量 X,其概率分布为 P(X=xi)=pi (i=1,2,…,n),香农熵定义为自信息的期望:
H(X)=−i=1∑npilog2pi
几个直观例子:
- 公平硬币(P(正面)=0.5,P(反面)=0.5):H=−0.5log0.5−0.5log0.5=1 比特。每次抛掷恰好提供1比特信息。
- 偏置硬币(P(正面)=0.9,P(反面)=0.1):H=−0.9log0.9−0.1log0.1≈0.469 比特。因为结果更可预测,每次抛掷提供的平均信息量更少。
- 确定事件(P(正面)=1):H=−1×log1=0 比特。必然事件不提供任何信息。
当概率分布均匀时熵最大(最不确定),当概率集中在单一事件时熵最小(0,完全确定)。
香农熵具有以下重要性质:
- 非负性:H(X)≥0,当且仅当 X 是确定变量时取等。
- 对称性:H(X) 与变量的取值顺序无关,只与概率分布有关。
- 极值性:对于 n 个事件的随机变量,当所有事件等概率时熵最大,Hmax=log2n。
- 可加性:如果 X 和 Y 独立,则 H(X,Y)=H(X)+H(Y)。
在只有部分信息(如均值已知)的情况下,选择满足约束条件且熵最大的分布,是最符合"无知"原则的选择。这就是最大熵原理(Maximum Entropy Principle),由埃德温·杰恩斯(Edwin T. Jaynes)系统化发展。例如,已知均值且定义域为正实数的最大熵分布是指数分布;已知均值和方差则是正态分布。这一原理在自然语言处理(最大熵模型)、统计力学(玻尔兹曼分布推导)中至关重要。
两个随机变量 X 和 Y 的联合熵(Joint Entropy)度量同时观测它们的不确定性:
H(X,Y)=−x∈X∑y∈Y∑P(x,y)log2P(x,y)
可以证明链式法则:H(X,Y)=H(X)+H(Y∣X)
已知 X 后 Y 的剩余不确定性——条件熵(Conditional Entropy):
H(Y∣X)=x∈X∑P(x)H(Y∣X=x)=−x,y∑P(x,y)log2P(y∣x)
条件熵满足 0≤H(Y∣X)≤H(Y)。当 X 完全决定 Y 时 H(Y∣X)=0;当 X 和 Y 独立时 H(Y∣X)=H(Y)。
💡 理解要点:引入新信息不会增加不确定性——H(Y∣X)≤H(Y) 永远成立。但这一结论对概率成立,对单次观测不一定成立(看到新证据后后验概率可能变得更不确定)。
互信息(Mutual Information, MI)度量两个随机变量之间共享的信息量——通俗地说,就是知道其中一个变量能在多大程度上降低对另一个变量的不确定性:
I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)
互信息的对称性体现了信息交换的双向本质:X 告诉了关于 Y 的信息量,等于 Y 告诉了关于 X 的信息量。
互信息也可以直接用概率分布表达:
I(X;Y)=x∈X∑y∈Y∑P(x,y)log2P(x)P(y)P(x,y)
关键性质:
- I(X;Y)≥0,当且仅当 X 和 Y 独立时取零。
- I(X;Y)≤min(H(X),H(Y))。
- I(X;X)=H(X)(信息与自身的互信息就是自己的熵)。
这是初学者最容易混淆的概念。相关系数(Pearson)只度量线性关系,互信息度量任意形式的依赖关系。例如:
- 关系 Y=X2:X 和 Y 的相关系数为0,但互信息非零。
- 周期性关系 Y=sin(X):非线性但高度依赖,互信息可以捕捉。
在实践中的含义:当使用互信息做特征选择时,即使特征与标签之间没有线性关系,互信息也能发现它们之间的依赖关系。这在复杂机器学习任务中非常有用。
I(X;Y∣Z)=H(X∣Z)−H(X∣Y,Z)
条件互信息描述了在给定 Z 的条件下,X 和 Y 之间共享的信息量。它帮助我们区分直接关联和间接关联,在因果关系发现中扮演关键角色。
这三个公式是信息论推理的基石:
- 熵的链式法则:H(X1,X2,…,Xn)=∑i=1nH(Xi∣Xi−1,…,X1)
- 互信息的链式法则:I(X1,X2,…,Xn;Y)=∑i=1nI(Xi;Y∣Xi−1,…,X1)
- 条件互信息的链式法则:I(X1,…,Xn;Y∣Z)=∑i=1nI(Xi;Y∣Z,X1,…,Xi−1)
KL散度(Kullback-Leibler Divergence),也称相对熵,度量两个概率分布 P 和 Q 之间的差异(从 Q 到 P 的方向):
DKL(P∥Q)=x∑P(x)log2Q(x)P(x)
重要性质:
- DKL(P∥Q)≥0,当且仅当 P=Q 时取等(Gibbs 不等式)。
- 不对称性:DKL(P∥Q)=DKL(Q∥P)。KL散度不是距离度量,它不满足三角不等式和对称性。
- 从信息论角度看,DKL(P∥Q) 度量了使用 Q 近似 P 时多出的编码长度。
不对称性的理解:优化 DKL(P∥Q)(前向KL)倾向于让 Q 覆盖 P 的所有模式(zero-avoiding);优化 DKL(Q∥P)(反向KL)倾向于让 Q 集中在 P 的少数峰值上(mode-seeking)。这一特性在变分推断(VI 使用反向KL)和最大似然估计(MLE 等价于优化前向KL的离散形式)中有重要应用。
交叉熵(Cross-Entropy)是另一个常用的度量:
H(P,Q)=−x∑P(x)log2Q(x)=H(P)+DKL(P∥Q)
交叉熵在机器学习中极为常见——几乎所有分类任务的损失函数都是交叉熵损失。当 P 是真实分布(通常是 one-hot 标签),Q 是模型预测分布时,最小化交叉熵等价于最小化 KL 散度(因为 H(P) 是常数)。
JS散度(Jensen-Shannon Divergence)是KL散度的对称化版本:
DJS(P∥Q)=21DKL(P∥M)+21DKL(Q∥M)
其中 M=2P+Q。JS散度满足对称性和有界性(0≤DJS≤1),在生成对抗网络(GAN)和概率分布度量学习中广泛应用。
与KL散度和JS散度不同,Wasserstein距离(Earth Mover's Distance)在分布不重叠时仍能提供有意义的梯度信息。这是WGAN(Wasserstein GAN)的核心创新——通过将生成器损失从JS散度切换到Wasserstein距离,解决了原始GAN训练不稳定的问题。具体地,Wasserstein距离度量将一个分布"搬运"到另一个分布所需的最小工作量。
在讨论数据压缩之前,需要明确编码的基本性质。一个编码是从信源符号到码字的映射:
- 非奇异码(Non-singular):不同符号映射到不同码字。
- 唯一可译码(Uniquely Decodable):任意有限长码字序列只能以一种方式分割成码字。
- 即时码(Instantaneous / Prefix Code):没有任何一个码字是另一个码字的前缀。即时码是唯一可译码的子集,且可以即时解码。
Kraft不等式是前缀码存在的充分必要条件:
i=1∑n2−li≤1
其中 li 是第 i 个码字的长度。Kraft 不等式在通信协议设计(变长编码的可构建性检查)中有重要实践意义。
信源编码定理确立了无损压缩的理论极限:
对于概率分布为 P 的离散无记忆信源,当码长 n→∞ 时,存在编码使得平均码长 Ln∗ 满足:
H(X)≤Ln∗<H(X)+n1
当 n→∞ 时,平均码长可以任意接近信源熵 H(X)。反过来,任何编码的平均码长不可能短于熵。 这就是无损压缩的基本极限。
霍夫曼编码(David A. Huffman, 1952)是最著名的变长无损压缩算法,它生成最优前缀码:
- 将所有符号按概率从小到大排序。
- 合并两个概率最小的符号为一个新节点,概率相加。
- 重复直到只剩一个节点。
- 从根节点出发,左侧分支持0,右侧分支持1,得到各符号的编码。
特性:
- 最优性:给定概率分布下,霍夫曼编码达到最短平均码长(满足Kraft不等式的最优前缀码)。
- 平均码长满足 H(X)≤L<H(X)+1。
- 实际应用:DEFLATE算法(PNG图像、gzip、ZIP均由DEFLATE实现)使用的就是霍夫曼编码。
💡 实践案例:HTTP/2 的 HPACK 头部压缩算法使用静态霍夫曼编码表压缩HTTP头部。Google 的 Brotli 压缩算法在 LZ77 之后也使用了霍夫曼编码。
算术编码可以任意接近信源熵(消除了霍夫曼编码的1比特上限),它将整个消息映射到 [0,1) 区间内的一个实数:
- 初始区间为 [0,1)。
- 对每个符号,根据其概率将当前区间按比例分割。
- 选取最终区间内的一个数(通常是左端点的二进制表示)作为编码结果。
特性:
- 对于独立同分布信源,算术编码的平均码长可达 H(X)(理论上可任意接近)。
- 但算术编码的逐符号编码复杂度较高,且有专利问题(早期)。
- 现代实现:范围编码(Range Coding)是其近似实现,在编码效率和计算速度间取得更好平衡,被 rANS(非对称数字系统)等现代技术进一步优化。
实际应用:
- JPEG 2000、H.264/AVC(部分模式)、HEVC 使用算术编码的某种变体。
- Facebook 的 Zstandard (zstd) 压缩算法使用有限状态熵编码(FSE),它基于 tANS(非对称数字系统)算法,结合了霍夫曼的快速解码和算术编码的高压缩比。
基于字典的压缩方法,由 Lempel 和 Ziv 于1977-1978年提出。其核心思想是通过引用之前出现过重复序列来压缩数据。
- LZ77(1977):维护滑动窗口,用"长度-距离"对编码重复片段。应用于 gzip、PNG(DEFLATE)、ZIP。
- LZ78(1978):维护动态字典,将新短语加入字典。应用于 GIF、TIFF、Unix compress 命令。
LZ系列虽然不是严格意义上"接近熵"的编码,但其自适应特性使其对未知信源分布具有极好的适应性,是目前最广泛使用的通用压缩算法基础。
在PAQ等压缩器中,使用大量上下文模型(n-gram、单词级、语义级)来估计下一个符号的概率,然后将各模型的预测结果通过逻辑回归等机器学习方法加权组合。PAQ在Hutter Prize(设计压缩小型百科全书enwik8的竞赛)中长期占据领先地位,代表了无损压缩领域的最高水平。
通信信道是信息从发送端到接收端传输的媒介,通常存在各种形式的噪声和干扰。常见的信道模型包括:
- 无噪声二进制信道:输入 X 和输出 Y 完全一致。
- 二进制对称信道(BSC):P(Y=X)=p。这是最基本的有噪声信道模型。
- 二进制擦除信道(BEC):以概率 1−α 正确传输,以概率 α 发生擦除(接收端知道哪些比特被擦除)。
- 加性高斯白噪声信道(AWGN):Y=X+Z,Z∼N(0,σ2)。
- 多输入多输出信道(MIMO):现代无线通信的核心信道模型,使用多根天线提高容量。
对于离散无记忆信道(DMC),信道容量定义为输入-输出互信息的最大值:
C=P(X)maxI(X;Y)
单位是比特每信道使用(bits per channel use)。信道容量是信道固有的物理极限——它给出了在噪声信道上可以实现可靠通信的最高速率。
常见信道的容量公式:
- BSC(二进制对称信道,错误概率 p):C=1−Hb(p),其中 Hb(p)=−plogp−(1−p)log(1−p) 是二进制熵函数。
- BEC(二进制擦除信道,擦除概率 α):C=1−α。
- AWGN(加性白高斯噪声,信噪比 SNR):C=21log2(1+SNR) 比特/信道使用。
- MIMO AWGN(nT 发射天线,nR 接收天线):C≈min(nT,nR)log2(1+SNR)(在高SNR区域)。
香农信道编码定理可以说是通信领域最深刻的结论之一:
对于每个信道容量为 C 的离散无记忆信道,如果传输速率 R<C,则存在编码和译码方案使得错误概率可以任意小。反之,如果 R>C,则错误概率有正下界,无法实现可靠通信。
这个结论突破性的地方在于:噪声不会以同样的比例减少容量。即使信道噪声很大,只要传输速率低于容量,理论上就可以实现任意可靠通信。如何实现?香农证明存在这样的编码,但没有给出构造方法。
随机构造与联合典型性:香农的证明使用随机构造编码本和联合典型性译码。对于 2nR 个码字,每个码字独立随机生成。接收端查找与接收序列"联合典型"的码字(即互信息接近 I(X;Y) 的序列对)。通过码本大小设计和典型集分析,可以证明平均错误概率指数级下降到零。
信道编码定理不仅给出了可靠性条件,还量化了错误概率下降的速度。对于速率 R<C,错误概率随码长 n 呈指数下降:
Pe(n)≈2−nE(R)
其中 E(R) 是可靠函数(Error Exponent / Reliability Function),是 R 的递减函数。当 R→0 时 E(R)→E(0)(称为零率误差指数),当 R→C 时 E(R)→0。
尽管香农的证明是非构造性的,经过近七十年的努力,现在已经有了接近香农极限的实用编码方案:
- Turbo码(1993):通过两个或多个并行级联卷积码和迭代译码(BCJR算法),首次逼近香农极限,标志着编码理论的重要突破。
- LDPC码(Low-Density Parity-Check,1960年首次提出,1990年代重新发现):奇偶校验矩阵稀疏的线性分组码,采用和积(Sum-Product)算法迭代译码。性能接近香农极限。应用于 10GBASE-T 以太网、DVB-S2(卫星电视)、Wi-Fi (802.11n/ac/ax) 和 5G NR 数据信道。
- 极化码(Polar Codes,2009,Erdal Arıkan):通过信道极化操作,理论上可以在二进制输入对称信道下达到香农极限,且具有解析的构造方法和低复杂度译码(SC/SCL译码)。极化码被选为5G NR 控制信道的编码方案。
- 卷积码与Viterbi译码:卷积码在较高复杂度下提供良好性能,Viterbi译码基于最大似然序列估计。广泛应用于深空通信(NASA/Voyager)、GSM(2G移动通信)。
| 编码方案 |
接近香农极限程度 |
编码复杂度 |
译码复杂度 |
延迟 |
典型应用 |
| 卷积码 + Viterbi |
较差(~2-3dB) |
低 |
中 |
低 |
深空通信、GSM |
| Turbo码 |
好(~0.5-1dB) |
中 |
高 |
高 |
3G/4G移动通信 |
| LDPC码 |
很好(~0.1-0.5dB) |
中 |
中 |
中 |
5G数据信道、Wi-Fi、DVB |
| 极化码 |
最优(可达极限) |
高 |
低-中(SC/SCL) |
低-中 |
5G控制信道 |
在无线通信系统设计(Wi-Fi、4G/5G)、卫星通信、深空通信(NASA火星任务采用特定的卷积+LDPC级联编码)、光纤通信(光传输系统的调制编码选择和纠错码设计)等场景中,香农极限为系统设计者提供了"天花板",帮助他们判断进一步优化是否还有空间。
实际工程中的差距:在5G系统中,使用LDPC码(数据信道)和极化码(控制信道)后,实际工作点距离香农极限仅约0.5-1dB,也就是说系统损耗不到25%的潜在速率。而20年前典型的通信系统距离香农极限通常还有3-5dB的差距。
率失真理论(Rate-Distortion Theory)是有损压缩的理论基础。它回答了一个关键问题:如果允许一定程度的失真,数据可以压缩到多小的程度?
率失真函数 R(D) 定义为在平均失真不超过 D 的条件下,可以达到的最小压缩比特率:
R(D)=P(X^∣X):E[d(X,X^)]≤DminI(X;X^)
率失真函数的逆函数 D(R) 给出了"压缩到 R 个比特时的最小失真",在高分辨率(高码率)条件下,对于高斯信源,有经典结论:
- 带平方误差度量的高斯信源:D(R)=σ2⋅2−2R。(指数级下降,每个比特将失真因子减半。)
实际应用:
- JPEG 使用离散余弦变换(DCT)后将系数量化和熵编码,目标是在给定比特率下最小化感知失真。
- 有损音频编码(MP3、AAC):借鉴心理声学模型,在码率受限条件下保留听觉重要成分,丢弃不可闻成分。
- 视频编码(H.264/H.265/VP9/AV1):使用块级变换编码 + 运动补偿 + 率失真优化的模式选择(率失真优化,RDO),在码率和画质间做最优权衡。
- 神经压缩:近年来,基于超先验(Hyperprior)模型的端到端图像压缩方案(如Ballé等人的工作)使用变分自编码器联合优化率失真目标,已实现超越传统编码标准(BPG/JPEG 2000)的率失真性能。
对连续随机变量,香农熵推广为微分熵(Differential Entropy):
h(X)=−∫Xf(x)log2f(x)dx
微分熵与离散熵有重要区别:
- 微分熵可以为负,因为概率密度函数可能大于1。
- 离散熵是离散事件的绝对不确定性,微分熵是相对参考尺度的不确定性。
- 最大微分熵定理:在给定方差 σ2 的条件下,正态分布 N(μ,σ2) 具有最大的微分熵:h(N)=21log2(2πeσ2)。
互信息的定义可以自然地推广到连续变量:
I(X;Y)=h(X)−h(X∣Y)=∬f(x,y)log2f(x)f(y)f(x,y)dxdy
连续互信息非负、对称,且具有与离散版本相同的性质。
加性高斯白噪声信道(AWGN)是最重要的连续信道模型。当信号功率 P、噪声功率 σ2,带宽为 B 时:
C=Blog2(1+σ2P)
这就是著名的香农-哈特利定理(Shannon-Hartley Theorem)。它揭示了一个关键洞察:增加带宽不能无限提高信道容量,因为增加带宽也引入更多的噪声(在AWGN中噪声功率与带宽成正比),容量最终趋向 σ2P⋅ln21。
带宽-功率折衷:在系统设计(如卫星通信 vs 地面蜂窝网络)中,需要权衡带宽和发射功率。带宽受限系统(高SNR、有限带宽)使用高阶调制(如256-QAM);功率受限系统(低SNR、大带宽)使用扩频或低阶调制。
1948年香农开创论文发表后,信息论迅速经历了理论扩充:
- 费恩斯坦引理(Feinstein's Lemma, 1954):为香农第二定理提供了构造性证明工具。
- Fano不等式(1952):H(X∣Y)≤Hb(pe)+pelog(∣X∣−1),连接了条件熵与错误概率,在容量证明中不可或缺。
- Rate Distortion Theory(香农,1959):将有损压缩纳入理论框架。
- Kolmogorov复杂度(1960年代):参见下一节的详细讨论。
- Gallager的误差指数分析(1965):系统化地建立了随机编码的误差指数界限。
- Lempel-Ziv压缩算法(1977-1978):将信息论的无损压缩理论推向实用。Ziv和Lempel的工作证明了LZ系列算法对任何平稳遍历信源都可以渐进达到熵率。
- 联合信源信道编码:香农分离定理指出在无限码长下,可以将压缩和信道编码分开设计而不损失最优性,但有限码长下联合设计可能更优。
- 信息论与统计学的交融:Rissanen的最小描述长度原则(MDL)将信息论引入模型选择;Akaike的AIC准则也有信息论的根基。
- 维纳滤波器与信息论:Wiener-Kolmogorov滤波理论与信息论的结合,奠定了自适应信号处理的理论基础。
- Turbo码与LDPC码的复兴(1993-2000):这两种接近香农极限的实用编码方案也催生了迭代信息传递算法(Belief Propagation/Sum-Product),该算法在图中进行概率推理,成为机器学习和AI的一大支柱。
- 信息论与统计学:最大互信息系数(MIC)、正规化互信息(NMI)广泛应用于生物信息学(基因表达分析)和社会网络社区发现。
- 信息瓶颈理论(Tishby et al., 1999):将信息论引入表示学习,通过最大化I(X; T)的同时最小化I(T; Y)来寻找最优表示(其中T是中间表示,X是数据,Y是标签)。这个理论后来被用来解释深度神经网络的泛化行为。
- 量子信息论:Shor算法(1994)和量子纠错码的发现标志着量子信息论的诞生,Shannon理论被推广到量子语境(von Neumann熵、Holevo界、量子信道容量)。
信息论在现代机器学习中无处不在,它不仅是损失函数的基础,也深刻影响着模型结构设计、训练方法和评估指标。
几乎所有现代分类模型(卷积神经网络、Transformer、逻辑回归等)都使用交叉熵作为损失函数。对于分类任务,真实标签 y 是 one-hot 向量,模型输出类别概率 y^,交叉熵损失为:
L=−i=1∑Cyilogy^i
为何交叉熵比均方误差(MSE)更适合分类:交叉熵损失在预测概率远离真实标签时提供更大梯度(梯度与误差成比例),加速收敛;MSE在softmax输出上存在严重的梯度消失问题,尤其是在输出极端概率时。
标签平滑(Label Smoothing):一种正则化技术,通过将硬标签 y 替换为软标签 (1−ϵ)y+ϵ/C 来防止模型过于自信。从信息论角度看,它假设标签以概率 ϵ 被随机更改,对应于在输入-标签互信息中引入了噪声项。这在Google的Inception v2网络中得到系统化应用,现在已成为训练视觉分类器和机器翻译模型的标配技术。
在特征选择中,互信息比相关系数更强大。给定目标变量 Y 和候选特征集合 {Xi},选择使 I(Xi;Y) 最大的特征:
from sklearn.feature_selection import mutual_info_classif
# 计算每个特征与目标的互信息
mi_scores = mutual_info_classif(X_train, y_train,
discrete_features='auto',
random_state=42)
互信息特征选择 vs 费舍尔得分:费舍尔得分假设特征服从类条件正太分布且各类协方差相等,而互信息不要求任何分布假设,可以捕捉复杂非线性关系。
信息瓶颈理论提供了理解深度神经网络的一种视角:
- 深度神经网络的学习过程可以分解为两个阶段——在训练早期,网络增加输入与隐层表示之间的互信息 I(X;T);在训练后期,网络在保持 I(T;Y) 的同时减少 I(X;T)(即"舍弃"与任务无关的信息)。
- 这解释了为什么dropout和batch normalization等正则化技术有效——它们迫使网络学习更鲁棒的表示,减少无关信息的冗余编码。
后续争议:关于信息瓶颈理论是否准确地描述了现代深度神经网络(特别是使用ReLU激活的宽网络)的学习动力学,学界仍有讨论。但至少在中小型网络和自编码器场景中,该理论提供了富有启发性的视角。
变分自编码器(VAE)的损失函数——证据下界(ELBO)——直接由KL散度构造:
ELBO=Eq(z∣x)[logp(x∣z)]−DKL(q(z∣x)∥p(z))
其中第一项是重构损失,第二项是KL正则项,推动近似后验 q(z∣x) 接近先验 p(z)。这个框架构成了深度生成模型的理论基础,在图像生成、分子设计、数据增强等方面有广泛应用。
C4.5和ID3决策树算法使用信息增益(Information Gain,即互信息)选择最优分裂特征:
Gain(S,A)=H(S)−v∈Values(A)∑∣S∣∣Sv∣H(Sv)
CART算法使用基尼不纯度(Gini impurity)而非信息增益,但基尼不纯度和交叉熵在二阶近似下是等价的。
在语言模型评估中,困惑度(Perplexity)是应用最广泛的指标之一。它不仅衡量模型对测试数据的拟合程度,也反映了模型在预测下一个词时的"平均不确定性":
PPL(P,Q)=2H(P,Q)
其中 H(P,Q) 是语言模型 Q 对测试语料 P 的交叉熵。困惑度的直观解释是:困惑度 k 意味着模型预测下一个词时的平均分支因子为 k ——即模型"纠结于" k 个候选词。
实际意义:一个困惑度为20的语言模型意味着,平均而言,它预测下一个词时在约20个候选词中摇摆不定。今天的GPT系列模型在标准测试集上的困惑度已降至十几甚至个位数(如GPT-4在部分数据集上PPL < 8),反映了极大语言模型对自然语言模式的深刻建模能力。
Kolmogorov复杂度(由苏联数学家安德雷·科尔莫戈罗夫于1960年代独立提出,与此同时索罗门诺夫和柴廷也作出了独立发现)是一个比香农熵更根本的概念。它定义了一个字符串的"固有信息含量"——即能输出该字符串的最短程序的长度:
KU(x)=p:U(p)=xminℓ(p)
其中 U 是通用图灵机,p 是输出 x 的程序。Kolmogorov复杂度不依赖于字符串的统计特性,它适用于单个字符串(而非概率分布)。
- 对于从独立同分布信源生成的字符串,Kolmogorov复杂度的期望接近香农熵乘以长度。
- 但Kolmogorov复杂度可以捕捉到统计方法无法发现的规律——例如,圆周率 π 的十进制展开在统计上是随机的,但是完全确定的(Kolmogorov复杂度很低,因为 π 可以由简短程序计算)。
关键差异:
- 香农熵假设信源服从已知的概率分布,是期望意义上的不确定性。
- Kolmogorov复杂度不依赖于概率模型,是绝对的——但它不可计算。这是信息论中一个深刻的结论:不存在一个通用算法可以为任意字符串计算其Kolmogorov复杂度。
Kolmogorov复杂度的不可计算性源于图灵机的停机问题——我们无法确定给定的程序是否最终会停机并输出指定的字符串。这一事实揭示了信息度量的本质困难:
- Fisher和Kolmogorov复杂度提供了"真值"的定义,但不可计算。
- 数据压缩(如gzip)提供了Kolmogorov复杂度的上界估计——压缩后的长度就是Kolmogorov复杂度的上界。
- 在实践中,我们依赖压缩算法的输出作为Kolmogorov复杂度的代理度量,但也清楚这些代理度量会有不同程度的高估。
最小描述长度原则(Minimum Description Length, MDL)是Kolmogorov复杂度思想在统计学中的实践应用。它指出:在多个对数据的候选模型(假说)中,应选择能够以最短总长度描述数据的模型。总长度 = 描述模型的长度 + 用模型编码数据的长度。
MDL在实践中通过两阶段编码实现:第一阶段编码模型参数(需要多少比特取决于参数的数量和精度);第二阶段编码用该模型压缩后的数据残差。据此,MDL自然地实现了过拟合惩罚——越复杂的模型需要越多的比特来描述参数,因此只有显著减少残差时才能胜出。
在实践中,MDL通常通过对模型参数数量和精度施加对数惩罚来实现。对于一个有 k 个参数、参数精度为 p 比特的模型,在一组 n 个数据点上的MDL准则为:
总描述长度=k×p+编码误差所需的比特数
AIC与MDL:Akaike信息准则(AIC)可视为MDL在似然框架下的渐近近似。但MDL更通用,不要求大样本渐近假设。
Python示例:不使用第三方库的MDL模型选择。
def mdl_score(y_true, y_pred, k, n):
"""
计算MDL得分(越小越好)
参数:
y_true: 真实值
y_pred: 预测值
k: 模型参数数量
n: 数据点数
"""
# 计算编码误差所需的比特数(假设高斯分布)
residuals = y_true - y_pred
mse = np.mean(residuals ** 2)
# 以2为底的对数,结果单位为比特
error_bits = 0.5 * n * np.log2(2 * np.pi * np.e * mse) if mse > 0 else 0
# 每个参数需要大约 log2(n) 比特描述(精度随n增长)
param_bits = 0.5 * k * np.log2(n)
return param_bits + error_bits
MDL vs 贝叶斯信息准则(BIC):BIC的公式 −2ln(L^)+kln(n) 可以视为MDL在大样本下的特定实现。但MDL的哲学思想更为深厚——它不依赖于先验分布的选择,只依赖于描述长度本身。在模型选择实践中,MDL和BIC往往给出相似的结果,但当参数先验不明显时,MDL提供了更自然的选择路径。
费舍尔信息(Fisher Information)度量一个参数 θ 的观测数据 X 所携带的"信息量"。定义为得分函数(Score Function)的方差:
I(θ)=E[(∂θ∂logf(X;θ))2]
克拉默-拉奥下界(Cramér-Rao Lower Bound, CRLB):任何无偏估计量的方差至少不低于费舍尔信息的倒数:
Var(θ^)≥I(θ)1
在参数模型中,I(X;θ)(互信息)和 I(θ)(费舍尔信息)之间有深刻的联系:
- 在小噪声极限下,互信息可以用费舍尔信息展开:I(X;θ)≈21log(I(θ))+常数。
- 这建立了统计估计和信息传输之间的桥梁:对参数做最大似然估计的精度等价于信道容量。
布伦诺-德-菲内蒂-拉杜勒定理(Bruno de Finetti's theorem)及其在信息论中的推广提供了从可交换性到条件独立性的重要路径。可交换序列(联合分布不随排列改变)必然是条件独立同分布的。这为贝叶斯统计学中的"分层先验"结构提供了信息论层面的合理性。
熵正则化(Entropy Regularization)在现代优化和强化学习中扮演关键角色。在强化学习(如Soft Actor-Critic)中,通过在奖励函数中加入策略熵项,鼓励智能体在探索和利用间取得平衡:
L=E[R(s,a)]+αH(π(⋅∣s))
直觉:高熵意味着随机性更强——智能体在探索时不会过早收敛到局部最优解。温度参数 α 控制正则化强度。SAC(Haarnoja et al., 2018)通过最大化期望奖励和熵的加权和,在连续控制任务中取得了当时最先进的效果。
信息几何(Information Geometry)将微分几何引入统计推断和信息论。它将统计流形(概率分布族的参数空间)视为 Riemannian 流形,其上自然度量为费舍信息度量(Fisher Information Metric):
gij(θ)=E[∂θi∂logp(x;θ)∂θj∂logp(x;θ)]
在费舍信息度量的 Riemannian 结构下,最速下降方向不再是欧几里得梯度,而是自然梯度:
∇~L(θ)=I(θ)−1∇L(θ)
其中 I(θ) 是费舍信息矩阵。自然梯度下降在参数化自适应(reparametrization)下是等变的,这意味着算法的行为不因参数变换而改变。在深度学习中:
- TRPO(Trust Region Policy Optimization)和自然梯度策略优化使用自然梯度确保每次更新的步长在KL散度意义上可控。
- 在高维参数空间中,计算费舍信息矩阵的逆代价极高(O(p3)),因此实际使用对角近似或Kronecker因子分解(如K-FAC)。
指数族分布(如高斯分布、伯努利分布、泊松分布)在信息几何中具有特殊的对偶平坦性——它们有两个天然的坐标系统:自然参数和期望参数,它们由勒让德变换(Legendre Transform / 双极性共轭函数变换)联系起来。这一性质使得在指数族上的各种投影可以简洁地用KL散度来描述,与平均场变分推断(MFVI)中的不变性紧密关联。
以下是一些常用的信息论计算实现:
import numpy as np
from collections import Counter
from scipy.stats import entropy as scipy_entropy
def shannon_entropy(data, base=2):
"""计算离散数据的香农熵"""
counts = Counter(data)
probs = np.array(list(counts.values())) / len(data)
return scipy_entropy(probs, base=base)
def mutual_information(x, y, base=2):
"""计算两个离散变量的互信息"""
# 联合分布
joint = Counter(zip(x, y))
n = len(x)
# 边缘分布
px = Counter(x)
py = Counter(y)
mi = 0.0
for (xi, yj), cxy in joint.items():
pxy = cxy / n
px_ = px[xi] / n
py_ = py[yj] / n
mi += pxy * np.log2(pxy / (px_ * py_))
return mi / np.log2(base) # 转换为指定底数
def kl_divergence(p, q, base=2):
"""计算KL散度 KL(P||Q)"""
return np.sum(p * np.log(p / q)) / np.log(base)
def cross_entropy(p, q, base=2):
"""计算交叉熵 H(P, Q)"""
return -np.sum(p * np.log(q)) / np.log(base)
# 示例使用
data = [1, 1, 1, 1, 0, 0, 1, 0, 1, 0]
print(f"熵: {shannon_entropy(data):.4f} bits")
# 输出: 熵: 0.9710 bits
实际数据中,互信息的计算需要密度估计。常用的方法包括:
- 离散近似:将连续变量离散化(直方图法)。简单但受 bin size 影响大。
- 核密度估计:使用高斯核等平滑方法估计联合密度。
- k近邻方法:Kraskov-Stögbauer-Grassberger(KSG)估计器是最流行的连续互信息估计方法,它通过考察 k 近邻距离分布来估计互信息,对边缘分布的变化具有适应性:
from sklearn.feature_selection import mutual_info_regression
# 连续变量的互信息估计(使用KSG估计器)
mi_scores = mutual_info_regression(X, y, n_neighbors=3, random_state=42)
- 变分下界:通过神经网络估计互信息的下界(如InfoNCE损失在对比学习中的应用,参见下一节)。
现代自监督学习(如SimCLR、MoCo、CLIP)的核心思想是通过最大化互信息来学习表征:
LInfoNCE=−E[log∑k=1Nexp(sim(zi,zk))exp(sim(zi,zj))]
InfoNCE损失是互信息的下界估计器(Oord et al., 2018)。它通过在大量的负样本中识别正样本来隐式学习表征,与互信息的概率分布对齐视角高度关联。CLIP模型在跨模态(文本-图像)场景中的成功,本质上是最大化文本-图像对之间的互信息,学会了"文本描述了什么图像内容"。
麦克斯韦妖(Maxwell's Demon)思想实验(1867)提出了一个深刻的谜题:如果存在一个能观测分子速度的"小妖",它可以违反热力学第二定律,实现永动机。
信息论对这一问题的解答(由Szilárd, Landauer, Bennett等工作逐步完善):小妖的测量和记忆操作的熵增抵消了系统熵减。兰道尔原理(Landauer's Principle)进一步指出:擦除1比特信息至少需要耗散 kBTln2 的热量。这意味着信息不是免费的——它与物理熵之间存在深刻的等价关系。
实验验证:2020年前后,实验物理学家使用激光阱中的胶体球和反馈控制,直接测量了Landauer擦除过程的热量耗散,验证了这一原理。
热力学熵(Boltzmann熵)S=kBlnW 和香农信息熵 H=−∑pilogpi 在形式上完全一致:
- 玻尔兹曼常数 kB 将信息单位(纳特,nat)转换为物理单位(J/K)。
- 当微状态等概率时,S=kBlnW,对应满熵。
- 信息和物理系统的实际能量不可分离——Landauer的工作表明,信息处理是物理过程,不可逆操作必然牵涉能量耗散。
贝肯斯坦(1973)将信息论引入黑洞热力学,提出黑洞的熵正比于其事件视界的表面积:
SBH=4GℏkBc3⋅A
这意味着黑洞内部的状态数极其庞大(eSBH),信息一旦落入黑洞,似乎从外部观察中丢失。这引发了著名的黑洞信息悖论:量子力学要求信息守恒,但霍金辐射似乎表明信息不可逆丢失。
2020年以来,通过使用量子信息论的工具——Page曲线、虫洞(wormhole)计算、量子极值面(Quantum Extremal Surface)技术——物理学家开始理解信息为何可以从黑洞中恢复。这些进展表明,信息论可能是连接量子力学和广义相对论的关键桥梁之一。
互信息与因果:Transfer Entropy(转移熵,Schreiber, 2000)是互信息在时序因果推断中的推广:
TY→X=I(Xt+1;Yt∣Xt)
它度量 Y 的过去是否提供关于 X 的未来(在已有 X 的过去信息的基础之上)的额外预测信息。转移熵在神经科学(分析神经元之间的有效连接)、经济学(检测变量间的因果方向)中被大量使用。
信息论从通信工程的一个分支出发,成长为跨越数学、物理学、计算机科学、统计学、神经科学等多个领域的统一理论。它的核心洞见——信息可以被量化、压缩有极限、通信有边界——深刻改变了我们看待世界的方式,也为我们理解智能的本质提供了独特的视角。
从香农的熵到Kolmogorov复杂度,从信道容量到信息瓶颈,从量子信息到黑洞熵——信息论展示了一个基本思想在不同尺度上的统一性:信息不是抽象的概念,而是一种可以被精确度量、受物理定律约束的基本量。
- Claude Shannon(克劳德·香农,1916-2001):信息论之父,提出了熵、信道容量、信源编码定理和信道编码定理。
- Andrey Kolmogorov(安德雷·科尔莫戈罗夫,1903-1987):算法信息论(Kolmogorov复杂度)的奠基人之一,对概率论公理化做出决定性贡献。
- Edwin T. Jaynes(埃德温·杰恩斯,1922-1998):发展了最大熵原理,将信息论与统计力学紧密结合,著有《概率论沉思录》。
- Thomas Cover(托马斯·科弗,1938-2012):信息论领域的权威,与 Joy Thomas 合著经典教材《信息论基础》(Elements of Information Theory)。
- David MacKay(大卫·麦凯,1967-2016):以信息论视角讲解贝叶斯推断和机器学习,著有《信息论、推理与学习算法》(Information Theory, Inference, and Learning Algorithms),全书免费在线获取。
- 《信息论基础》(Elements of Information Theory):Thomas Cover & Joy Thomas。信息论的百科全书式教材,理论推导严谨,适合系统学习(约800页)。
- 《信息论、推理与学习算法》:David MacKay。独特视角将信息论与机器学习融为一体,适合有编程背景的读者,原书免费。
- 《信息简史》:James Gleick。科普作品,从鼓声到互联网的信息发展历程,追溯Shannon之前的通信历史(Bacon、Morse、Nyquist等),适合所有读者入门信息论思想史。
- 《The Information: A History, a Theory, a Flood》:James Gleick,同书的英文原版。
- Shannon, C.E. (1948). "A Mathematical Theory of Communication":原著论文,Bell System Technical Journal。原文可免费下载,虽技术性强,但阅读该论文的引言部分可以感受香农的洞见和行文风范。
- Tishby, N. & Zaslavsky, N. (2015). "Deep learning and the information bottleneck principle":将信息论引入深度学习的理解。
- MacKay, D.J.C. (2003). "Information Theory, Inference, and Learning Algorithms":在线免费获取。