谈谈信息熵--信息的度量

      

    信息是一个抽象的概念,很难给信息下一个定义。我们常常说信息的多少,这个多少却很难度量。比如我们说一部中文字典到底有多少信息量,一本50多万字的《史记》又有多少信息量。究竟信息背后有没有理论基础呢?在香农信息论诞生以前,我们没有准确的数学方法来描述信息。直到1948年,香农在他著名的论文“通信的数学原理”中提出了“信息熵”的概念,信息的度量问题才得以解决。香农的信息论如今在信息学、通信、计算机理论等方面中发挥了巨大的作用。

     

什么是熵呢?熵起源于化学及热力学,是一种能量退化的指标(详情参考wiki)。在信息论中,熵用来表示信息的不确定性的程度。什么是不确定性程度呢?简单地说,不确定性越多,我们就需要越多的信息来了解,信息越多,不确定性也就越大,比如我们需要搞清楚一件非常不确定的事,就需要大量的信息。举个例子,我们在和同学吃饭时偶尔会玩的猜数字游戏,一个同学A确定好(0,100)的数字,然后其他同学轮流猜。B同学很可能会猜50,然后确定A同学会告诉那个数字是否为50,如果不是,是在(0,50)还是(51,100)的数字,然后C同学也很可能会再折半猜数字。这个折半猜有什么好处呢?如果大家学过计算机程序设计的二分查找算法的话,就会知道这样折半查找平均情况下是最快的,查找平均复杂度为O(log n)(底数为2,原因是我们每查找一次,就可以减少一半的搜索范围),意思是说我们最多用log n这样的查找次数就能查找到我们需要的数字了,但是前提是给我们的数据是有序的。所以猜数字游戏最多猜7次就能成功了!我们就说A同学的数字的信息量为7,用计算机二进制的编码来解释的话,用7个二进制位就能表示0-100内的所有数字啦。

  假设考虑一个离散的随机变量x,对x的信息度量要考虑到x的概率分布。显然,如果x只有一个值a,P(x=a)=1,则它的信息含量为0,不确定性程度为0,这是个必然事件,比如说明天太阳从东方升起,一般情况下我们对确定性事件都没多大兴趣。假设h(x)是描述p(x)不确定性程度的量化函数,如果有两个不相关的事件x和y,则观察到它们同时发生的信息含量为h(x,y)=h(x)+h(y),而x和y是不相关事件,我们有p(x,y)=p(x)p(y)。容易看出h(x)是p(x)的对数函数,h(x) = −log2 p(x)。如果p(x)很小,显然h(x)很大,不确定性很大,如果p(x)为1,则不确定性为0。如果发送者要发送随机变量x给接受者的话,那么,平均的信息期望值为

       

      这里的x有n个值,每个值出现的概率分别为p_i(x),上面的公式就是信息熵。如果x是个连续值,按照积分公式表示平均信息期望值为

    


       现在假设X和Y两个随机变量,X是我们需要了解的,那么X的熵的定义我们在上面已经给出来了,它的不确定性就是那样大。现在假定我们还知道Y的一些情况,包括它和X一起出现的概率(联合概率分布)以及给定Y情况下X的概率分布(条件概率分布),那么我们可以定义X和Y的联合熵(joint entropy),联合熵就是两个变量比如x,y同时出现的信息熵,公式如下:

        或      


       也可以定义X在给定条件Y情况下的条件熵,为了方便,这里仅写出连续值的,离散情况也类似。

      


      那么H(X)与H(X|Y)是啥关系呢? 我们要知道X的情况,一开始只知道它的概率分布,然后别人给了我们一些关于Y的情况,以及给定Y,X的情况,这样我们是不是能够更加了解X呢?换句话说,我们是不是能够减少X的不确定性呢?答案是可以的。用上面的式子表示为H(X) >= H(X|Y)。什么情况下等于成立呢?当我们获取到的信息Y给X没有关系时成立。

     如何证明上面的结论?我们要证明H(X) >= H(X|Y)。

   

     这个就是X和Y的互信息的定义,意思是给定Y的情况X不确定性减少的程度,也叫信息增益。在机器学习与数据挖掘的决策树中用到了,关于决策树我以后会专门介绍。

      你也许会说,给出了这个表达式,还是没有证明H(X)>=H(X|Y)呀,或者说这个结果一定是大于等于0的吗?


     要证明这个,需要用到凹凸函数的一些性质。由于这个证明内容与相对熵类似,我先说一下相对熵(互信息能够被表达为相对熵,详情参考http://en.wikipedia.org/wiki/Mutual_information)。


     假设关于x有两个分布,一个是p(x),另一个是q(x)。p(x)是数据x的真实分布,一般情况下我们不可能知道,q(x)是我们用模型根据数据得到的分布,那么怎么衡量这两个分布的差异呢?相对熵就是干这样的事情的。

    

       相对熵也表示如果我们要用q(x)编码x来传输x,相比用真实分布p(x)来确定x需要的额外的信息量(这句话不太好理解,我是在PRML上看到的,不明白)。

       相对熵的性质就是它是不小于0的。为什么呢?我上面说过要用到凹凸函数的性质,首先我们看一下什么是凸函数。

   

     凸函数的 

       意思是对于函数上的任两点,这两点组成的线段在函数图像的上方!凸函数满足:,其中

  也即   。这个就是Jensen不等式,

 

     KL(p||q)就是这样的一个凸函数(为什么呢?) 。所以有下面的式子:

   

     如果q与p相等,那么KL就是0。注意KL(p||q)与KL(q||p)是不一样的。

     证明了相对熵是不小于0的,那么互信息是否也不小于0呢?



参考资料:

Pattern Recognition and Machine Learning, Bishop,第二章

数学之美,吴军,第六章


转载请注明出处,http://blog.csdn.net/freeliao/article/details/17955745


   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章