KL散度详细介绍

KL散度(Kullback-Leibler Divergence)是信息论中的一个重要概念,在机器学习、统计学习和深度学习中被广泛应用。它通常用来衡量两个概率分布之间的差异。KL散度虽然不是一个严格意义上的距离(因为它不具备对称性和三角不等式等性质),但它可以用来描述两个分布在信息上的差异。下面将详细介绍KL散度的定义、相关数学公式及其在机器学习中的应用。

KL散度的基本定义

KL散度用来度量两个概率分布 P 和 Q 之间的差异,也被称为相对熵。我们假设P是真实分布,Q 是估计分布,那么KL散度的基本数学定义为:

                                  D_{\text{KL}}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)}(离散型公式)

                                  D_{\text{KL}}(P \parallel Q) = \int P(x) \log \frac{P(x)}{Q(x)} \, dx(连续型公式)

其中 P(x) 是真实的概率分布函数,Q(x) 是估计的概率分布函数。log \frac{P(x)}{Q(x)}为每个点上真实分布和估计分布之间的对数比值。

KL散度刻画了在假设数据分布为 Q时,我们根据 P 获得的额外信息损失。如果 P 和 Q分布越接近,KL散度就越小;如果它们差异很大,KL散度值就会很大。这里我们大概知道KL散度越小两个概率分布越接近,KL散度越大,两个概率分布越不同即可。

KL散度的推导和解释

KL散度的定义来源于信息熵的概念。熵大家都知道这个概率,衡量系统无序性(混乱性)的程度,信息熵类比过去就行了,它是衡量某个分布中不确定性的量。给定一个概率分布 P,它的熵 H(P) 定义为:

                                              H(P) = - \sum_{x} P(x) \log P(x)

熵 H(P)描述了从分布 P 中产生随机变量时的不确定性或信息量。

除了熵之外,我们也经常在机器学习的训练迭代中见到交叉熵(Cross Entropy)这个概念,我们也简单介绍一下它。

H(P,Q) (交叉熵)描述了使用分布 Q 来对 P 进行编码时的开销,它定义为:

                                ​​​​​​​        ​​​​​​​        H(P,Q) = - \sum_{x} P(x) \log Q(x)

下面我们再来看看KL散度的公式:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​               D_{\text{KL}}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)}

嘿,我们发现了什么,KL散度、熵、交叉熵三者竟然有如下关系

                                               D_{\text{KL}}(P \parallel Q) = H(P, Q) - H(P)

这是巧合吗,肯定不是,要了解这其中的原因,我们还需要更深一步了解熵、交叉熵、KL散度的概念。

熵 H(P) 是用来衡量分布 P 的不确定性的。它告诉我们,如果我们根据分布 P 生成数据,平均需要多少信息(比如位数)来编码这些数据。换句话说,熵 H(P) 描述了我们在面对由 P 分布生成的数据时的最优编码长度

交叉熵 H(P,Q) 则是另一种度量,它表示我们使用分布 Q 来描述真实分布 P 时,编码的平均长度。这意味着,虽然真实数据是由分布 P 生成的,但我们假设它是由 Q 生成的,因此编码这些数据时的“开销”要比实际使用 P 编码时更高。

KL散度 D_{\text{KL}}(P \parallel Q)本质上是用来衡量使用分布 Q 代替真实分布 P 时,编码数据所需的额外开销。这个额外的开销正好就是交叉熵和熵之间的差值。因此,两者的差值表示了由于我们使用了错误的(或者叫估计的)分布 Q 而多消耗的编码长度,也就是信息损失

最后总结一下:

KL散度公式之所以是 H(P,Q)−H(P),并不是巧合,而是因为它精确地刻画了当我们使用错误分布 Q 来替代真实分布 P 时,所付出的“代价”或信息损失。这种损失正是我们在信息论中关心的额外开销,所以 KL 散度有着非常自然的数学形式。

KL散度的性质

KL散度有着以下几个重要的性质:

非负性:KL散度总是大于等于0,即 D_{\text{KL}}(P \parallel Q) \geq 0,我们可以这么理解,当我们用一个估计的分布Q去代替真实分布P的时候,肯定会有损失,最起码不会好过真实分布P,所以当P和Q分布相同的时候,KL散度为0,代表两个概率分布之间没有任何差异,反之它就会大于0,不可能小于0。具体的证明可以看看这位大佬的文章:KL散度(Kullback–Leibler divergence)非负性证明_kl散度非负性证明-CSDN博客

非对称性:D_{\text{KL}}(P \parallel Q) \neq D_{\text{KL}}(Q \parallel P)即KL散度不对称,因此不能作为一个严格的距离度量。例如,D_{\text{KL}}(P \parallel Q)可能很大,而D_{\text{KL}}(Q \parallel P)却很小。

在 DKL(P∥Q) 中,分布 P 被认为是真实分布,分布 Q 是近似的估计分布。这个公式表示了如果我们错误地使用 Q 而非 P 来编码数据,会带来多少信息损失。而在 DKL(Q∥P)中,分布 Q 被当作真实分布,而 P 则是估计分布。所以两者在信息论的意义上也是不同的。

以上解释为一种感性的解释,缺乏数学的理性,大家有兴趣可以自行推导一下(本菜鸡尝试了一下没推出来~wuwu,以图为证,下面就不会了,希望有大佬可以教教)

                        

不等式与信息熵:KL散度与熵相关联,熵 H(P)) 是衡量分布 P 的不确定性,而 H(P,Q) 是在使用 Q 进行编码时的平均编码长度。KL散度描述了这个长度的额外开销。

最后总结一下,这篇文章讲了一下KL散度的基本定义、相关推导和理解、以及性质,下一篇文章我可能会介绍一下KL散度在机器学习领域的应用,大家有缘再会!

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值