KL散度(Kullback-Leibler divergence),可以以称作相对熵(relative entropy)或信息散度(information divergence)。KL散度的理论意义在于度量两个概率分布之间的差异程度,当KL散度越大的时候,说明两者的差异程度越大;而当KL散度小的时候,则说明两者的差异程度小。如果两者相同的话,则该KL散度应该为0。

接下来我们举一个具体的🌰:

我们设定两个概率分布分别为CNN KL散度损失 kl散度最小化_机器学习CNN KL散度损失 kl散度最小化_KL散度_02,在设定为连续随机变量的前提下,他们对应的概率密度函数分别为CNN KL散度损失 kl散度最小化_KL散度_03CNN KL散度损失 kl散度最小化_机器学习_04。如果我们用CNN KL散度损失 kl散度最小化_机器学习_04去近似CNN KL散度损失 kl散度最小化_KL散度_03,则KL散度可以表示为:

CNN KL散度损失 kl散度最小化_KL散度_07

从上面的公式可以看出,当且仅当CNN KL散度损失 kl散度最小化_机器学习_08时,CNN KL散度损失 kl散度最小化_机器学习_09。此外我们可以知道KL散度具备非负性,即CNN KL散度损失 kl散度最小化_深度学习_10。并且从公式中我们也发现,KL散度不具备对称性,也就是说CNN KL散度损失 kl散度最小化_机器学习对于CNN KL散度损失 kl散度最小化_KL散度_02的KL散度并不等于CNN KL散度损失 kl散度最小化_KL散度_02对于CNN KL散度损失 kl散度最小化_机器学习的KL散度。因此,KL散度并不是一个度量(metric),即KL散度并非距离

我们再来看看离散的情况下用CNN KL散度损失 kl散度最小化_机器学习_04去近似CNN KL散度损失 kl散度最小化_KL散度_03的KL散度的公式:

CNN KL散度损失 kl散度最小化_CNN KL散度损失_17

接下来我们对上面的式子进行展开:

CNN KL散度损失 kl散度最小化_KL散度_18

最后得到的第一项称作CNN KL散度损失 kl散度最小化_机器学习CNN KL散度损失 kl散度最小化_KL散度_02的交叉熵(cross entropy),后面一项就是熵。

在信息论中,熵代表着信息量,CNN KL散度损失 kl散度最小化_深度学习_21代表着基于CNN KL散度损失 kl散度最小化_机器学习分布自身的编码长度,也就是最优的编码长度(最小字节数)。而CNN KL散度损失 kl散度最小化_机器学习_23则代表着用CNN KL散度损失 kl散度最小化_KL散度_02的分布去近似CNN KL散度损失 kl散度最小化_机器学习分布的信息,自然需要更多的编码长度。并且两个分布差异越大,需要的编码长度越大。所以两个值相减是大于等于0的一个值,代表冗余的编码长度,也就是两个分布差异的程度。所以KL散度在信息论中还可以称为相对熵(relative entropy)。

对深度学习中的生成模型来说,我们希望最小化真实数据分布与生成数据分布之间的KL散度,从而使得生成数据尽可能接近真实数据的分布。在实际场景中,我们是几乎不可能知道真实数据分布CNN KL散度损失 kl散度最小化_CNN KL散度损失_26的,我们使用训练数据形成的生成分布在逼近CNN KL散度损失 kl散度最小化_CNN KL散度损失_26