信息熵—衡量系统所携带信息的统计量

信息熵是一种用来衡量信息量多少的统计量,我们经常可以通过熵的变化来观察系统的变化,因此在物理、化学、计算机学和数学等各个领域看到他的身影。


这有点儿像你在炖一碗浓汤,根据菜谱加入了各种食材和调味品后,总需要尝一尝味道。感觉咸了就加点儿糖,感觉淡了就加点儿盐,不咸不淡时就刚刚好,而怎么调都不对味就只好倒掉重做啦。


由此可见,了解了信息熵,很多算法都会变得很好理解。今天我们就试着说一下,到底熵是个什么东西呢?


1信息熵


从定义上说,信息熵是一个数学期望,衡量的是一个系统中可携带的信息量的大小。


换一个直观的角度说,当我们遇到一个随机事件时,我们需要知道多少信息(注意,这里的信息是可以计算的,单位一般是bit,就是比特币的那个比特)才能断定这个事件到底会不会发生。


下面,我们不管三七二十一的先给出其公式如下:

关于公式的解释网上有很多栗子,我们结合自己的理解,整理出了两个比较好理解的。


解释一


小明很喜欢玩游戏,即使上课也不能自拔。爸爸被老师约谈后决定惩罚小明,于是想了一个以德服人的办法。爸爸拿来一个箱子,跟小明说:我们来玩个游戏。


题目1:这里面有橙、紫、蓝、青四种颜色的小球,个数相同(即每种各占1/4),现在我从中拿出一个小球,你要猜我手中的小球的颜色。每局游戏你可以提任意多个问题,但是只能猜一次

这个游戏我会跟你玩10局,每局里你每提一个问题就一个星期不能玩游戏,但是如果你猜错一次或者放弃游戏,我就会直接把你送去孤儿院,再也没有机会继承每分钟几千万收入的商业帝国!所以你要保证每次有100%的把握时再猜哦!

10局结束后,我会计算平均每局提了多少问题作为惩罚标准,现在开始!


小明虽然感受到了来自爸爸深深的恶意,但还是认真思考了一下。小明是王者段位的强者,立刻想到了最优的策略去提问。


假设爸爸拿着的球为一个随机事件X,那么这时的小明只要提2个问题就一定能到答案。怎么提问?请看下图:

如果球X=橙色,小明只需要提问2次(是橙或紫色吗?答案是的;是橙色吗?答案是的,游戏结束)。


就这样,他用2个问题就赢得这一局,而他通过这样的方式猜中的概率为1/4(因为爸爸有1/4概率抽到橙色)。


同理,对于任何球而言,小明都可以通过2个问题终结游戏。由于每种球出现的概率为1/4,那么从理论上,我们就可以计算出小明猜球次数的数学期望为:

H(x) = 1/4*2+1/4*2+1/4*2+1/4*2 = 2

这里的H(x)=2可以理解为小明想要确定“球的颜色”这个随机事件,平均需要提2个问题。


题目2:第一个游戏结束后,爸爸想想说2个星期还挺长的,我们再来玩一个游戏,如果这次比上次提问的次数要少,就按这次的惩罚算。这次箱子中橙、紫、蓝、青四种颜色小球的比例不一样了,分别为1/2,1/4,1/8,1/8,其他条件不变,游戏开始!


小明毕竟王者段位,恐怖如斯,一眼就发现这次应该先从橙色开始问了,因为有50%的概率可以一次就猜对啊!如果错了那么就问紫色,猜中的概率也比另外两个高整整一倍。如果还是不对,那么就问蓝色,这次无论对不对,都一定有答案了。按照这个策略,提问方式变为了下图所示:

如果X=橙色,那么小明只需要问1次(是橙色吗?答案是的,游戏结束),猜对的概率为:1/2


如果X=紫色,那么小明需要问2次(是橙色吗?答案不是;是紫色吗?答案是的,游戏结束),的概率为:1/4


如果X=蓝色,那么需要问3次(是橙色吗?答案不是;是紫色吗?答案不是;是蓝色吗?答案是的,游戏结束),猜对的概率为:1/8


