信息熵,交叉熵和相对熵

0 前言

上"多媒体通信"课,老师讲到了信息论中的一些概念,看到交叉熵,想到这个概念经常用在机器学习中的损失函数中。

这部分知识算是机器学习的先备知识,所以查资料加深一下理解。

 

1 信息熵的抽象定义

熵的概念最早由统计热力学引入。

信息熵是由信息论之父香农提出来的,它用于随机变量的不确定性度量,先上信息熵的公式。

信息是用来减少随机不确定性的东西(即不确定性的减少)。

我们可以用log ( 1/P )来衡量不确定性。P是一件事情发生的概率,概率越大,不确定性越小。

可以看到信息熵的公式,其实就是log ( 1/P )的期望,就是不确定性的期望,它代表了一个系统的不确定性,信息熵越大,不确定性越大。

注意这个公式有个默认前提,就是X分布下的随机变量x彼此之间相互独立。还有log的底默认为2,实际上底是多少都可以,但是在信息论中我们经常讨论的是二进制和比特,所以用2。

 

信息熵在联合概率分布的自然推广,就得到了联合熵

当X, Y相互独立时,H(X, Y) = H(X) + H(Y)

当X和Y不独立时,可以用 I(X, Y) = H(X) + H(Y) - H(X, Y) 衡量两个分布的相关性,这个定义比较少用到。

  

2 信息熵的实例解释

举个例子说明信息熵的作用。

例子是知乎上看来的,我觉得讲的挺好的。

比如赌马比赛,有4匹马{ A, B, C, D},获胜概率分别为{ 1/2, 1/4, 1/8, 1/8 },将哪一匹马获胜视为随机变量X属于 { A, B, C, D } 。

假定我们需要用尽可能少的二元问题来确定随机变量 X 的取值。

例如,问题1:A获胜了吗? 问题2:B获胜了吗? 问题3:C获胜了吗?

最后我们可以通过最多3个二元问题,来确定取值。

如果X = A,那么需要问1次(问题1:是不是A?),概率为1/2 

如果X = B,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为1/4 

如果X = C,那么需要问3次(问题1,问题2,问题3),概率为1/8 

如果X = D,那么需要问3次(问题1,问题2,问题3),概率为1/8 

 

那么为确定X取值的二元问题的数量为

 

回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:

 

在二进制计算机中,一个比特为0或1,其实就代表了一个二元问题的回答。也就是说,在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。

很显然,为了尽可能减少码长,我们要给发生概率 p(x) 较大的事件,分配较短的码长 l(x)。这个问题深入讨论,可以得出霍夫曼编码的概念。

 

霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:

  • 为了获得信息熵为 H(X) 的随机变量 X 的一个样本,平均需要抛掷均匀硬币(或二元问题) H(X) 次(参考猜赛马问题的案例)
  • 信息熵是数据压缩的一个临界值(参考码长部分的案例)

所以,信息熵H(X)可以看做,对X中的样本进行编码所需要的编码长度的期望值。

 

3 交叉熵和KL散度

上一节说了信息熵H(X)可以看做,对X中的样本进行编码所需要的编码长度的期望值。

这里可以引申出交叉熵的理解,现在有两个分布,真实分布p和非真实分布q,我们的样本来自真实分布p。

按照真实分布p来编码样本所需的编码长度的期望为,这就是上面说的信息熵H( p )

按照不真实分布q来编码样本所需的编码长度的期望为,这就是所谓的交叉熵H( p,q )

这里引申出KL散度D(p||q) = H(p,q) - H(p) = ,也叫做相对熵,它表示两个分布的差异,差异越大,相对熵越大。

 

机器学习中,我们用非真实分布q去预测真实分布p,因为真实分布p是固定的,D(p||q) = H(p,q) - H(p) 中 H(p) 固定,也就是说交叉熵H(p,q)越大,相对熵D(p||q)越大,两个分布的差异越大。

所以交叉熵用来做损失函数就是这个道理,它衡量了真实分布和预测分布的差异性。 

 

4 另外

哈夫曼编码和上面猜马例子的思想是一致的,使用概率和获胜概率对应,二进制码长和二元问题的数量相对应,最后算出来的平均码长和平均使用的二元问题数量相对应。

香农也证明了哈夫曼这样的编码是最佳编码(平均码长为能达到的最小的极限)。

从编码的角度,可以这样简单总结,信息熵是最优编码(最短的平均码长),交叉熵是非最优编码(大于最短的平均码长),KL散度是两者的差异(距离最优编码的差距)。

 

5 Reference:

信息熵是什么,韩迪的回答:https://www.zhihu.com/question/22178202

如何通俗的解释交叉熵于相对熵,最高赞匿名用户的回答和张一山的回答:https://www.zhihu.com/question/41252833

posted @ 2017-10-15 19:14 PilgrimHui 阅读(...) 评论(...) 编辑 收藏