为什么交叉熵和KL散度在作为损失函数时是近似相等的

本文介绍了熵、交叉熵和Kullback-Leibler(KL)散度的概念,探讨了在深度学习中,尤其是在生成对抗网络(GANs)中,为何交叉熵可以作为KL散度的近似。通过实例和Python代码,文章验证了最小化交叉熵与使用KL散度在效果上的等价性。
摘要由CSDN通过智能技术生成

975ce61da8afde2027a55af2e73f54f9.png

来源:DeepHub IMBA
本文约900字,建议阅读5分钟
在本文中,我们将介绍熵、交叉熵和 Kullback-Leibler Divergence [2] 的概念,并了解如何将它们近似为相等。

尽管最初的建议使用 KL 散度,但在构建生成对抗网络 [1] 时,在损失函数中使用交叉熵是一种常见的做法。这常常给该领域的新手造成混乱。当我们有多个概率分布并且我们想比较它们之间的关系时,熵和 KL 散度的概念就会发挥作用。

在这里我们将要验证为什么最小化交叉熵而不是使用 KL 散度会得到相同的输出。所以我们首先从正态分布中抽取两个概率分布 p 和 q。如图 1 所示,两种分布都不同,但是它们共享一个事实,即两者都是从正态分布中采样的。

46401ccc032b988272e727c1d2c4b074.png



熵是系统不确定性的度量。直观地说它是从系统中消除不确定性所需的信息量。系统各种状态的概率分布 p 的熵可以计算如下:

1aafc29fab925f86a127d4b0c31f0f33.png


交叉熵

交叉熵是指存在于两个概率分布之间的信息量。在这种情况下,分布 p 和 q 的交叉熵可以表述如下:

dc6e7ea41be99af6b4492d0ff976297e.png


KL散度

两个概率分布之间的散度是它们之间存在的距离的度量。概率分布 p 和 q 的KL散度( KL-Divergence )可以通过以下等式测量:

15772f65c64346c52f9ba8626db998e8.png

其中方程右侧的第一项是分布 p 的熵,第二项是分布 q 对 p 的期望。在大多数实际应用中,p 是实际数据/测量值,而 q 是假设分布。对于 GAN,p 是真实图像的概率分布,而 q 是生成的假图像的概率分布。

验证

现在让我们验证 KL 散度确实与使用交叉熵分布 p 和 q 相同。我们分别在 python 中计算熵、交叉熵和 KL 散度。

afb1c0ab1143daf7a7e15aedf6aaed33.png

ff33553f179b4a9c5cc998ff5ce50a2f.png

354153b6b20f70cdac4c01236c734289.png

右侧的第二项,即分布 p 的熵可以被认为是一个常数,常数的导数是0,对反向传播不会有影响。因此我们可以得出结论,最小化交叉熵代替 KL 散度会出现相同的输出,因此可以近似相等。

总结

在本文中,我们了解了熵、交叉熵和 kl-散度的概念。然后我们回答了为什么这两个术语在深度学习应用程序中经常互换使用。我们还在 python 中实现并验证了这些概念。完整代码参考这个地址: https://github.com/azad-academy/kl_cross_entropy.git

引用:

[1] Goodfellow, I. et al., Generative adversarial nets. In Advances in  neural information processing systems. pp. 2672–2680, 2014

[2]https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence

作者:J. Rafid S., PhD

编辑:黄继彦

e4ca75cc4d84a4d05ac1d96703aeb25d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值