如果X=青色,那么需要问3次(是橙色吗?答案不是;是紫色吗?答案不是;是蓝色吗?答案不是,游戏结束),猜对的概率也为:1/8


看起有时1次就结束了,有时3次才结束,但这一轮小明提问次数的数学期望变为了:

H(x) = 1/2*1+1/4*2+1/8*3+1/8*3 = 1.75

真的比前一轮游戏少了1/8哎,赞!


题目3:第二轮游戏结束后,爸爸说游戏还没结束,我们再玩一个游戏,这次箱子中全部是橙色球,你继续猜。


小明心想爸爸果然还是爱我的,这次根本不用提问了,只要猜橙色就好了,这一轮提问次数的数学期望变成了0。


于是小明第三轮没有问一个问题就终结了全部10局游戏,于是爸爸决定,惩罚他1.75个星期不能玩游戏。毕竟,爸爸其实并没有说过要按最后一轮的结果计算惩罚... ...


好了,我们先忽略可怜的富二代小明,来看看上面的栗子中的一个规律。


对不同的球而言,确定它的颜色所需要的提问次数m,跟球本身出现的概率p是相关的,当概率为1/2时,次数为1,概率为1/4时,次数为2,概率为1/8是,次数为3……那么一个很简单的能满足这个规律的公式即为:

在这个公式中,log函数的底为2,因为每次提问,我们都可以获得“对”和“错”两个结果。


如果我们用0(猜错)和1(猜对)对提问的结果进行表示,那么在题目1中,橙色可以表示为“11”、紫色为“10”、蓝色为“01”、青色为“00”。

题目2中,四个球从左到右可以分别表示为:”1”、”01”、”001”和”000”。


那么猜球次数的期望,用数学公式就可以表示为:

而这恰恰就是传说中的信息熵的公式了!


在我们的栗子中,每个问题都只有2个结果,我们可以用{0,1}记录结果,因此log的底为2,此时信息熵的单位就是bit(比特),而不同底的结果之间是可以相互转换的。


由此我们给出熵的第一种解释:

信息熵表示,当我们知道根据系统的真实分布(不同小球所占比例)时,我们就能找到一个最优策略,以最小的代价(提问次数)消除系统不确定性(确定球的颜色),而这个代价大小就是信息熵。


从这个角度看,题目1的熵>题目2的熵>题目3的熵意味着,随机性越大的系统(内部数据分布越均匀的系统),由于各种事情都可能发生,要消除系统的不确定性所需要的信息也就越多。当所有可能性发生的概率相同时,系统的熵达到最大值



解释二


根据信息熵的定义,我们可以得到它的三条性质:

  • 单调性,即发生概率越高的事件,其所携带的信息量越低。怎么理解呢?一个极端案例就是“太阳从东方升起”。只要太阳系没有被二向箔平了,这事儿就一定会发生,那么这件事中没有任何不确定性,也就不携带任何信息了。从信息论的角度说,这句话是一句废话,说了等于没说,没有消除任何不确定性,因此信息量为0。

  • 非负性,即信息熵不能为负。这个很好理解,因为负的信息意味着,你在得知某个信息后反而不如不知道,增加了系统的不确定性,这是不合逻辑的。

  • 累加性,即多个独立随机事件同时发生的总的不确定性,可以表示为各事件不确定性之和。

根据信息熵的性质,我们知道信息熵满足以下限制:

以p(a)表示事件a发生的概率,I(p(a))表示确定a事件是否发生所需要的信息量,那么:

1.  对于事件a、b,如果其中一条有更小的概率发生,那么我们认为它的发生会带来更大的信息量即:

0<p(a)<p(b)<1,则l(p(a))>l(p(b))


2.  如果一个事件a发生的概率趋于0,那么我们认为它的发生将带来近乎无穷大的信息量,因为这个消息会刷新世界观(例如黑天鹅事件),即:

p(a) -- >0,则l(p(a))  --> infinity


