KL散度的学习

上篇学习了熵,交叉熵,相对熵(KL散度)

在机器学习、深度学习中,KL散度常用于变分自编码器中(Variational AutoEncoder,简称VAE)、EM算法、GAN网络中。

KL散度定义

KL散度的定义是建立在熵(Entropy)的基础上的,此处以离散随机变量为例子,先给出熵的定义,再给出KL散度的定义

若一个离散随机变量X的可能取值为X={x1,x2,⋯,xn},而对应的概率Pi=p(X=xi),则随机变量X的熵定义为:

规定当p(xi)=0时,p(xi)logp(xi)=0

若有两个随机变量P,Q,且概率分布分别为,且概率分布分别为p(x)、q(x),则p相对q的相对熵为:

之所以称为相对熵,是因为可以通过两随机变量的交叉熵以及信息熵推导得到:针对上述离散变量的概率分布p(x)、q(x)而言,其交叉熵定义为:

在信息论中,交叉熵可认为是对预测分布q(x)用真实分布p(x)来进行编码时所需要的信息量大小。

因此,KL散度或相对熵可通过下式得出:

KL散度具有的性质:正定性和不对称性,这个在上一个文章中有写,这里就不写了

从不同角度解读KL散度的定义

统计学上的KL散度定义

从统计学来看,KL散度是衡量两个分布的差异程度。二者差异越小,KL散度越小。在二者分布完全相等的时候,KL散度为0.正是因为其可以衡量两个分布之间的差异,所以在VAE、EM、GAN中均有使用到KL散度。

信息论角度的KL散度

KL散度在信息论中的专业术语为相对熵。其可理解为编码系统对信息进行编码时所需要的平均附加信息量。其中信息量的单位随着计算公式中loglog运算的底数而变化。

好的接下来我们来看如果是连续型随机变量的话,KL散度应该如何推导:

这两个我对于连续型如何推导打算写一个帖子