跳转至

信息论

熵 Entropy

衡量的是一个概率分布中的不确定性。如果一个事件发生的可能性非常分散,熵就高;如果几乎确定会发生某事,熵就低。

对于离散随机变量 \(X\),其概率分布为 \(P(X)\),熵 \(H(P)\) 定义为:

\[ H(P) = E_{x \sim P}[-\log P(x)] = -\sum_{i=1}^{n} P(x_i) \log P(x_i) \]

如果对数底数为 \(2\),单位是 比特 (bit) ;如果底数为 \(e\),单位是 纳特 (nat)\(1 \text{ nat} = \frac{1}{\ln 2} \approx 1.44 \text{ bits}\)

信息量

信息量 (也叫自信息)衡量的是观察到某个特定事件 \(x\) 时所感到的“意外”程度。

\[ I(x) = -\log P(x) \]

如果 \(P(x) = 1\)(必然事件),则 \(I(x) = 0\)。你早就知道了,所以没有新信息。如果 \(P(x) \to 0\)(极罕见事件),则 \(I(x) \to \infty\)。一旦发生,你会感到极其“惊异”,获取的信息量巨大。

熵其实就是信息量的 数学期望

交叉熵

在机器学习中,我们通常不知道真实的概率分布 \(P\),而是通过模型得到一个预测分布 \(Q\)交叉熵衡量的是:当我们用错误的分布 \(Q\) 来解码来自真实分布 \(P\) 的数据时,平均需要的“惊异”程度。

\[ H(P, Q) = E_{x \sim P}[-\log Q(x)] = -\sum_{i=1}^{n} P(x_i) \log Q(x_i) \]

当且仅当 \(Q = P\) 时,交叉熵取得最小值,此时 \(H(P, Q) = H(P)\)

在分类任务中:

  • \(P\) 是真实标签(通常是 One-hot 向量,例如 \([0, 1, 0]\))。
  • \(Q\) 是模型 Softmax 输出的预测概率(例如 \([0.1, 0.8, 0.1]\))。
  • 最小化交叉熵,本质上就是让模型的预测分布 \(Q\) 尽可能靠近真实分布 \(P\)

KL散度(相对熵)

KL 散度衡量两个分布之间的距离:

\[ D_{KL}(P \| Q) = H(P, Q) - H(P) \]

由于真实分布 \(P\) 的熵 \(H(P)\) 是固定的,因此:

最小化交叉熵 \(H(P, Q)\) \(\iff\) 最小化 KL 散度 \(D_{KL}(P \| Q)\)****


条件熵 (Conditional Entropy)

条件熵 \(H(X|Y)\) 衡量在已知随机变量 \(Y\) 的条件下,\(X\) 的剩余不确定性:

\[ H(X|Y) = -\sum_{y} P(y) \sum_{x} P(x|y) \log P(x|y) = -\sum_{x,y} P(x,y) \log P(x|y) \]

性质

  • \(H(X|Y) \geq 0\),等号成立当且仅当 \(X\)\(Y\) 的确定性函数
  • \(H(X|Y) \leq H(X)\),已知额外信息不会增加不确定性("信息不会有害")
  • \(X\)\(Y\) 独立时,\(H(X|Y) = H(X)\)

联合熵 (Joint Entropy)

联合熵 \(H(X, Y)\) 衡量两个随机变量联合分布的总不确定性:

\[ H(X, Y) = -\sum_{x,y} P(x, y) \log P(x, y) \]

链式法则

\[ H(X, Y) = H(X) + H(Y|X) = H(Y) + H(X|Y) \]

更一般地,对于 \(n\) 个随机变量:

\[ H(X_1, X_2, \ldots, X_n) = \sum_{i=1}^{n} H(X_i | X_1, \ldots, X_{i-1}) \]

互信息 (Mutual Information)

互信息 \(I(X; Y)\) 衡量两个随机变量之间共享的信息量——即知道其中一个后,另一个不确定性减少了多少。

\[ I(X; Y) = H(X) - H(X|Y) = H(Y) - H(Y|X) \]

等价定义:

\[ I(X; Y) = \sum_{x,y} P(x,y) \log \frac{P(x,y)}{P(x)P(y)} = D_{KL}(P(X,Y) \| P(X)P(Y)) \]

性质

  • \(I(X; Y) \geq 0\),等号成立当且仅当 \(X\)\(Y\) 独立
  • \(I(X; Y) = I(Y; X)\)(对称性)
  • \(I(X; X) = H(X)\)(自信息等于熵)

与各种熵的关系

互信息可以通过多种方式表达:

\[ I(X; Y) = H(X) + H(Y) - H(X, Y) \]

这个公式直观地揭示了:联合熵 = 各自熵之和 - 重叠部分(互信息)


各种熵之间的关系(Venn 图)

下面用集合关系直观展示各种信息量之间的关系:

