2.2 信息量和信息熵
2.2.1 信息量
所谓信息量就是信息多少的量度。假设信源发送方A发送消息给接收方B,所发出的消息是随机的,在消息收到之前,接收方不能确定会收到什么消息,也就是无法消除消息的不确定性,这种不确定性越大,接收方B在收到完整消息时所获得的信息量就越大;如果消息在传输过程中受到干扰,导致接收方B对收到消息的不确定性减小甚至不确定性没有改变,那么获得的信息量就较少或者信息量为零。下面举几个简单例子来说明。
“太阳今天早晨竟然从东边升起!”
“吸烟有害健康!”
“天冷要多穿衣服!”
当你看到上面几个消息时,你一定会觉得很无聊,因为我们都知道这些事情,它们发生的概率几乎为1,所以没有多少信息。
假如你看的新闻标题是:“中国男篮30分大胜美国梦之队”“中国足球队5比0大胜巴西队”,你会立刻产生兴趣,因为这些事情发生的可能性太小。因此,一件事情包含的信息和它发生的概率成负相关关系(即概率越大信息越少,概率趋近于0,信息趋近于无穷大),信息量的大小跟这种信息不确定的消除有关。
那么可以定义信息量为:
信息量=不确定性减少量(消息收到前的不确定性-消息收到后的不确定性)
当没有干扰时,收到信息后的不确定性为零,那么此时获得的信息量=消息发出前的不确定性,也可以认为是信源消息所含有的信息量。用公式来表示的话,就是某件事发生所含有的信息量等同于该事件发生的先验概率函数

式中,P(xi)是事件xi发生的先验概率,而I(xi)表示事件xi发生所含有的信息量,称之为xi的自信息量。
按照刚才的分析,函数f[P(xi)]应该满足如下条件:
(1)f[P(xi)]与概率P(xi)负相关,即当P(x1)>P(x2)时,f[P(x1)]<f[P(x2)]。
(2)P(x1)=1,那么f[P(x1)]=0。
(3)P(x1)=0,那么f[P(x1)]=∞。
(4)I(AB)=I(A)+I(B),即两个毫不相关的事件A和事件B同时发生所提供的信息量等于两个事件各自发生的信息量之和。
1928年R.V.L.哈特莱首先提出信息定量化的初步设想,他将消息数的对数定义为信息量。从数学上可以证明对数形式能够满足刚才所提条件。若信源有p种消息,且每个消息是以相等可能产生的,则该信源的信息量可表示为

其中,p为事件发生的概率,I为该事件的自信息量。如果对数的底取为2,那么就是最常见的信息度量,单位为比特(bit),如果取自然对数的底e,那么单位为奈特(nat),如果底数取为10,那么单位为哈特(hart),通常情况下,都采用以2为底的对数。
由上式可以看出一种特殊情况:若p=1/2,那么I=1bit,也就是二选一时的信息量。这也说明了二元数字所能提供的信息量为1bit。
自信息量只是表征信源本身的信息特征,但在一般的通信系统里,信源、信道和信宿必须整体进行考虑。假设信源输出为X,信宿输入为Y,如图2-1所示,那么通常表示某事件在某种条件下出现,这时所带来的信息量就需要在X、Y集合中进行考虑,并且要用条件概率来进行描述。

图2-1 信息系统模型
假设在y条件下,随机事件x的条件概率为P(x|y),则x的出现所引发的信息量称为

反之,在x条件下,y所带来的信息量也是条件自信息量:

对于通信系统而言,该条件概率只与信道特性有关,因此上述条件自信息量可以看作是信道给出的信息量。
接下来看第三个概念:互信息量。
对两个离散随机事件集合X和Y,事件yi的出现给出关于事件xi的信息量,定义为事件xi和yi的互信息量I(xi;yi),其表达式又分为两种情况。
第一种,信道没有干扰,信宿能够完全获取信源发出的信息量,那么

第二种,信道有干扰,信宿所受到的信息中有干扰信息,那么按照之前条件自信息量分析可知,此时

互信息量的性质有如下三条:
(1)对称性
由上式可以分析事件xi的出现给出关于事件yi的信息量,可以得到:

即I(xi;yi)=I(yi;xi),称为互信息量的对称性。
从上式还可以得到,P(xi)和P(yi)是事件发生的先验概率,而和
是后验概率,那么:

这说明互信息量描述了两个随机事件之间的统计约束程度,如果先验概率已确定,后验概率就决定了信息的流通。
(2)值域为实数
互信息量的值可以为正数、零或者负数,按照其定义公式,可以分为几种情况进行讨论:
1),那么I(xi;yi)=I(xi)。
后验概率为1,说明信宿获得了信源全部信息量,即信道没有干扰。
2)P(xi)<<1,那么I(xi)>
,
>0。
后验概率大于先验概率,说明收到事件yi能够消除一些关于信源是否发生事件xi的不确定度,就是说yi获得了关于xi的信息量。这也说明,虽然信道有干扰,信宿仍然可以从信源中获取信息量。
3)=P(xi),那么I(xi;yi)=I(xi),
=0。
后验概率等于先验概率,说明收到事件yi对于信源是否发生事件xi没有影响,就是说从yi那里无法获得关于xi的信息量,也就是说yi与xi无关。
4)0<<P(xi),那么I(xi)<
,
<0。
后验概率小于先验概率,说明收到事件yi后对于信源是否发生事件xi有负影响,就是说虽然给出了信息量,但不是关于xi的信息量。
(3)不大于其中任一事件的自信息量
由于≤1,那么

同理≤1,那么

