KL散度Divergence

一、信息量

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

是一个离散型随机变量,概率分布,则定义事件的信息量为:

二、信息熵

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

假设是一个离散型随机变量,且有种可能性,发生事件的概率为,则的信息熵为:

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

三、KL散度(相对熵)

对于同一个随机变量,有两个单独的概率分布,用KL散度来衡量这两个分布的差异。

通常情况下:表示真实分布,表示模型所预测的分布,KL散度用来计算两个分布的差异,即,公式表示当的分布越来越接近(即的分布拟合)时,散度越小,损失值越小

KL散度不具有对称性,即分布到分布的距离不等于分布到分布的距离KL散度非负

KL非负证明:

要证:

即证:

又:,当且仅当时等号成立

故:

四、交叉熵

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