+---------------------------+
|         H(X, Y)           |
|                           |
|   +-------+   +-------+  |
|   |       |   |       |  |
|   | H(X|Y)|I(X;Y)|H(Y|X)|  |
|   |       |   |       |  |
|   +-------+   +-------+  |
|   |<-- H(X) -->|         |
|            |<-- H(Y) -->||
+---------------------------+

核心等式总结

关系 公式
联合熵分解 \(H(X,Y) = H(X) + H(Y\|X) = H(Y) + H(X\|Y)\)
互信息定义 \(I(X;Y) = H(X) - H(X\|Y) = H(Y) - H(Y\|X)\)
Venn 图等式 \(H(X,Y) = H(X) + H(Y) - I(X;Y)\)
上界 \(I(X;Y) \leq \min\{H(X), H(Y)\}\)

信息增益 (Information Gain)

信息增益是互信息在决策树学习中的直接应用。在选择特征进行分裂时,信息增益衡量某个特征 \(A\) 对数据集 \(D\) 分类不确定性的减少量:

\[ \text{IG}(D, A) = H(D) - H(D|A) = H(D) - \sum_{v \in \text{Values}(A)} \frac{|D_v|}{|D|} H(D_v) \]

其中 \(D_v\) 是特征 \(A\) 取值为 \(v\) 时的子集。

在决策树中的应用

  • ID3 算法:直接使用信息增益选择分裂特征。缺点是偏向取值较多的特征。
  • C4.5 算法:使用信息增益比(Information Gain Ratio)修正偏差:
\[ \text{IGR}(D, A) = \frac{\text{IG}(D, A)}{H_A(D)}, \quad H_A(D) = -\sum_{v} \frac{|D_v|}{|D|} \log \frac{|D_v|}{|D|} \]

其中 \(H_A(D)\) 称为特征 \(A\) 的固有值(intrinsic value)。


信息瓶颈 (Information Bottleneck)

核心思想

信息瓶颈理论(Tishby et al., 1999)研究的是:如何找到输入 \(X\) 的一个压缩表示 \(T\),使得 \(T\) 在尽可能压缩 \(X\) 的同时,尽可能多地保留关于目标 \(Y\) 的信息。

这是一个 压缩与预测之间的 trade-off

IB-Lagrangian

信息瓶颈的优化目标写为 Lagrangian 形式:

\[ \mathcal{L}_{\text{IB}} = I(X; T) - \beta \cdot I(T; Y) \]

其中:

  • \(I(X; T)\):表示 \(T\)\(X\) 中保留了多少信息(希望最小化——压缩)
  • \(I(T; Y)\):表示 \(T\) 关于目标 \(Y\) 包含了多少信息(希望最大化——预测)
  • \(\beta > 0\):Lagrange 乘子,控制压缩与预测之间的平衡

\(\beta \to 0\) 时极度压缩(\(T\) 几乎不含信息),\(\beta \to \infty\) 时几乎不压缩(\(T \approx X\))。

与深度学习的联系

Shwartz-Ziv & Tishby (2017) 提出深度神经网络的训练过程可以用信息瓶颈理论来理解:

  1. 拟合阶段(Fitting phase):\(I(T; Y)\) 快速增加,网络学习有用特征
  2. 压缩阶段(Compression phase):\(I(X; T)\) 逐渐减少,网络丢弃与 \(Y\) 无关的噪声

虽然这一观点仍有争议(特别是关于压缩阶段是否普遍存在),但它为理解深度学习的泛化提供了信息论视角。


最大熵原理 (Maximum Entropy Principle)

最大熵原理(Jaynes, 1957)指出:在满足已知约束的所有概率分布中,应选择熵最大的那个分布。

直觉

熵最大的分布是最"保守"的选择——它不引入任何超出已知约束的额外假设,是对无知的最诚实表达。

数学形式

给定约束 \(E[f_k(X)] = \alpha_k\)\(k = 1, \ldots, K\)),最大熵分布通过求解以下优化问题得到:

\[ \max_{P} \; H(P) = -\sum_{x} P(x) \log P(x) \]
\[ \text{s.t.} \quad \sum_{x} P(x) f_k(x) = \alpha_k, \quad \sum_{x} P(x) = 1 \]

利用 Lagrange 乘子法,解具有指数族分布的形式:

\[ P^*(x) = \frac{1}{Z} \exp\!\Big(-\sum_{k=1}^{K} \lambda_k f_k(x)\Big) \]

其中 \(Z\) 为归一化常数(配分函数),\(\lambda_k\) 为 Lagrange 乘子。

常见实例

约束条件 最大熵分布
无约束(有限离散) 均匀分布
给定均值和方差 高斯分布
给定均值(非负) 指数分布

在机器学习中的应用

  • 最大熵分类器(MaxEnt)本质是 softmax 回归 / 逻辑回归
  • 条件随机场(CRF) 可以看作条件最大熵模型
  • 语言模型:最大熵语言模型通过 n-gram 特征约束来建模词分布

评论 #