3.  如果一个事件a发生概率为1,那么它发生了,我们觉得理所当然,这个事件就完全没有信息量,即:

p(a)=1,则l(p(a)) = 0


4.   两个独立事件联合信息量应该等于他们各自信息量的和,因为人们可以分别从其中得到信息,即:

p(a,b) = p(a)p(b),则I(p(a,b))=I(p(a))+I(p(b))


在数学上可以证明,满足以上1-4点的信息函数I(·)一定有以下形式:

这里log的底数可以是大于1的任何数。一般我们考虑以2为底,此时熵的单位即为bit,因为通常我们用二进制来对结果进行表示。


在计算机中,最基础的运算是二进制的,每个bit都可以用来表示一个二元问题的答案,那么一个事件的信息熵就是“可以表示这个事件的最短编码的长度的期望(例如我们用来表示小明提问结果的那一堆0和1的组合)


2交叉熵


在我们理解了熵和分布之间的关系后,我们再介绍一个熵的子孙--交叉熵。


交叉熵是用来衡量在已知真实分布的情况下,使用根据非真实分布所制定的最优策略去消除系统不确定性时,所需要付出的代价的大小。同样先上公式:


其中p(x)表示系统中各个事件的真实分布,q(x)表示同样系统的任意分布。


让我们回到小明的第二轮游戏中,感受一下王者的智商碾压。那时盒子里的橙、紫、蓝、青四种球的概率分别为1/2,1/4,1/8,1/8,但如果小明还是选择第一轮游戏的策略提问,会发生什么呢?答案是: 

H(x) = 1/2*2+1/4*2+1/8*2+1/8*2 = 2

显然这个策略不如小明给出的策略。


也就是说,当我们明知道一个系统里事件的真实分布时,如果不使用真实分布制定最优策略,要消除同样的不确定性,就一定要为此付出更多的代价。


反过来说,如果我们不知道一个系统内的真实分布,我们猜测了一个分布并据此制定了相应的最优策略,但是实际操作后发现熵的值与预期的不同,那么就可以确定我们猜测的分布肯定是猜错了!


因此,交叉熵就经常被用来衡量两个分布p(a)和p(b)之间的相似性。


两个分布越相似,则交叉熵越小;当p(a)=p(b)时我们有最小值,这个最小值即为p(a)的熵(当然也可以说等于p(b)的熵,此时两个分布的熵相等)。


3相对熵


相对熵用来衡量两个概率分布之间的差异。


假设我们想知道某个策略和最优策略之间的差异,我们就可以用相对熵来衡量两者之间的差异。相对熵的公式如下:

从数学的推导我们可以发现,相对熵其实就是交叉熵减去信息熵,而交叉熵的含义是根据非真实分布所制定的最优策略去消除系统不确定性时,所需要付出的代价的大小。


可见当你制定最优策略时,所了解/猜测的分布越接近真实发分布,那么你和最优策略之间的差距也就越小,相对熵也会越小。



4损失函数

从前面的分享中,我们发现:其实他们俩之间只相差一个信息熵而已。而对于一个特定的系统来说,它的信息熵是一定的。


因此,我们可以认为交叉熵和相对熵是等价的,都可以用于衡量两个分布(猜测的分布和真实的分布)之间的差异。


由于交叉墒的计算比较简单,很多机器学习算法都会将其作为损失函数来使用,它的数值越小,则两个分布间的差异越小。


但是注意,交叉墒的最小值不是0,而是系统的信息墒哦!


另外,我们还发现一个常常被大家忽略了的重要事实:我们在逻辑回归中使用的那个传说中的最大似然估计,在本质上竟然与交叉墒是一模一样的!


有些统计学底子的朋友可能要问了,一个信息统计量和一个大名鼎鼎的参数估计法怎么会扯上关系呢?想了解具体内容,就请关注我们的公众号(智能方橙式)吧~真相只有一个,欲知后事如何,且听下回分解!







猜你喜欢

转载自blog.csdn.net/s373149591/article/details/80162743
今日推荐