信息论
熵 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)\)****