1948年,香农在著名论文“通讯的数学原理”中提出了“信息熵”的概念,解决了信息的度量问题,而且量化出信息的做用。算法
香农使用了“比特”(Bit)这个概念来度量信息量。一个比特是一位二进制数,计算机中的一个字节是8比特。举个例子,32支球队参加世界杯,赛后猜想谁是冠军,一般只须要5五次,就能够获得答案。(把球队编号1-32,而后提问相似的问题:“冠军在1-16号中吗?”,只须要提问五次),能够发现,信息量的比特数和全部状况的对数函数log有关。(log32=5,对数以2为底)函数
固然32支球队的夺冠几率不可能彻底相同,所以,当每支球队夺冠的可能性(几率)不等时,“谁是世界冠军”的信息量比5比特少。香农指出,它的准确信息量应该是:编码
-(p1*log(2,p1) + p2 * log(2,p2) + ... +p32 *log(2,p32))spa
其中,p1,p2 , ...,p32 分别是这 32 个球队夺冠的几率。香农把它称为“信息熵” (Entropy),通常用符号 H 表示,单位是比特。数学上能够证实,上面公式的值不可能大于五。仅当32个球队夺冠几率相同时,对应的信息熵等于五比特。翻译
有了"熵"的概念,就能够解决诸如"一本50万字的中文书平均有多少信息量"。经常使用的汉字(一级二级国标)大约有7000字。假如每一个字等几率,那么大约须要13比特表示一个汉字。但汉字的使用是不平衡的,实际上,前10%的汉字占经常使用文本的95%以上。所以,即便不考虑上下文的相关性,只考虑每一个汉字的独立几率,那么,每一个汉字的信息熵大约也只有8-9比特。orm
若是再考虑上下文相关性,每一个汉字的信息熵就只有5比特左右。因此,一本50万字的中文书,信息量大约是250万比特。若是用一个好的算法压缩一下,整本书能够存成320KB的文件。若是直接用两字节的国际编码存储这本书,大约须要1MB左右,是压缩文件的三倍。这两个数量的差距,在信息论中称做”冗余度“(Redundancy)。对象
信息和消除不肯定性是相联系的。在英语中,信息和情报都用information表示,情报的做用就是消除不肯定性。有些时候,在战争中一比特的信息能抵过千军万马。二战中,纳粹德国兵临苏联莫斯科城下,斯大林在欧洲已经无兵可派,而他们在西伯利亚的中苏边境却有60万大军不敢使用,由于苏联人不知道德国的轴心国盟友日本当时的军事策略是北上进攻前苏联,仍是南下和美国开战。游戏
若是是南下,苏联能够放心撤回60万大军增援莫斯科,历时告诉咱们日本选择了南下。斯大林不能猜,由于猜错的后果是致命的。最后,传奇间谍佐尔格向莫斯科发去了信息量仅1比特、却价值无限的情报(信息):"日本将南下",因而前苏联就把西伯利亚全部的军队调往了欧洲战场。事件
一个事物内部会存在着随机性,也就是不肯定性,假定为U,而从外部消除这个不肯定性惟一的方法是引入信息I,而须要引入的信息量取决于这个不肯定性的大小,即I>U才行。反之,若是没有信息,任何公式或数学的游戏都没法排除不肯定性。几乎全部的自认语言处理、信息与信号处理的应用都是一个消除不肯定性的过程。数学
以网页搜索为例:网页搜索本质上就是要从大量(几十亿个)网页中,找到和用户输入的搜索词最相关的几个网页,它本质上也是利用信息消除不肯定性的过程。若是提供的信息不够多,好比搜索词是经常使用的关键词,那么会有好多相关的结果,这时正确的作法是挖掘新的隐含的信息,好比网页自己的质量信息。若是这些信息仍是不够消除不肯定性,不放再问问用户。这就是相关搜索的理论基础。合理利用信息,是作好搜索的关键。
知道的信息越多,随机事件的不肯定性就越小。这些信息,能够是直接针对咱们要了解的随机事件,也能够是和咱们关心的随机事件相关的其余(事件)的信息——经过获取这些相关信息也能帮助咱们了解所关注的对象。在数学上能够严格地证实为何这些“相关的”信息可以消除不肯定性。这里有一个条件熵的概念。 信息的做用在于消除不肯定性,天然语言处理的大量问题就是找相关的信息。
当获取的信息和要研究的事物”有关系“时,这些信息才能帮助咱们消除不肯定性。香农在信息论中提出了一个”互信息“的概念做为对两个随机事件”相关性“的量化度量。好比“好闷热啊,要下雨了”,闷热和下雨直接的互信息很高。
在天然语言处理中,两个随机事件,或者语言特征的互信息是很容易计算的。只要有足够的语料,就不难估计出互信息。所以,互信息被普遍用于度量一些语言现象的相关性。机器翻译中,最难的两个问题之一是词义的二义性(歧义性)问题。好比Bush可翻译为美国前总统布什,也能够是灌木丛。
那么如何正确翻译呢?人们很容易想到要用语法、要分析语句等。其实,迄今为止,没有一种语法能很好的解决这个问题,真正简单却很是使用的方法是使用互信息。具体的解决办法大体以下:首先从大量文本中找出和总统布什一块儿出现的互信息最大的一些词,好比总统、国会、华盛顿等,固然,再用一样的方法找出和灌木丛一块儿出现的互信息最大的词,好比:土壤、植物等。有了这两组词,在翻译Bush时,看看上下文中哪些相关的词多就能够了。这种方法最初由吉尔、丘奇和雅让斯基提出的。
信息论中另一个重要的概念是“相对熵”,在英语中是Kullback-Leibler Divergence,是以它的两个提出者库尔贝克和莱伯勒的名字命名的。熵、条件熵和相对熵这三个概念与语言模型的关系很是密切。信息熵是对不肯定性的衡量,所以它能直接用于衡量统计语言模型的好坏。固然,由于有了上下文的条件,对高级语言模型,应该用条件熵。若是再考虑到从训练语料和真实应用的文本中获得的几率函数有误差,就须要再引入相对熵的概念。
贾里尼克从条件熵和相对熵出发,定义了一个称为语言模型复杂度的概念,直接衡量语言模型的好坏。复杂度有很清晰的物理含义,它是在给定上下文的条件下,句子中每一个位置平都可以选择的单词数量。一个模型的复杂度越小,每一个位置的词就越肯定,模型越好。
李开复博士在介绍他发明的Sphinx语音识别系统的论文中谈到,若是不用任何语言模型(即零元语言模型)时,复杂度为997,也就是说句子中每一个位置有997个可能的单词能够填入。若是(二元)语言模型只考虑先后词的搭配不考虑搭配的几率时,复杂度是60。虽然它比不用语言模型好不少,可是和考虑了搭配几率的二元语言模型相比要差不少,由于后者的复杂度只有20。
信息熵不只是对信息的量化度量,并且是整个信息论的基础。它对于通讯、数据压缩、天然语言处理都有很强的指导意义。信息熵的物理含义是对一个信息系统不肯定性的度量,在这一点上,它和热力学中熵的概念相同。这说明科学上不少看似不一样的学科之间也会有很强的类似性。