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 进行反向传播

4月 06, 2025
3月 10, 2025
12月 31, 2024