KL 散度 Divergence
statistic
本文字数:735 字 | 阅读时长 ≈ 3 min

KL 散度 Divergence

statistic
本文字数:735 字 | 阅读时长 ≈ 3 min

1. 信息量

首先我们要懂信息量的概念,任何一个事件都会承载一个信息量。当一件事情发生的概率很高时,他承载的信息量就越少,例如“1+1=2”这个事情我们是已知的,所以当别人告诉我们这件事时我们不能获取任何信息,即信息量为 0,但是”中国足球世界杯夺冠”这件事给我们的信息量是巨大的,我们将离散型随机变量\(X\)包含的信息量如下表示:

设\(X\)是一个离散型随机变量,概率分布\(P=p(X=x_i)\),则定义事件\(X=x_i\)的信息量为:\(I(x_i)=-log(p(x_i))\)

2. 信息熵

信息量是单个事件发生的情况下我们所获得的信息量,当然一个离散型随机变量\(X\)包含不止一个事件,我们将其全部列出,得到所有可能发生的事件的信息量的期望,这个期望就是信息熵。数学表达如下所是:

假设\(X\)是一个离散型随机变量,且有\(n\)种可能性,发生\(x_i\)事件的概率为\(p(x_i)\),则\(X\)的信息熵为:\(H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))\)

特别的,对于二项分布的问题(0-1 分布),信息熵的计算如下:

\[ H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))=-p(x)log(p(x))-(1-p(x))log(1-p(x)) \]

3. KL散度(相对熵)

\[ D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}] \]

对于同一个随机变量\(X\),有两个单独的概率分布\(P(x) ~and ~Q(x)\),用KL散度来衡量这两个分布的差异。

通常情况下:\(P(x)\)表示真实分布,\(Q(x)\)表示模型所预测的分布,KL散度用来计算两个分布的差异,即\(D_{KL}(p||q)=\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\),公式表示当\(Q\)的分布越来越接近\(P\)(即\(Q\)的分布拟合\(P\))时,散度越小,损失值越小

KL散度不具有对称性,即分布\(P\)到分布\(Q\)的距离不等于分布\(Q\)到分布\(P\)的距离\(D_{KL}(P||Q)\neq D_{KL}(Q||P)\)KL散度非负

KL非负证明:

要证:\(D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}]\geqslant 0\)

即证:\(\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant 0\)

又:\(ln(x)\leqslant x-1\),当且仅当\(x=1\)时等号成立

故:\(\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant \sum_{i=1}^{n}p(x_i)(\frac{p(x_i)}{q(x_i)}-1)=\sum_{i=1}^{n}[p(x_i)-q(x_i)]=0\)

4. 交叉熵

\[ H(p,q)=H(p)+D_{KL}(p||q)=-\sum_{i=1}^{n}p(x_i)log(q(x_i)) \]

由于交叉熵和相对熵之间仅差了一个信息熵,而信息熵又是一个确定的值,因此可以直接用交叉熵作为 Loss 进行反向传播

Sep 06, 2026
Aug 01, 2026