KL散度的学习
📅 2026/7/7 14:07:50
👁️ 阅读次数
📝 编程学习
上篇学习了熵,交叉熵,相对熵(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散度应该如何推导:
这两个我对于连续型如何推导打算写一个帖子
编程学习
技术分享
实战经验