机器学习数学基础 120 章

信息量与熵

层级:A|建议先修:05-07、05-09、05-15

机器学习经常需要衡量“一个结果有多意外”以及“一个随机变量平均有多不确定”。信息论分别用自信息量回答这两个问题。

1. 从“意外程度”到信息量

设事件 AA 的概率为 P(A)P(A)。一个合理的信息量函数应满足:

  1. 概率越小,事件发生时带来的信息越多;
  2. 概率为 1 的必然事件不提供新信息;
  3. 两个独立事件同时发生时,信息量应当相加。

满足这些要求的经典定义是

I(A)=logP(A)=log1P(A).I(A)=-\log P(A)=\log\frac{1}{P(A)}.

因为 0<P(A)10<P(A)\le 1,所以 I(A)0I(A)\ge 0。若 P(A)=1P(A)=1,则 I(A)=0I(A)=0;概率越接近 0,信息量越大。

2. 对数底数决定单位

  • 以 2 为底:单位是 bit;
  • ee 为底:单位是 nat;
  • 以 10 为底:单位是 hartley。

机器学习公式通常使用自然对数,因此默认单位常是 nat。更换底数只会把结果乘以常数,不改变模型优劣的排序。

例如,公平硬币某一面出现的概率为 1/21/2,它的信息量为

log2(1/2)=1 bit.-\log_2(1/2)=1\text{ bit}.

3. 随机变量的熵

设离散随机变量 XX 可能取 x1,,xKx_1,\ldots,x_K,概率为 pi=P(X=xi)p_i=P(X=x_i)。熵是自信息量的期望:

H(X)=E[logp(X)]=i=1Kpilogpi.H(X)=\mathbb E[-\log p(X)] =-\sum_{i=1}^K p_i\log p_i.

约定 0log0=00\log 0=0,这是由极限 limp0+plogp=0\lim_{p\to0^+}p\log p=0 得到的。

熵衡量的是在观察 XX 之前,对其取值的平均不确定性,而不是某次具体观察的信息量。

4. 二元熵

XBernoulli(p)X\sim\operatorname{Bernoulli}(p),则

H(X)=plogp(1p)log(1p).H(X)=-p\log p-(1-p)\log(1-p).
  • p=0p=011 时,结果确定,熵为 0;
  • p=1/2p=1/2 时最不确定,熵最大;
  • pp1p1-p 的熵相同。

以 2 为底时,公平硬币的熵是 1 bit。

5. 有限离散分布的最大熵

XX 只有 KK 个可能取值,则

0H(X)logK.0\le H(X)\le \log K.

下界在某个取值概率为 1 时达到;上界在均匀分布 pi=1/Kp_i=1/K 时达到。直觉是:越均匀,越难提前猜中,平均不确定性越大。

6. 熵与编码长度

在满足前缀编码等条件时,熵给出了无损编码平均长度的理论下界。高概率符号可用短码,低概率符号用长码;理想码长近似为

(x)log2p(x).\ell(x)\approx-\log_2 p(x).

这解释了为什么负对数概率既表示“惊讶程度”,又可以解释为“描述该结果所需的比特数”。

7. 连续随机变量的微分熵

对密度为 f(x)f(x) 的连续随机变量,定义

h(X)=f(x)logf(x)dx.h(X)=-\int f(x)\log f(x)\,dx.

它称为微分熵。微分熵与离散熵并不完全相同:它可能为负,也会随变量尺度变化。例如把 XX 放大为 aXaX,有

h(aX)=h(X)+loga.h(aX)=h(X)+\log|a|.

因此不要把微分熵单独理解成绝对的“信息比特数”。KL 散度、互信息等由密度比构造的量更具有坐标不变性。

8. 在机器学习中的位置

  • 决策树用信息增益选择划分属性;
  • 分类模型用交叉熵衡量预测分布与真实分布的差异;
  • 概率模型用负对数似然累计样本的“意外程度”;
  • 表示学习用互信息描述变量之间共享的信息;
  • 最大熵模型在约束之外尽量少作假设。

9. 易错点

  1. 熵不是准确率:熵衡量整个概率分布的不确定性。
  2. 单个事件只有自信息量,随机变量的平均自信息量才是熵。
  3. P(A)=0P(A)=0logP(A)-\log P(A) 发散;实际计算要避免直接对 0 取对数。
  4. 连续情形的密度可以大于 1,因此微分熵可以小于 0。

常见问答

Q1:为什么一定要使用对数?
独立事件的联合概率相乘,而我们希望信息量相加;对数正好把乘法变成加法。

Q2:熵越大是不是数据越“乱”?
在给定取值集合上,它表示概率分布越均匀、越难预测。“乱”只是直觉说法,不等于数据没有结构。

Q3:训练时使用自然对数还是以 2 为底?
通常使用自然对数,导数更简洁。底数只引入正常数,不改变最优参数。

Q4:标签完全平衡就一定难分类吗?
不一定。标签的边缘熵高,只表示不知道特征时难猜;若特征能充分解释标签,条件熵仍可能很低。

练习

  1. 计算概率分别为 1/2,1/4,1/81/2,1/4,1/8 的事件的信息量,单位取 bit。
  2. 计算分布 (1/2,1/4,1/4)(1/2,1/4,1/4) 的熵。
  3. 比较 Bernoulli(0.5)(0.5) 与 Bernoulli(0.9)(0.9) 的熵大小并解释。
  4. 为什么把以 2 为底的熵改成自然对数后,最大熵分布不会改变?

答案与提示

  1. 分别是 1、2、3 bit。
  2. H=(12log212+214log214)=1.5H=-(\tfrac12\log_2\tfrac12+2\cdot\tfrac14\log_2\tfrac14)=1.5 bit。
  3. 前者更大,因为两种结果更加均衡、更难预测。
  4. 换底只把所有熵乘以同一个正常数,不改变大小关系和极值点。