信息量与熵
层级:A|建议先修:05-07、05-09、05-15
机器学习经常需要衡量“一个结果有多意外”以及“一个随机变量平均有多不确定”。信息论分别用自信息量和熵回答这两个问题。
1. 从“意外程度”到信息量
设事件 的概率为 。一个合理的信息量函数应满足:
- 概率越小,事件发生时带来的信息越多;
- 概率为 1 的必然事件不提供新信息;
- 两个独立事件同时发生时,信息量应当相加。
满足这些要求的经典定义是
因为 ,所以 。若 ,则 ;概率越接近 0,信息量越大。
2. 对数底数决定单位
- 以 2 为底:单位是 bit;
- 以 为底:单位是 nat;
- 以 10 为底:单位是 hartley。
机器学习公式通常使用自然对数,因此默认单位常是 nat。更换底数只会把结果乘以常数,不改变模型优劣的排序。
例如,公平硬币某一面出现的概率为 ,它的信息量为
3. 随机变量的熵
设离散随机变量 可能取 ,概率为 。熵是自信息量的期望:
约定 ,这是由极限 得到的。
熵衡量的是在观察 之前,对其取值的平均不确定性,而不是某次具体观察的信息量。
4. 二元熵
若 ,则
- 或 时,结果确定,熵为 0;
- 时最不确定,熵最大;
- 与 的熵相同。
以 2 为底时,公平硬币的熵是 1 bit。
5. 有限离散分布的最大熵
若 只有 个可能取值,则
下界在某个取值概率为 1 时达到;上界在均匀分布 时达到。直觉是:越均匀,越难提前猜中,平均不确定性越大。
6. 熵与编码长度
在满足前缀编码等条件时,熵给出了无损编码平均长度的理论下界。高概率符号可用短码,低概率符号用长码;理想码长近似为
这解释了为什么负对数概率既表示“惊讶程度”,又可以解释为“描述该结果所需的比特数”。
7. 连续随机变量的微分熵
对密度为 的连续随机变量,定义
它称为微分熵。微分熵与离散熵并不完全相同:它可能为负,也会随变量尺度变化。例如把 放大为 ,有
因此不要把微分熵单独理解成绝对的“信息比特数”。KL 散度、互信息等由密度比构造的量更具有坐标不变性。
8. 在机器学习中的位置
- 决策树用信息增益选择划分属性;
- 分类模型用交叉熵衡量预测分布与真实分布的差异;
- 概率模型用负对数似然累计样本的“意外程度”;
- 表示学习用互信息描述变量之间共享的信息;
- 最大熵模型在约束之外尽量少作假设。
9. 易错点
- 熵不是准确率:熵衡量整个概率分布的不确定性。
- 单个事件只有自信息量,随机变量的平均自信息量才是熵。
- 时 发散;实际计算要避免直接对 0 取对数。
- 连续情形的密度可以大于 1,因此微分熵可以小于 0。
常见问答
Q1:为什么一定要使用对数?
独立事件的联合概率相乘,而我们希望信息量相加;对数正好把乘法变成加法。
Q2:熵越大是不是数据越“乱”?
在给定取值集合上,它表示概率分布越均匀、越难预测。“乱”只是直觉说法,不等于数据没有结构。
Q3:训练时使用自然对数还是以 2 为底?
通常使用自然对数,导数更简洁。底数只引入正常数,不改变最优参数。
Q4:标签完全平衡就一定难分类吗?
不一定。标签的边缘熵高,只表示不知道特征时难猜;若特征能充分解释标签,条件熵仍可能很低。
练习
- 计算概率分别为 的事件的信息量,单位取 bit。
- 计算分布 的熵。
- 比较 Bernoulli 与 Bernoulli 的熵大小并解释。
- 为什么把以 2 为底的熵改成自然对数后,最大熵分布不会改变?
答案与提示
- 分别是 1、2、3 bit。
- bit。
- 前者更大,因为两种结果更加均衡、更难预测。
- 换底只把所有熵乘以同一个正常数,不改变大小关系和极值点。