Skip to content

信息论导论:熵、散度与互信息

信息论为 AI 中的许多概念提供统一语言:模型预测的不确定性可以用描述,真实分布与模型分布的差异可以用KL 散度交叉熵描述,表示与目标之间保留了多少信息可以用互信息描述。若无特别说明,本文默认使用 log2,信息单位为 bit,并约定 0log0=0

1. 公式速查

X,Y,Z 为离散随机变量,联合分布为 p(x,y,z),边缘分布为 p(x),p(y),条件分布为 p(yx)

名称公式含义
自信息量i(x)=log1p(x)事件越罕见,发生时带来的信息越大
H(X)=xp(x)logp(x)
=E[log1p(X)]
随机变量的平均不确定性
联合熵H(X,Y)=x,yp(x,y)logp(x,y)同时描述 (X,Y) 的平均不确定性
条件熵H(YX)=xp(x)H(YX=x)
=x,yp(x,y)logp(yx)
已知 X 后,Y 剩余的不确定性
KL 散度DKL(pq)=xp(x)logp(x)q(x)q 近似 p 的分布差异
交叉熵H(p,q)=xp(x)logq(x)真实分布为 p,模型分布为 q 时的平均负对数概率
互信息I(X;Y)=DKL(p(x,y)p(x)p(y))XY 共享的信息量
条件互信息I(X;YZ)=H(XZ)H(XY,Z)已知 Z 后,YX 额外提供的信息

最重要的一组关系是:

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(p,q)=H(p)+DKL(pq).

直觉上,联合熵关注“合起来有多少不确定性”,条件熵关注“知道一个变量后还剩多少不确定性”,互信息关注“一个变量解释了另一个变量多少不确定性”。

2. 熵:不确定性的度量

2.1 自信息量

若事件 X=x 的概率为 p(x),其自信息量定义为

i(x)=log1p(x)=logp(x).

必然事件的自信息量为 0;小概率事件一旦发生,更“意外”,因此自信息量更大。

2.2 熵

随机变量 X是自信息量的期望:

H(X)=EXp[log1p(X)]=xp(x)log1p(x)=xp(x)logp(x).

熵越大,分布越分散,随机变量越不确定;熵越小,分布越集中,随机变量越确定。

基本性质:

H(X)0.

当且仅当 X 是确定变量时,H(X)=0。若 |X|<,则

0H(X)log|X|.

上界在均匀分布 p(x)=1/|X| 时取得。令 u(x)=1/|X|,由 KL 非负性可得

DKL(pu)=xp(x)logp(x)u(x)=H(X)+log|X|0.

因此 H(X)log|X|,等号当且仅当 p=u

2.3 联合熵

两个随机变量的联合熵定义为

H(X,Y)=x,yp(x,y)logp(x,y)=E[log1p(X,Y)].

联合熵度量同时描述 XY 的平均不确定性。若 X,Y 独立,则

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

Y=X,则

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

这说明联合熵并不是机械相加:两个变量共享的信息不会被重复计算。

2.4 条件熵

条件熵定义为

H(YX)=xp(x)H(YX=x)=x,yp(x,y)logp(yx)=E[log1p(YX)].

它表示已知 X 后,Y 还剩多少不确定性。由链式法则可得

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

由互信息的定义也可写成

H(YX)=H(Y)I(X;Y).

也就是说,Y 原本有 H(Y) 的不确定性,知道 X 后被解释掉 I(X;Y),剩下的就是 H(YX)

2.5 条件会降低熵

平均意义下,条件不会增加不确定性:

H(X)H(XY).

证明非常直接:

H(X)H(XY)=I(X;Y)0.

注意这里说的是平均条件熵 H(XY)。对某个具体取值 Y=yH(XY=y) 不一定小于 H(X)

3. 散度与交叉熵:分布差异的度量

3.1 KL 散度

两个分布 p,qKL 散度定义为

DKL(pq)=xp(x)logp(x)q(x).

KL 散度刻画 q 相对于 p 的偏差。它通常不对称:

DKL(pq)DKL(qp).

因此 KL 散度不是严格意义上的距离。

3.2 KL 非负性

KL 散度总是非负:

DKL(pq)0.

证明如下。由于 log 是凹函数,由 Jensen 不等式,

DKL(pq)=xp(x)logq(x)p(x)=Exp[logq(x)p(x)]logExp[q(x)p(x)]=logxq(x)=0.

所以 DKL(pq)0,等号当且仅当 p=q

3.3 交叉熵

交叉熵定义为

H(p,q)=xp(x)logq(x).

它与熵、KL 散度之间有非常重要的分解:

H(p,q)=xp(x)logq(x)=xp(x)logp(x)+xp(x)logp(x)q(x)=H(p)+DKL(pq).

当真实分布 p 固定时,最小化交叉熵 H(p,qθ) 等价于最小化 DKL(pqθ)。这也是分类模型和语言模型中交叉熵损失的基本来源。

p 是 one-hot 标签分布,则交叉熵退化为

H(p,qθ)=logqθ(yx),

这就是负对数似然(negative log likelihood)。

3.4 Perplexity

语言模型中,给定序列 x1,,xn

