信息论导论:熵、散度与互信息
信息论为 AI 中的许多概念提供统一语言:模型预测的不确定性可以用熵描述,真实分布与模型分布的差异可以用KL 散度和交叉熵描述,表示与目标之间保留了多少信息可以用互信息描述。若无特别说明,本文默认使用
1. 公式速查
设
| 名称 | 公式 | 含义 |
|---|---|---|
| 自信息量 | 事件越罕见,发生时带来的信息越大 | |
| 熵 | 随机变量的平均不确定性 | |
| 联合熵 | 同时描述 | |
| 条件熵 | 已知 | |
| KL 散度 | 用 | |
| 交叉熵 | 真实分布为 | |
| 互信息 | ||
| 条件互信息 | 已知 |
最重要的一组关系是:
直觉上,联合熵关注“合起来有多少不确定性”,条件熵关注“知道一个变量后还剩多少不确定性”,互信息关注“一个变量解释了另一个变量多少不确定性”。
2. 熵:不确定性的度量
2.1 自信息量
若事件
必然事件的自信息量为
2.2 熵
随机变量
熵越大,分布越分散,随机变量越不确定;熵越小,分布越集中,随机变量越确定。
基本性质:
当且仅当
上界在均匀分布
因此
2.3 联合熵
两个随机变量的联合熵定义为
联合熵度量同时描述
若
这说明联合熵并不是机械相加:两个变量共享的信息不会被重复计算。
2.4 条件熵
条件熵定义为
它表示已知
由互信息的定义也可写成
也就是说,
2.5 条件会降低熵
平均意义下,条件不会增加不确定性:
证明非常直接:
注意这里说的是平均条件熵
3. 散度与交叉熵:分布差异的度量
3.1 KL 散度
两个分布
KL 散度刻画
因此 KL 散度不是严格意义上的距离。
3.2 KL 非负性
KL 散度总是非负:
证明如下。由于
所以
3.3 交叉熵
交叉熵定义为
它与熵、KL 散度之间有非常重要的分解:
当真实分布
若
这就是负对数似然(negative log likelihood)。
3.4 Perplexity
语言模型中,给定序列
平均负对数似然为
若使用
若使用自然对数,则
困惑度可以理解为模型平均每一步面对的“等效候选数”。交叉熵越低,困惑度越低,模型越确定。
4. 互信息:变量之间共享的信息
4.1 定义
互信息定义为
互信息衡量联合分布
反过来,
互信息是对称的:
4.2 互信息的等价形式
从定义出发:
同理,
结合链式法则,
因此
这三个公式分别对应三种直觉:
- 知道
后, 的不确定性减少了多少; - 知道
后, 的不确定性减少了多少; - 分别描述
时重复计算了多少共享信息。
互信息还满足
4.3 条件互信息
条件互信息定义为
它也可以写成熵的形式:
一般情况下,
5. 链式法则与数据处理
5.1 熵的链式法则
由
推广到
5.2 互信息的链式法则
互信息也可以逐层展开:
证明:
5.3 KL 散度的链式法则
KL 散度满足
其中条件 KL 的完整写法是
展开证明:
5.4 Markov 链与数据处理不等式
若
则表示在给定
等价地,
数据处理不等式为
含义是:对信息进行后处理不会凭空增加关于原始变量的信息。若
证明:
因为
在表示学习中,这说明一个表示经过变换或降维后,通常只能保留原变量中的一部分信息。若希望表示对目标任务仍然有效,就必须保留与目标相关的那部分信息。
6. 公式总览
熵、散度和互信息之间的核心关系可以汇总为:
记忆方式:
- 熵:一个变量自身的不确定性。
- 联合熵:多个变量合在一起的不确定性。
- 条件熵:已知一部分变量后剩下的不确定性。
- 互信息:一个变量解释另一个变量的不确定性。
- KL 散度:两个分布不一致的程度。
- 交叉熵:用模型分布解释真实数据时的平均负对数概率。