机器学习数学基础 120 章

联合熵、条件熵与互信息

层级:B|建议先修:05-08、05-12、07-01、07-03

单变量熵衡量一个变量的不确定性。面对特征 XX 和标签 YY,我们更关心:它们合在一起有多不确定?知道 XX 后还剩多少关于 YY 的不确定性?两者共享多少信息?

1. 联合熵

对离散随机变量 X,YX,Y,联合熵为

H(X,Y)=x,yp(x,y)logp(x,y).H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y).

它是联合结果 (X,Y)(X,Y) 的平均信息量。若 X,YX,Y 独立,则 p(x,y)=p(x)p(y)p(x,y)=p(x)p(y),从而

H(X,Y)=H(X)+H(Y).H(X,Y)=H(X)+H(Y).

如果不独立,共享的信息会造成重复,因此联合熵通常小于两个边缘熵之和。

2. 条件熵

给定 X=xX=x 后,YY 的条件熵为

H(YX=x)=yp(yx)logp(yx).H(Y\mid X=x)=-\sum_y p(y\mid x)\log p(y\mid x).

再对 XX 取平均:

H(YX)=xp(x)H(YX=x)=x,yp(x,y)logp(yx).H(Y\mid X)=\sum_xp(x)H(Y\mid X=x) =-\sum_{x,y}p(x,y)\log p(y\mid x).

它表示观察 XX 后,预测 YY 平均还剩多少不确定性。

3. 熵的链式法则

p(x,y)=p(x)p(yx)p(x,y)=p(x)p(y\mid x)

H(X,Y)=H(X)+H(YX)=H(Y)+H(XY).H(X,Y)=H(X)+H(Y\mid X) =H(Y)+H(X\mid Y).

对多个变量,

H(X1,,Xn)=i=1nH(XiX1,,Xi1).H(X_1,\ldots,X_n) =\sum_{i=1}^nH(X_i\mid X_1,\ldots,X_{i-1}).

这与概率的链式分解完全对应。

4. 条件熵不会增加不确定性

对离散变量,有

H(YX)H(Y).H(Y\mid X)\le H(Y).

意思是平均而言,获得信息不会让预测更差。某个特定 xx 下的条件熵可能高于边缘熵,但对 XX 平均之后不会。

5. 互信息

互信息定义为

I(X;Y)=H(Y)H(YX).I(X;Y)=H(Y)-H(Y\mid X).

利用链式法则,还可写成

I(X;Y)=H(X)+H(Y)H(X,Y)=H(X)H(XY).I(X;Y)=H(X)+H(Y)-H(X,Y) =H(X)-H(X\mid Y).

它衡量观察一个变量后,另一个变量的不确定性平均减少多少。因此 I(X;Y)=I(Y;X)I(X;Y)=I(Y;X)

6. 互信息是联合分布与独立分布的 KL

I(X;Y)=x,yp(x,y)logp(x,y)p(x)p(y)=DKL(p(x,y)p(x)p(y)).I(X;Y) =\sum_{x,y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)} =D_{\mathrm{KL}}(p(x,y)\|p(x)p(y)).

因此

I(X;Y)0,I(X;Y)\ge0,

且当且仅当 X,YX,Y 独立时为 0(在适当条件下)。互信息能发现一般统计依赖,不局限于线性关系;相关系数为 0 并不必然意味着互信息为 0。

7. 条件互信息

给定 ZZ 后的互信息为

I(X;YZ)=H(XZ)H(XY,Z).I(X;Y\mid Z) =H(X\mid Z)-H(X\mid Y,Z).

也可写为

I(X;YZ)=EZ[DKL(p(x,yZ)p(xZ)p(yZ))].I(X;Y\mid Z) =\mathbb E_Z\left[D_{\mathrm{KL}}(p(x,y\mid Z)\|p(x\mid Z)p(y\mid Z))\right].

它为 0 对应 XYZX\perp Y\mid Z,即给定 ZZ 后条件独立。这是概率图模型的核心语言。

8. 决策树中的信息增益

用属性 AA 划分标签 YY 时,信息增益为

Gain(Y,A)=H(Y)H(YA)=I(Y;A).\operatorname{Gain}(Y,A) =H(Y)-H(Y\mid A)=I(Y;A).

增益越大,说明知道该属性后标签不确定性下降越多。ID3 使用信息增益;为减轻多取值属性偏好,C4.5 使用增益率。

9. 连续变量的注意事项

连续变量也可以用密度定义互信息:

I(X;Y)=p(x,y)logp(x,y)p(x)p(y)dxdy.I(X;Y)=\int p(x,y)\log\frac{p(x,y)}{p(x)p(y)}\,dxdy.

虽然微分熵可能为负,但互信息仍非负。实际估计互信息并不容易:分箱、核密度、k 近邻估计和神经估计器都会引入偏差与方差。

10. 数据处理不等式

若形成 Markov 链 XYZX\to Y\to Z,即给定 YYZZ 不再依赖 XX,则

I(X;Z)I(X;Y).I(X;Z)\le I(X;Y).

对数据做处理不能凭空创造关于原变量的信息。特征压缩可以保留关键信息,但无法无损恢复已经丢弃的部分。

11. 易错点

  1. 互信息高表示依赖强,不代表因果关系。
  2. 相关系数只捕捉特定形式的关系;互信息为 0 才对应独立。
  3. 用训练数据估计高维互信息容易严重偏差。
  4. 信息增益会偏爱取值很多的属性,不能脱离算法背景机械使用。

常见问答

Q1:如果 Y=f(X)Y=f(X) 是确定函数,条件熵是多少?
离散情形下 H(YX)=0H(Y\mid X)=0,因此 I(X;Y)=H(Y)I(X;Y)=H(Y)

Q2:条件熵为什么不是简单地“固定一个条件”算熵?
H(YX)H(Y\mid X) 还要按 p(x)p(x) 对所有条件值加权平均。

Q3:互信息可以大于任一变量的熵吗?
离散情形不能,I(X;Y)min{H(X),H(Y)}I(X;Y)\le\min\{H(X),H(Y)\}

Q4:特征与标签互信息高,就一定应该选它吗?
不一定。还要考虑估计误差、冗余、成本、泄漏和泛化;多个特征的联合价值也不等于单变量价值相加。

练习

  1. X,YX,Y 独立,证明 H(YX)=H(Y)H(Y\mid X)=H(Y)
  2. Y=XY=XXX 是公平二值变量,计算 H(X,Y)H(X,Y)H(YX)H(Y\mid X)I(X;Y)I(X;Y)
  3. 从联合熵的定义推导 H(X,Y)=H(X)+H(YX)H(X,Y)=H(X)+H(Y\mid X)
  4. 举一个相关系数为 0 但不独立的例子。

答案与提示

  1. 独立时 p(yx)=p(y)p(y\mid x)=p(y),代入条件熵定义即可。
  2. 分别为 1 bit、0、1 bit。
  3. logp(x,y)\log p(x,y) 写成 logp(x)+logp(yx)\log p(x)+\log p(y\mid x) 后拆开求和。
  4. 可取关于 0 对称的 XX,令 Y=X2Y=X^2。在矩存在时二者可不相关,但显然不独立。