联合熵、条件熵与互信息
层级:B|建议先修:05-08、05-12、07-01、07-03
单变量熵衡量一个变量的不确定性。面对特征 X 和标签 Y,我们更关心:它们合在一起有多不确定?知道 X 后还剩多少关于 Y 的不确定性?两者共享多少信息?
1. 联合熵
对离散随机变量 X,Y,联合熵为
H(X,Y)=−x,y∑p(x,y)logp(x,y).
它是联合结果 (X,Y) 的平均信息量。若 X,Y 独立,则 p(x,y)=p(x)p(y),从而
H(X,Y)=H(X)+H(Y).
如果不独立,共享的信息会造成重复,因此联合熵通常小于两个边缘熵之和。
2. 条件熵
给定 X=x 后,Y 的条件熵为
H(Y∣X=x)=−y∑p(y∣x)logp(y∣x).
再对 X 取平均:
H(Y∣X)=x∑p(x)H(Y∣X=x)=−x,y∑p(x,y)logp(y∣x).
它表示观察 X 后,预测 Y 平均还剩多少不确定性。
3. 熵的链式法则
由 p(x,y)=p(x)p(y∣x),
H(X,Y)=H(X)+H(Y∣X)=H(Y)+H(X∣Y).
对多个变量,
H(X1,…,Xn)=i=1∑nH(Xi∣X1,…,Xi−1).
这与概率的链式分解完全对应。
4. 条件熵不会增加不确定性
对离散变量,有
H(Y∣X)≤H(Y).
意思是平均而言,获得信息不会让预测更差。某个特定 x 下的条件熵可能高于边缘熵,但对 X 平均之后不会。
5. 互信息
互信息定义为
I(X;Y)=H(Y)−H(Y∣X).
利用链式法则,还可写成
I(X;Y)=H(X)+H(Y)−H(X,Y)=H(X)−H(X∣Y).
它衡量观察一个变量后,另一个变量的不确定性平均减少多少。因此 I(X;Y)=I(Y;X)。
6. 互信息是联合分布与独立分布的 KL
I(X;Y)=x,y∑p(x,y)logp(x)p(y)p(x,y)=DKL(p(x,y)∥p(x)p(y)).
因此
I(X;Y)≥0,
且当且仅当 X,Y 独立时为 0(在适当条件下)。互信息能发现一般统计依赖,不局限于线性关系;相关系数为 0 并不必然意味着互信息为 0。
7. 条件互信息
给定 Z 后的互信息为
I(X;Y∣Z)=H(X∣Z)−H(X∣Y,Z).
也可写为
I(X;Y∣Z)=EZ[DKL(p(x,y∣Z)∥p(x∣Z)p(y∣Z))].
它为 0 对应 X⊥Y∣Z,即给定 Z 后条件独立。这是概率图模型的核心语言。
8. 决策树中的信息增益
用属性 A 划分标签 Y 时,信息增益为
Gain(Y,A)=H(Y)−H(Y∣A)=I(Y;A).
增益越大,说明知道该属性后标签不确定性下降越多。ID3 使用信息增益;为减轻多取值属性偏好,C4.5 使用增益率。
9. 连续变量的注意事项
连续变量也可以用密度定义互信息:
I(X;Y)=∫p(x,y)logp(x)p(y)p(x,y)dxdy.
虽然微分熵可能为负,但互信息仍非负。实际估计互信息并不容易:分箱、核密度、k 近邻估计和神经估计器都会引入偏差与方差。
10. 数据处理不等式
若形成 Markov 链 X→Y→Z,即给定 Y 后 Z 不再依赖 X,则
I(X;Z)≤I(X;Y).
对数据做处理不能凭空创造关于原变量的信息。特征压缩可以保留关键信息,但无法无损恢复已经丢弃的部分。
11. 易错点
- 互信息高表示依赖强,不代表因果关系。
- 相关系数只捕捉特定形式的关系;互信息为 0 才对应独立。
- 用训练数据估计高维互信息容易严重偏差。
- 信息增益会偏爱取值很多的属性,不能脱离算法背景机械使用。
常见问答
Q1:如果 Y=f(X) 是确定函数,条件熵是多少?
离散情形下 H(Y∣X)=0,因此 I(X;Y)=H(Y)。
Q2:条件熵为什么不是简单地“固定一个条件”算熵?
H(Y∣X) 还要按 p(x) 对所有条件值加权平均。
Q3:互信息可以大于任一变量的熵吗?
离散情形不能,I(X;Y)≤min{H(X),H(Y)}。
Q4:特征与标签互信息高,就一定应该选它吗?
不一定。还要考虑估计误差、冗余、成本、泄漏和泛化;多个特征的联合价值也不等于单变量价值相加。
练习
- 若 X,Y 独立,证明 H(Y∣X)=H(Y)。
- 若 Y=X 且 X 是公平二值变量,计算 H(X,Y)、H(Y∣X) 和 I(X;Y)。
- 从联合熵的定义推导 H(X,Y)=H(X)+H(Y∣X)。
- 举一个相关系数为 0 但不独立的例子。
答案与提示
- 独立时 p(y∣x)=p(y),代入条件熵定义即可。
- 分别为 1 bit、0、1 bit。
- 将 logp(x,y) 写成 logp(x)+logp(y∣x) 后拆开求和。
- 可取关于 0 对称的 X,令 Y=X2。在矩存在时二者可不相关,但显然不独立。