信息论——度量信息的数学
兔狲教授的提示:信息是物理世界之外的另一个基本量。信息论不仅告诉我们如何高效地存储和传输信息,更重要的是,它提供了度量信息、不确定性和知识的数学框架。从数据压缩到通信编码,从机器学习到量子计算,信息论是现代数字世界的基石。
词条1:信息熵——不确定性的度量
官方解释
信息熵:离散随机变量 X 的熵 H(X) = -\sum_{x\in\mathcal{X}} p(x) \log p(x)。
性质:
- 非负性:H(X) \ge 0
- 最大值:当分布均匀时熵最大
- 可加性:独立随机变量的联合熵等于熵的和
直观理解:熵度量了随机变量的不确定性或'惊喜程度'。
单位:
- 以2为底:比特(bit)
- 以e为底:纳特(nat)
- 以10为底:哈特利(hartley)
兔狲老师解释
熵是'意外的期望值'。
小小猪举了个例子:天气预报:
- 确定性天气(如沙漠总是晴天):熵 = 0,没有不确定性
- 等可能天气(晴雨各50%):熵 = 1 比特,最大不确定性
- 偏态分布(晴90%,雨10%):熵 \approx 0.47 比特,有一定不确定性
信息量:事件 x 的信息量 I(x) = -\log p(x)
- 罕见事件:信息量大(惊喜!)
- 常见事件:信息量小(预料之中)
- 熵:信息量的期望值
熵的极值:
- 最小熵 0:确定分布(某个结果概率为1)
- 最大熵 \log|\mathcal{X}|:均匀分布(所有结果等可能)
- 最大熵原理:在给定约束下,选择熵最大的分布
思考题1:动手题
问题:计算以下分布的熵:
- 伯努利分布 \text{Bernoulli}(p):p = 0.5, 0.1, 0.9
- 均匀分布:掷骰子(6面均匀)
- 偏态分布:p(1)=0.5, p(2)=0.3, p(3)=0.2
问题:证明:H(X) \le \log|\mathcal{X}|,等号成立当且仅当 X 均匀分布。
思考题2:动脑题
问题:熵为什么用对数定义?线性函数不行吗?
思考方向:
- 独立事件的信息可加性
- 编码长度的联系
- 对数的数学性质
词条2:联合熵、条件熵与互信息
官方解释
联合熵:H(X,Y) = -\sum_{x,y} p(x,y) \log p(x,y)
条件熵:H(Y|X) = \sum_x p(x) H(Y|X=x) = -\sum_{x,y} p(x,y) \log p(y|x)
链式法则:H(X,Y) = H(X) + H(Y|X)
互信息:I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X) = H(X)+H(Y)-H(X,Y)
性质:
- I(X;Y) \ge 0
- I(X;Y) = 0 当且仅当 X, Y 独立
- 对称性:I(X;Y) = I(Y;X)
兔狲老师解释
这些量描述'变量之间的关系'。
小海豹举了个例子:天气和穿衣:
- X:天气(晴/雨)
- Y:穿衣(短袖/长袖)
- H(X):天气的不确定性
- H(Y):穿衣选择的不确定性
- H(Y|X):知道天气后,穿衣的不确定性
- I(X;Y):天气和穿衣的相关性
如果穿衣完全由天气决定:H(Y|X)=0,I(X;Y)=H(Y)
如果穿衣与天气无关:H(Y|X)=H(Y),I(X;Y)=0
思考题1:动手题
问题:设 X, Y 的联合分布:
p(0,0)=0.4,p(0,1)=0.1,p(1,0)=0.2,p(1,1)=0.3
计算:H(X),H(Y),H(X,Y),H(X|Y),H(Y|X),I(X;Y)
问题:证明:
- H(X,Y) \le H(X) + H(Y)
- H(X|Y) \le H(X)
- I(X;Y) = \sum_{x,y} p(x,y) \log\frac{p(x,y)}{p(x)p(y)}
思考题2:动脑题
问题:互信息与相关系数有什么区别?各度量什么?
思考方向:
- 线性关系 vs 一般依赖关系
- 对称性 vs 非对称性
- 在特征选择中的应用
词条3:KL散度与交叉熵
官方解释
KL散度(相对熵):D_{KL}(P\|Q) = \sum_x p(x) \log\frac{p(x)}{q(x)}
性质:
- 非负性:D_{KL}(P\|Q) \ge 0
- 零散度:D_{KL}(P\|Q)=0 当且仅当 P=Q
- 非对称性:D_{KL}(P\|Q) \ne D_{KL}(Q\|P)
交叉熵:H(P,Q) = -\sum_x p(x) \log q(x) = H(P) + D_{KL}(P\|Q)
兔狲老师解释
KL散度是"分布间的距离"(但不是度量)。
兔狲教授举例说:真实分布 P vs 模型分布 Q:
- P:真实数据分布
- Q:模型预测分布
- D_{KL}(P\|Q):用 Q 近似 P 的代价
- 最小化KL散度:让模型分布接近真实分布
机器学习中的交叉熵损失:
分类问题:真实标签 y,预测概率 \hat{y}
损失 = -\sum_i y_i \log \hat{y}_i
这就是交叉熵!最小化交叉熵 = 最小化KL散度(因为 H(P) 固定)
KL散度的不对称性:
- 正向KL:D_{KL}(P\|Q),强调覆盖 P 的所有模式
- 反向KL:D_{KL}(Q\|P),避免 Q 在 P 为零处有概率
- 在变分推断中:用反向KL得到更紧凑的近似
思考题1:动手题
问题:计算KL散度:
- P=\text{Bernoulli}(0.5),Q=\text{Bernoulli}(0.7)
- P=\text{Bernoulli}(0.1),Q=\text{Bernoulli}(0.9)
- P=\text{Bernoulli}(0.5),Q=\text{Bernoulli}(0.5)
问题:证明:D_{KL}(P\|Q) \ge 0(用Jensen不等式)。
思考题2:动脑题
问题:为什么KL散度不对称?这在实际应用中有什么影响?
思考方向:
- 从编码角度理解
- 在变分推断中的选择
- 在生成模型(如VAE)中的应用
词条4:香农编码定理
官方解释
编码:将源符号映射到码字(二进制串)。
前缀码:没有任何码字是其他码字的前缀。
Kraft不等式:前缀码存在的充要条件是 \sum_i 2^{-l_i} \le 1,其中 l_i 是码字长度。
最优编码:码长 l(x) \approx -\log p(x)(按概率倒数的对数分配码长)。
香农第一定理(无噪声编码定理):
对离散无记忆信源,存在编码使平均码长 L 满足 H(X) \le L < H(X)+1。
兔狲老师解释
编码是'用比特表示信息'。
小小猪举了个例子:压缩英文文本:
- 字母'e'常见:用短码(如'0')
- 字母'z'罕见:用长码(如'1110')
- 霍夫曼编码:最优前缀码
- 平均码长接近熵
熵的意义:
- H(X):无损压缩的极限
- 数据压缩不能低于熵(无损时)
- 这就是为什么随机数据难压缩
实际编码:
- 霍夫曼编码:贪心算法构造最优前缀码
- 算术编码:更接近熵限,处理整个消息
- LZ系列:基于字典的通用编码
- 实际压缩工具:gzip, PNG, MP3等
思考题1:动手题
问题:对符号集 \{A,B,C,D\},概率 p(A)=0.5,p(B)=0.25,p(C)=0.125,p(D)=0.125:
- 计算熵 H(X)
- 构造霍夫曼编码
- 计算平均码长,验证香农定理
问题:证明Kraft不等式:对前缀码,\sum_i 2^{-l_i} \le 1。
思考题2:动脑题
问题:香农定理的哲学意义是什么?"信息"可以被精确度量吗?
思考方向:
- 信息作为基本量
- 压缩极限与物理极限
- 算法信息论(柯尔莫哥洛夫复杂度)
词条5:信道容量与香农第二定理
官方解释
离散无记忆信道:输入 X,输出 Y,转移概率 p(y|x)。
信道容量:C = \max_{p(x)} I(X;Y),最大互信息。
香农第二定理(有噪声信道编码定理):
只要传输速率 R < C,就存在编码使错误概率任意小;如果 R > C,错误概率有下界。
信道编码:添加冗余纠正错误。
典型序列:概率接近 2^{-nH(X)} 的序列,占据大部分概率质量。
兔狲老师解释
信道容量是'可靠通信的极限'。
小海豹举了个例子:二进制对称信道(BSC):
- 输入0/1,以概率 p 翻转为1/0
- 容量 C = 1 - H(p)(其中 H(p) 是二元熵)
- 当 p=0(无噪声):C=1(每比特可靠传输1比特)
- 当 p=0.5(完全随机):C=0(无法可靠传输)
- 当 p=0.1:C \approx 0.53
编码奇迹:
- 添加冗余(如重复码、汉明码、LDPC码)
- 在噪声中可靠传输
- 接近香农极限(Turbo码、Polar码)
实际系统:
- WiFi:使用卷积码、LDPC码
- 5G:使用Polar码(理论最优)
- 存储系统:RAID、ECC内存
- 深空通信:需要极强纠错
思考题1:动手题
问题:计算以下信道容量:
- 无噪声信道:p(y|x)=1 if y=x else 0
- 二进制擦除信道:以概率 \varepsilon 擦除(输出?),否则正确
- Z信道:0\to 0 概率1,1\to 0 概率 p,1\to 1 概率 1-p
问题:证明:C \le \min\{\log|\mathcal{X}|, \log|\mathcal{Y}|\}。
思考题2:动脑题
问题:香农第二定理为什么令人惊讶?它解决了什么问题?
思考方向:
- 噪声下的可靠通信
- 冗余与效率的权衡
- 编码理论的诞生
词条6:信息论在AI中的应用
官方解释
最小描述长度(MDL):选择使"模型复杂度+数据拟合误差"最小的模型。
信息瓶颈:在压缩输入和预测输出之间权衡。
变分推断:用KL散度近似后验分布。
互信息最大化:在表示学习中。
信息论聚类:如信息瓶颈聚类。
兔狲老师解释
信息论是AI的'指导原则'。
兔狲教授举例说:决策树学习:
- 选择分裂特征:最大化信息增益(互信息)
- 信息增益 = H(Y) - H(Y|X)
- 这就是ID3、C4.5算法的核心
表示学习:
- 目标:学习有用的数据表示
- 信息瓶颈:\min\ I(X;Z) - \beta I(Z;Y)
- 压缩输入 X 到表示 Z,同时保留预测 Y 的信息
- \beta 控制压缩程度
生成模型:
- VAE:最小化重构误差 + KL散度(正则化)
- GAN:判别器和生成器的博弈
- 扩散模型:逐步去噪的信息论过程
信息论与深度学习:
- 批量归一化:减少内部协变量偏移
- Dropout:防止特征共适应
- 注意力机制:信息瓶颈视角
- 对比学习:互信息最大化
思考题1:动手题
问题:实现决策树:
- 计算每个特征的信息增益
- 选择最大增益的特征分裂
- 递归构建树
- 用信息增益比改进(C4.5)
问题:用信息瓶颈分析简单数据集:
- 计算 I(X;Y)
- 学习表示 Z
- 绘制 I(X;Z) vs I(Z;Y) 曲线
- 分析最优 \beta
思考题2:动脑题
问题:信息论如何改变我们对机器学习的理解?从'最小化误差'到'信息处理'的视角转变。
思考方向:
- 学习作为压缩
- 泛化作为最小描述长度
- 表示作为信息瓶颈
- 深度学习的信息论解释
总结:信息的世界观
兔狲教授总结道:信息论不仅是一套数学工具,更是一种世界观:
- 信息是基本的:与物质、能量并列的基本量
- 不确定性可度量:熵量化了无知的程度
- 通信有极限:香农定理划定了可能性的边界
- 学习即压缩:从数据中提取规律就是压缩信息
在AI中,信息论提供了:
- 设计原则:如最大信息增益、最小描述长度
- 分析工具:如互信息分析特征重要性
- 理论框架:理解学习的本质和极限
- 实用算法:从决策树到变分自编码器
掌握信息思维,你就掌握了:
- 抽象能力:看到数据背后的信息结构
- 效率意识:追求最优表示和传输
- 极限意识:知道什么可能,什么不可能
- 统一视角:连接通信、计算和认知
小小猪的体会:原来信息可以像物理量一样精确度量!
小海豹的反思:信息论让我理解了学习的本质是从数据中提取信息。
下一章预告:我们将学习线性模型,这是机器学习的基础,也是理解复杂模型的起点。