qθ(x1,,xn)=t=1nqθ(xtx<t).

平均负对数似然为

LNLL=1nt=1nlogqθ(xtx<t).

若使用 log2,困惑度为

PPL=2LNLL.

若使用自然对数,则

PPL=eLNLL.

困惑度可以理解为模型平均每一步面对的“等效候选数”。交叉熵越低,困惑度越低,模型越确定。

4. 互信息:变量之间共享的信息

4.1 定义

互信息定义为

I(X;Y)=x,yp(x,y)logp(x,y)p(x)p(y)=DKL(p(x,y)p(x)p(y)).

互信息衡量联合分布 p(x,y) 偏离独立分布 p(x)p(y) 的程度。若 X,Y 独立,则

I(X;Y)=0.

反过来,I(X;Y)=0 也意味着 X,Y 独立。

互信息是对称的:

I(X;Y)=I(Y;X).

4.2 互信息的等价形式

从定义出发:

I(X;Y)=x,yp(x,y)logp(x,y)p(x)p(y)=x,yp(x,y)logp(xy)p(x)=x,yp(x,y)log1p(x)x,yp(x,y)log1p(xy)=H(X)H(XY).

同理,

I(X;Y)=H(Y)H(YX).

结合链式法则,

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

因此

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

这三个公式分别对应三种直觉:

  • 知道 Y 后,X 的不确定性减少了多少;
  • 知道 X 后,Y 的不确定性减少了多少;
  • 分别描述 X,Y 时重复计算了多少共享信息。

互信息还满足

0I(X;Y)min{H(X),H(Y)}.

4.3 条件互信息

条件互信息定义为

I(X;YZ)=zp(z)I(X;YZ=z)=x,y,zp(x,y,z)logp(x,yz)p(xz)p(yz).

它也可以写成熵的形式:

I(X;YZ)=H(XZ)H(XY,Z)=H(YZ)H(YX,Z).

一般情况下,I(X;Y)I(X;YZ) 没有固定大小关系。条件变量 Z 既可能解释掉相关性,也可能揭示新的依赖关系。

5. 链式法则与数据处理

5.1 熵的链式法则

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

H(X,Y)=x,yp(x,y)logp(x,y)=x,yp(x,y)log[p(x)p(yx)]=H(X)+H(YX).

推广到 n 个变量:

H(X1,,Xn)=i=1nH(XiX1,,Xi1).

5.2 互信息的链式法则

互信息也可以逐层展开:

I(X1,,Xn;Y)=i=1nI(Xi;YX1,,Xi1).

证明:

I(X1,,Xn;Y)=H(X1,,Xn)H(X1,,XnY)=i=1nH(XiX1,,Xi1)i=1nH(XiX1,,Xi1,Y)=i=1nI(Xi;YX1,,Xi1).

5.3 KL 散度的链式法则

KL 散度满足

DKL(p(x,y)q(x,y))=DKL(p(x)q(x))+DKL(p(yx)q(yx)).

其中条件 KL 的完整写法是

DKL(p(yx)q(yx))=xp(x)yp(yx)logp(yx)q(yx).

展开证明:

DKL(p(x,y)q(x,y))=x,yp(x,y)logp(x,y)q(x,y)=x,yp(x,y)logp(x)p(yx)q(x)q(yx)=DKL(p(x)q(x))+DKL(p(yx)q(yx)).

5.4 Markov 链与数据处理不等式

XYZ,

则表示在给定 Y 后,XZ 条件独立:

XZY.

等价地,

p(x,y,z)=p(x)p(yx)p(zy).

数据处理不等式为

XYZI(X;Y)I(X;Z).

含义是:对信息进行后处理不会凭空增加关于原始变量的信息。若 Z 是由 Y 处理得到的表示,那么 ZX 的互信息不会超过 YX 的互信息。

证明:

I(X;Y,Z)=I(X;Y)+I(X;ZY)=I(X;Z)+I(X;YZ).

因为 XZY,所以 I(X;ZY)=0,于是

I(X;Y)=I(X;Z)+I(X;YZ)I(X;Z).

在表示学习中,这说明一个表示经过变换或降维后,通常只能保留原变量中的一部分信息。若希望表示对目标任务仍然有效,就必须保留与目标相关的那部分信息。

6. 公式总览

熵、散度和互信息之间的核心关系可以汇总为:

H(X)=xp(x)logp(x),H(X,Y)=H(X)+H(YX)=H(Y)+H(XY),H(YX)=H(X,Y)H(X)=H(Y)I(X;Y),I(X;Y)=H(X)H(XY)=H(Y)H(YX)=H(X)+H(Y)H(X,Y)=DKL(p(x,y)p(x)p(y)),H(p,q)=H(p)+DKL(pq).

记忆方式:

  • 熵:一个变量自身的不确定性。
  • 联合熵:多个变量合在一起的不确定性。
  • 条件熵:已知一部分变量后剩下的不确定性。
  • 互信息:一个变量解释另一个变量的不确定性。
  • KL 散度:两个分布不一致的程度。
  • 交叉熵:用模型分布解释真实数据时的平均负对数概率。

以知识图谱方式组织 AI 学习路径。