我们常说信息有用,那么它的作用如何客观、定量地体现出来呢?信息用途的背后是否有理论基础呢?这个问题一直没有很好的回答,直到1948年,香农在他的论文“通信的数学原理”中提到了“信息熵”的概念,才解决了信息的度量问题,并量化出信息的作用。
一条信息的信息量与其不确定性有着直接的关系,比如我们要搞清一件非常不确定的事,就需要大量的信息。相反如果对某件事了解较多,则不需要太多的信息就能把它搞清楚。所以从这个角度看,可以认为,信息量就等于不确定的多少。那么如何量化信息量的度量呢?2018年举行世界杯,大家很关系谁是冠军。假如我错过了看比赛,赛后我问朋友,“谁是冠军”?他不愿意直接告诉我,让我每猜一次给他一块钱,他告诉我是否猜对了,那么我需要掏多少钱才能知道谁是冠军?我可以把球编上号,从1到32,然后提问:冠军在1-16号吗?依次询问,只需要五次,就可以知道结果。所以谁是世界杯冠军这条消息只值五块钱。当然香农不是用钱,而是用“比特”这个概念来度量信息量。一个比特是一位二进制数,在计算机中一个字节是8比特。
信息熵和书本的大小?在上面的例子中,消息的信息量是5比特,如果有朝一日是64支球队进入比赛,那么这条消息就是6比特。发现了吗,信息量的比特数和所有可能情况的对数函数log有关。聪明的你可能不需要猜五次就知道谁是冠军,因为像西班牙、巴西、德国这样的球队夺冠的可能比日本、韩国等球队大得多,因此猜测的时候不需要把32支球队等分为两组,而可以把少数几支最可能的球队分一组,这样也许三次或四次就能猜出结果。因此当每支球队夺冠的概率不等时,“谁是世界杯冠军”的信息量比5比特少。
它的准确信息量应该是H=-(p1*logp1+p2*logp2+...+p32*logp32),p1...p32分别是32支球队夺冠的概率。香农把它称为“信息熵”,一般用符合H表示,单位是比特。所以一本50万字的中文书平均有多少信息量?常用的汉字大约有7000个,假如每个字等概率,大约需要13比特(即13位二进制数)表示一个汉字。但汉字的使用频率不是均等的,实际上10%的汉字占常用文本的95%以上,因此即使不考虑上下文相关性,每个汉字的信息熵大约只有8-9比特,如果再考虑上下文相关性每个汉字的信息熵就只有5比特左右。所以,一本50万字的中文书,信息量大约是250万比特。采用比较好的算法压缩,整本书可以存成一个320KB的文件。直接用两字节的国际编码存成需要1MB左右。这两个数量的差距,在信息论中称作“冗余度”。