相对熵 (Relative Entropy)
相对熵 (Relative Entropy),也称为 Kullback-Leibler散度 (Kullback-Leibler Divergence,简称 KL 散度),是信息论、统计学和机器学习中衡量两个概率分布之间差异程度的一个核心概念。对于定义在同一概率空间上的两个概率分布 P 和 Q,相对熵刻画了使用分布 Q 近似分布 P 时所损失的信息量,或从 P 到 Q 的"额外编码代价"。
定义
设 P 和 Q 是定义在同一个样本空间 Ω 上的两个概率分布。若 P 关于 Q 绝对连续(即对任意事件 A,Q(A)=0 蕴涵 P(A)=0),则 P 关于 Q 的 相对熵 定义为:
DKL(P∥Q)=∫Ωlog(dQdP)dP
其中 dQdP 是 P 关于 Q 的 Radon-Nikodym 导数。在离散情形下,若 P 和 Q 是两个离散分布,其概率质量函数分别为 p(x) 和 q(x),则定义简化为:
DKL(P∥Q)=x∈X∑p(x)log(q(x)p(x))
在连续情形下,若 P 和 Q 分别具有概率密度函数 p(x) 和 q(x),则定义写作:
DKL(P∥Q)=∫−∞∞p(x)log(q(x)p(x))dx
对数底数的选择决定了相对熵的单位。若以 2 为底,单位为 比特 (bit);若以自然常数 e 为底,单位为 纳特 (nat);若以 10 为底,单位为 迪特 (dit)。在信息论中,比特最为常用;在统计学和机器学习中,纳特更为常见。
\paragraph{计算示例} 考虑两个定义在二值空间 {0,1} 上的伯努利分布:真实分布 P 满足 P(X=1)=0.5,近似分布 Q 满足 Q(X=1)=0.2。则相对熵计算如下:
DKL(P∥Q)=0.5log0.20.5+0.5log0.80.5=0.5log2.5+0.5log0.625≈0.5×0.916+0.5×(−0.470)=0.223 纳特
这一数值直观地反映了使用 Q 近似 P 时所产生的信息损失量。
基本性质
相对熵具有以下重要性质:
- 非负性:DKL(P∥Q)≥0,且等号成立当且仅当 P=Q 几乎处处成立。这一性质直接来自 Jensen不等式 的应用:由于 −log(⋅) 是凸函数,可得: \[ D_{\text{KL}}(P \| Q) = \mathbb{E}_P\left[ -\log\frac{q(X)}{p(X)} \right] \geq -\log \mathbb{E}_P\left[ \frac{q(X)}{p(X)} \right] = -\log 1 = 0 \]
- 非对称性:相对熵不满足对称性,即一般情况下 DKL(P∥Q)=DKL(Q∥P)。这正是其被称为"散度"而非"距离"或"度量"的原因。例如,当 P 的支撑集是 Q 的支撑集的严格子集时,DKL(P∥Q) 有限,但 DKL(Q∥P) 可能发散至无穷大。
- 凸性:DKL(P∥Q) 关于 (P,Q) 是凸函数,即对任意 λ∈[0,1] 有: \[ D_{\text{KL}}(\lambda P_1 + (1-\lambda) P_2 \| \lambda Q_1 + (1-\lambda) Q_2) \leq \lambda D_{\text{KL}}(P_1 \| Q_1) + (1-\lambda) D_{\text{KL}}(P_2 \| Q_2) \]
- 链式法则:若 PXY 和 QXY 是联合分布,则: \[ D_{\text{KL}}(P_{XY} \| Q_{XY}) = D_{\text{KL}}(P_X \| Q_X) + D_{\text{KL}}(P_{Y|X} \| Q_{Y|X} \mid P_X) \] 其中第二项是条件相对熵。
信息论解释
相对熵在信息论中具有深刻的直观含义。设 X∼P 是一个随机变量,其 信息熵 H(X)=−EP[logP(X)] 表示对 X 进行最优编码所需的最少平均比特数。若我们错误地假设 X∼Q 并据此设计编码,则实际所需的平均编码长度为 −EP[logQ(X)]。两者的差值正是相对熵:
DKL(P∥Q)=使用 Q 编码的平均长度−EP[logQ(X)]−最优编码的平均长度(−EP[logP(X)])
因此,相对熵衡量了因使用错误的分布 Q 进行编码而额外需要的比特数。这正是"相对熵"这一名称的由来——它是相对于真实分布 P 而言的熵增。
互信息 (Mutual Information) 是衡量两个随机变量之间依赖关系的重要量。设 X 和 Y 是随机变量,其互信息定义为:
I(X;Y)=DKL(PXY∥PX⊗PY)=x,y∑p(x,y)log(p(x)p(y)p(x,y))
其中 PX⊗PY 是边缘分布的乘积分布。换言之,互信息是联合分布与乘积分布之间的相对熵,衡量了"知道 Y 能在多大程度上减少对 X 的不确定性"。
在统计学中的应用
在统计学中,相对熵是许多重要方法论的理论基础:
最大似然估计的相对熵视角
最大似然估计 (Maximum Likelihood Estimation, MLE) 可以等价地理解为最小化经验分布与模型分布之间的相对熵。设 x1,x2,…,xn 是来自真实分布 Pdata 的独立同分布样本,其经验分布记为 P^n,参数化模型族为 {Pθ:θ∈Θ},则最大似然估计等价于:
θ^MLE=argθminDKL(P^n∥Pθ)
这是因为:
θ^MLE=argθmaxi=1∑nlogpθ(xi)=argθmaxEP^n[logpθ(X)]=argθminDKL(P^n∥Pθ)
AIC 与模型选择
Akaike信息准则 (AIC) 可以看作是对相对熵的渐近无偏估计的修正。AIC 的统计动机正是:给定训练数据,我们希望选择使 DKL(Ptrue∥Pθ^) 最小的模型,其中 Ptrue 是未知的真实数据生成分布。
在机器学习中的应用
在机器学习中,相对熵作为损失函数广泛使用:
- 交叉熵损失:在分类问题中,交叉熵损失函数 −∑i=1Cyilogy^i 等价于真实标签分布 y 与预测分布 y^ 之间的相对熵加上真实分布的熵(而后者在训练过程中为常数)。
- 变分推断:在变分贝叶斯统计中,我们希望通过一个简单的变分分布 q(z) 来近似真实的后验分布 p(z∣x),通过最小化 DKL(q(z)∥p(z∣x)) 来实现: \[ \text{ELBO} = \mathbb{E}_q[\log p(x, z)] - \mathbb{E}_q[\log q(z)] \] 最大化证据下界 (ELBO) 等价于最小化 DKL(q(z)∥p(z∣x))。
- 生成对抗网络:在 GAN 的训练中,判别器最小化真实数据分布与生成数据分布之间的 Jensen-Shannon 散度(JS 散度),而 JS 散度是相对熵的一种对称化变体。
与其他散度的关系
相对熵是更一般的 f-散度 (f-divergence) 族中的一个特例。对于凸函数 f(t)=tlogt,f-散度即退化为相对熵。其他常见的 f-散度包括:
- 总变差距离 (Total Variation Distance):f(t)=21∣t−1∣
- Hellinger距离 (Hellinger Distance):f(t)=(t−1)2
- χ2 散度 (Chi-squared Divergence):f(t)=(t−1)2
此外,相对熵与 JS 散度 (Jensen-Shannon Divergence) 密切相关。JS 散度定义为:
DJS(P∥Q)=21DKL(P2P+Q)+21DKL(Q2P+Q)
与相对熵相比,JS 散度具有对称性、有界性(取值在 [0,log2] 之间)且始终有限。
\paragraph{实践中的数值考量} 在深度学习的实际应用中,使用相对熵作为损失函数时需要特别注意数值稳定性。当预测概率 y^i 接近零时,logy^i 趋近于负无穷,可能导致梯度爆炸。常见的处理方式是在对数运算内部添加一个极小的平滑项 ϵ,即计算 log(y^i+ϵ)。此外,在训练过程中监控相对熵的数值变化,也是判断模型是否正常收敛的重要指标。
局限性
尽管相对熵在理论和应用中均具有不可替代的地位,但它也存在若干局限性:
- 无界性:当存在某个 x 使得 q(x)=0 而 p(x)>0 时,DKL(P∥Q)=∞,这使得它在某些应用中难以处理。
- 非对称性:在需要对称距离度量的应用中(如聚类、降维),相对熵本身不适用,需使用其对称化变体。
- 对支撑集的敏感性:相对熵对分布的支撑集高度敏感,这在实际数据中可能带来数值稳定性问题。
综上,相对熵是连接信息论、统计学和机器学习的核心桥梁,从编码理论到贝叶斯推断,从模型选择到深度学习,处处可见其深刻影响。