412 字
2 分钟
KL散度与交叉熵
2026-04-23
无标签

KL散度#

KL散度(Kullback-Leibler Divergence)又称相对熵,是衡量两个概率分布之间差异的一种方法。对于两个概率分布 PPQQ,KL散度定义为:

DKL(PQ)=xP(x)logp(x)q(x)D_{KL}(P \| Q) = \sum_{x} P(x) \log \frac{p(x)}{q(x)}

其中 p(x)p(x)q(x)q(x) 分别表示概率分布 PPQQ 的概率密度函数

KL散度的性质#

  • KL散度是非负的:DKL(PQ)0D_{KL}(P \| Q) \geq 0,当且仅当 P=QP = Q 时,KL散度为零。
  • KL散度不是对称的:DKL(PQ)DKL(QP)D_{KL}(P \| Q) \neq D_{KL}(Q \| P)

alt text

交叉熵#

对KL散度进一步变形,发现他是由P的熵和P与Q的交叉熵两部分组成的:

DKL(PQ)=+p(x)logp(x)q(x)dx=+p(x)logq(x)dx++p(x)logp(x)dx=H(P)+CE(P,Q)D_{KL}(P \| Q) = \int_{-\infty}^{+\infty} p(x) \log \frac{p(x)}{q(x)} dx \\ = -\int_{-\infty}^{+\infty} p(x) \log q(x) dx + \int_{-\infty}^{+\infty} p(x) \log p(x) dx\\ = -H(P) + CE(P, Q)

其中 H(P)H(P) 是P的熵,CE(P,Q)CE(P, Q) 是P与Q的交叉熵。

交叉熵在分类问题中的应用#

一般情况下,PP 是真实标签的分布(通常是one-hot向量),QQ 是模型预测的分布。在这种情况下,交叉熵可以用来衡量模型预测与真实标签之间的差异。可以作为损失函数来优化模型参数,使得模型预测的分布尽可能接近真实标签的分布。

训练的过程就是Q从无偏(离散信源信息熵最大)到有偏的过程,最终使得Q与P尽可能接近,KL散度尽可能小,交叉熵尽可能小。

TIP

one-hot向量:在分类问题中,真实标签通常表示为一个长度为类别数的向量,其中只有一个元素为1(表示正确类别),其余元素为0。

KL散度与交叉熵
https://biscuit0613.github.io/posts/infotheory/kldivergenceandcrossentropy/
作者
Biscuit
发布于
2026-04-23
许可协议
CC BY-NC-SA 4.0