说明互信息量是描述信息流通的物理量,流通量的数值不能大于被流通量的数值。同时也说明某事件的自信息量是其他事件所能提供该事件的最大信息量。
最后来看第四个概念:平均互信息量。
互信息量只能定量地描述信源中发出某个消息xi,信宿中出现某一消息yi时,流经信道的信息量,不能作为信道上信息流通的整体测度。如果要从整体的角度并且在平均意义上来度量信宿每接收到一个符号而从信源获取的信息量,那么就要引入平均互信息量这个概念。
两个离散随机事件集合X和Y,若任意两事件间的互信息量为I(xi;yi),则其联合概率加权的统计平均值,称为两集合的平均互信息量,用I(X;Y)表示。
当信宿收到某一符号yi后,从中获得关于输入符号的平均信息量,应该是在条件概率空间中的统计平均,用I(X;yi)表示:

再对其在集合Y中取统计平均,得到

上式即是平均互信息量的数学表达式。
2.2.2 信息熵
一个信源的信息量有多少,很大程度上就是由它输出的多种情况及各种情况的概率分布所决定的。信源发出的消息xi不同,其发生的概率P(xi)也不同,那么它们所含有的信息量I(xi)就会不同,因此自信息量I是一个随机变量,不能作为整个信源的总体信息测度。如果要描述信源整体的信息量,那么应该是信源各个不同符号xi(i=1,…,N)所包含的自信息量I(xi)在信源概率空间P(X)={P(x1),P(x2),…,P(xN)}中的统计平均值,称之为平均自信息量,即

该表达式与热力学中的熵表达式类似。熵在热力学中的意义是不确定度。1948年,香农(Shannon)在他著名的论文《通信的数学原理》中指出:“信息是用来消除随机不确定性的东西”,并提出了“信息熵”的概念(借用了热力学中熵的概念),来解决信息的度量问题。在信息论中将上式中的H称为信息熵。对于单符号离散信源,信息熵是信源每发一个符号所提供的平均信息量,量纲为信息单位/信源符号。如果选取以r为底的对数,那么信息熵选用r进制单位,即

其中变量X指某随机变量的整体,如果选以2为底的对数,信息熵的单位是比特/符号。
我们以最简单的单符号二元信源为例进行说明,该信源仅取0和1两个元素,那么其概率为p和1-p,其熵为:

当p=0或1时,H(X)=0,当时,H(X)=1。图2-2给出了二进制熵函数的曲线。
由图可见,离散信源的信息熵具有:
1)非负性,即收到一个信源符号所获得的信息量应为正值,H(X)≥0。
2)对称性,即对称于p=0.5。
3)确定性,H(1,0)=0,即p=0或p=1已是确定状态,所得信息量为零。

图2-2 二进制熵函数
4)极值性,当p=0.5时,H(X)最大;而且H(X)是p的上凸函数。
【例2-1】看一个信息熵的例子,假设世界杯决赛圈32强已经产生,那么随机变量“世界杯足球赛32强中,谁是世界杯冠军?”的信息量是多少呢?
【解】根据香农给出的信息熵公式,对于任意一个随机变量X,它的信息熵定义如下,单位为比特/符号:

那么上述随机变量(谁获得冠军)的信息量是:

其中,P1,…,P32分别是这32强球队夺冠的概率。
容易验证,以下几个结论成立:
1)32强球队夺冠概率相同时,H=5。
2)夺冠概率不同时,H<5。
3)H不可能大于5。
对于第一个结论,结果是很显然的,夺冠概率相同,即每个球队夺冠概率都是1/32,所以

对于第二个和第三个结论,可以使用拉格朗日乘子法进行证明。这实际上是说系统中各种随机性概率越均等,信息熵越大,反之熵越小。
【例2-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的取值,即哪一个选手赢了比赛。
如果X=A,那么需要问1次(问题1:是不是A?),概率为1/2;
如果X=B,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为1/4;
如果X=C,那么需要问3次(问题1,问题2,问题3:是不是C?),概率为1/8;
如果X=D,那么同样需要问3次(问题1,问题2,问题3),概率为1/8。
那么很容易计算,在这种问法下,为确定X取值,需要的二元问题数量为:

如果按照信息熵的定义,可以得到:

前面分析过,在二进制中,一个比特为0或1,就代表了一个二元问题的答案。那么在计算机中给哪一位选手夺冠这个事件进行编码,所需要的平均码长为1.75个(7/4个)比特。很显然,为了尽可能减少码长,要给发生概率较大的事件,分配较短的码长,深入讨论这个问题就可以得出霍夫曼编码的概念。
例如本例题中,对于{A,B,C,D}四个选手,可以分别由{0,10,110,111}来表示,如果把最短的码“0”分配给发生概率最高的A,码“10”分配给B,以此类推,得到的平均码长为1.75bit。但是如果反过来,给A分配最长的码“111”,以此类推,那么平均码长就会变成2.625bit。霍夫曼编码就是利用了这种大概率事件分配短码的思想,并且证明这种编码方式是最优的。
从香农给出的数学公式可以看出,信息熵其实是一个随机变量信息量的数学期望。
前面给出了条件自信息量的定义,同样可以得出条件熵的定义:

扩展到整个Y集合,可以得到:

定义如下:对于联合符号集X|Y,在给定Y的条件下,用联合概率P(xy)对X集合的条件自信息量进行加权的统计平均值,称为X的条件熵。因此条件熵可以看作是信道给出的平均信息量。
【例2-3】已知X,Y∈{0,1},X、Y构成的联合概率为:P(00)=P(11)=1/8,P(01)=P(10)=3/8,计算条件熵。
【解】由,可以得到

同理,可以得到

由,i,j∈{1,2},可以求得

同理,,可以求得
