Skip to content

熵与条件熵:看见 Y 之后,X 还剩多少不确定

WARNING

🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。

导论 把熵说成平均惊喜。本章补上两个变量:联合熵 H(X,Y)、条件熵 H(XY)、链规则。互信息 I(X;Y)=H(X)H(XY)香农章 拿去写容量;交叉熵 / KL 仍在 信息论精简


一、一张联合表

离散 X,Y 的全部信息在联合 p(x,y) 里。边缘 p(x)=yp(x,y)。熵

H(X)=xp(x)log2p(x),H(X,Y)=x,yp(x,y)log2p(x,y).

条件熵是「先看见 Y,再猜 X」的平均剩余不确定:

H(XY)=yp(y)H(XY=y)=H(X,Y)H(Y).

熵、条件熵与链规则

图解说明:左是 2×2 联合表;中是 Venn:H(X)H(Y) 重叠为 I(X;Y),月牙是条件熵,并集是联合熵;右是链规则 H(X,Y)=H(X)+H(YX)

信息熵:不确定性有多少比特

图解说明:全确定 H=0;两结果等可能 1 比特;四结果等可能 2 比特。越平均越不确定。

逐步推导:从「平均惊喜」到 H=plog2p,以及链规则(点击展开)

惊喜定义为 log2p(x):概率 1 的事件惊喜为 0;概率 1/2 惊喜为 1 比特。熵是惊喜的期望:

H(X)=E[log2p(X)]=xp(x)log2p(x).

均匀 m 面骰子 p=1/mH=log2m。偏得越厉害,熵越小。

联合:把 (X,Y) 当成一个变量,H(X,Y)=x,yp(x,y)log2p(x,y)。条件:H(XY=y) 是固定 Y=yp(xy) 的熵,再对 y 平均。展开

H(XY)=x,yp(x,y)log2p(xy).

logp(x,y)=logp(y)+logp(xy),代入联合熵立刻得到链规则 H(X,Y)=H(Y)+H(XY)。互信息 I(X;Y)=H(X)H(XY) 就是「看见 Y 之后,X 的不确定少了多少」。


二、链规则与互信息

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

互信息是重叠:

I(X;Y)=H(X)H(XY)=H(Y)H(YX)=H(X)+H(Y)H(X,Y).

独立时 H(X,Y)=H(X)+H(Y)I=0。一方是另一方的函数时,条件熵为 0,互信息等于被决定那一侧的熵。


三、代码在做什么

demo 用一张 2×2 联合表:

p(x,y)=(0.100.300.400.20)(x 行,y 列).

算出 H(X),H(Y),H(X,Y),H(XY),I(X;Y),并核对链规则。左图热力图是联合,右图柱是五个量。

联合表上的熵分解

I 应严格为正(这张表不独立);H(XY) 应小于 H(X)——看见 Y 对猜 X 有帮助。


四、小结

概念一句话
H(X,Y)一对变量的平均惊喜
H(XY)看见 Y 之后还剩多少
链规则联合 = 边缘 + 条件
I(X;Y)重叠;容量章的主角
下游香农IC

下一章 香农信息论

📥 Code

FileViewDownload
demo.pyOpenDownload
exercise.pyOpenDownload

参考

  1. Cover & Thomas, 第 2 章
  2. MacKay, ITILA