信息熵、相对熵、交叉熵的理解

信息熵、相对熵、交叉熵

信息论与信息熵

提到这三个概念,就不得不提到信息论。。人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文《A Mathematical Theory of Communication》(通信的数学理论)作为现代信息论研究的开端。香农也被称为是“信息论之父”。其实熵这个概念是香农,从热力学中借鉴过来的,热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。

信息论的基本想法是一个不太可能发生的事件居然发生了,要比一个非常可能发生的事件发生带来的信息要多。例如,说明天会发生日食,远比说明天太阳能照常升起带来的有效信息要多。

为了有效量化这一思想,特别是要符合以下三个性质:
(1) 非常可能发生的时间信息量要少,并且在极端情况下,确保能发生的事件应该没有信息量。
(2) 较不可能发生的事应具有更高的信息量。
(3) 独立事件应具有增量的信息。例如,投掷硬币两次正面面朝上的信息量,应该是投掷一次正面朝上的两倍

为满足以上的三个性质,我们首先定义一个自信息的概念。假设对弈事件 X = x X=x X=x,其自信息定义为:
I ( x ) = − l o g P ( x ) I(x)=-logP(x) I(x)=logP(x)
需要解释一下,此处的log以e为底,单位为奈特(nats),而对于以2为底的log,其单位通常为比特(bit)或者香农(shannons)。我们这里除非特殊提到,默认底数为e。
自信息有两层含义:①表示事件发生前,事件发生的可能性。②表示时间发生后,时间所包含的信息量,是提供给信宿的信息量,也是解除这种不太确定性所需的信息量。

那对于整个的概率分布,就可以定义出香农熵或称信息熵的概念,从而可以量化事件发生的信息,其定义如下:一个分布的信息熵是指一个分布中所发生事件的期望信息总和。


在这里插入图片描述

其实在这个公式中可以看出,越不可能发生的事件,熵就越大,包含的信息也就越多。再延伸一点,可以看出对于那些相对确定(即输出几乎可以确定)的分布,其熵会较低,反之熵会较高。对于连续的分布,信息熵被称为微分熵。

例如,在二值分布中,其信息熵的公式为: ( p − 1 ) l o g ( 1 − p ) − p l o g ( p ) (p-1)log(1-p)-plog(p) (p1)log(1p)plog(p)从下图可以看出,当概率较为不确定时,熵最大。


在这里插入图片描述

相对熵(KL散度)

对于两个基于自变量的单独的概率分布模型 P ( x ) P(x) P(x) Q ( x ) Q(x) Q(x),可以使用KL散度(Kullback-Leibler)即相对熵来衡量两个分布的差异。其公式定义如下:

在这里插入图片描述

KL不完全等价于距离公式,因为KL散度是不对称的 即在很多情况下, D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(PQ)不等于 D K L ( Q ∣ ∣ P ) D_{KL}(Q||P) DKL(QP) (前者表示从q到p的KL散度,后者表示从p到q的KL散度),因为最小化两个分布之间的KL散度,无非就两个任务。一种任务,让近似分布Q在真实分布P高概率的地方,放置高概率;另一种任务,让近似分布Q在真实分布P低概率的部分很少放置高概率。从下面这两个图的例子上来解释:


在这里插入图片描述 在这里插入图片描述

首先,p(x)是一个真实存在的分布,其由两个高斯分布合成,如上图所示。假设q(x)是一个用来逼近p(x)的分布,是个单高斯分布。那这样的任务可简写成最小化 D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL(pq)或者 D K L ( q ∣ ∣ p ) D_{KL}(q||p) DKL(qp)。不同的目标函数会产生不同的效果。下面这幅图的左边这幅图,目标就是在p(x)高概率的地方,q(x)放置高概率,也就是要最小化 D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL(pq)。而右边这幅图,目标是在p(x)低概率的地方避免放置高概率,最小化 D K L ( q ∣ ∣ p ) D_{KL}(q||p) DKL(qp),可以看到的是,q(x)拟合到了p(x)的左边的峰上,但其实可以选择右边的峰,得到相同的KL散度值。

我个人的理解是,第一个任务,我们只需要在p(x)高概率的地方出现高概率,那这样只要在p(x)两个峰的位置产生更多的高概率,就可以了,至于是否在低概率的地方,放置多少高概率,我并不关心。第二个任务也是同样的想法,不同的是,这样会把p(x)的低概率的地方会将q(x)包裹起来。

交叉熵

讲完KL散度也就是相对熵,就可以来看一下什么是交叉熵了。交叉熵结合softmax现在在深度学习和机器学习中使用最广,尤其是在判别模型中。首先是交叉熵的定义。


在这里插入图片描述

接下来回顾下,相对熵的定义。


在这里插入图片描述

其实可以看出 D K L D_{KL} DKL可以拆分成 − H ( P ) + H ( P , Q ) -H(P)+H(P,Q) H(P)+H(P,Q)。也就是说 H ( P , Q ) = H ( x ) + D K L ( P ∣ ∣ Q ) H(P,Q)=H(x)+D_{KL}(P||Q) H(P,Q)=H(x)+DKL(PQ)

从这也很好的解释了,为什么在用交叉熵作为loss值而不用相对熵。首先P是真值,也是我们要去逼近的值,通常其分布是固定的,那它的信息熵就是一个常数。既然是个常数,对训练的结果就没什么影响,那干脆直接就用交叉熵来作为loss function吧。

参考文献

《Deep learning 深度学习》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值