数学之美系列 4 -- 怎样度量信息?
发表者:吴军,Google 研究员前言: Google 一直以 “整合全球信息,让人人能获取,使人人能受益” 为使命。那么究竟每一条信息应该怎样度量呢?
信息是个很抽象的概念。我们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到 1948 年,香农提出了“信息熵”(shāng) 的概念,才解决了对信息的量化度量问题。
一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多少。
那么我们如何量化的度量信息量呢?我们来看一个例子,马上要举行世界杯赛了。大家都很关心谁会是冠军。假如我错过了看世界杯,赛后我问一个知道比赛结果的观众“哪支球队是冠军”? 他不愿意直接告诉我, 而要让我猜,并且我每猜一次,他要收一元钱才肯告诉我是否猜对了,那么我需要付给他多少钱才能知道谁是冠军呢? 我可以把球队编上号,从 1 到 32, 然后提问: “冠军的球队在 1-16 号中吗?” 假如他告诉我猜对了, 我会接着问: “冠军在 1-8 号中吗?” 假如他告诉我猜错了, 我自然知道冠军队在 9-16 中。 这样只需要五次, 我就能知道哪支球队是冠军。所以,谁是世界杯冠军这条消息的信息量只值五块钱。
当然,香农不是用钱,而是用 “比特”(bit)这个概念来度量信息量。 一个比特是一位二进制数,计算机中的一个字节是八个比特。在上面的例子中,这条消息的信息量是五比特。(如果有朝一日有六十四个队进入决赛阶段的比赛,那么“谁世界杯冠军”的信息量就是六比特,因为我们要多猜一次。) 读者可能已经发现, 信息量的比特数和所有可能情况的对数函数 log 有关。 (log32=5, log64=6。)
有些读者此时可能会发现我们实际上可能不需要猜五次就能猜出谁是冠军,因为象巴西、德国、意大利这样的球队得冠军的可能性比日本、美国、韩国等队大的多。因此,我们第一次猜测时不需要把 32 个球队等分成两个组,而可以把少数几个最可能的球队分成一组,把其它队分成另一组。然后我们猜冠军球队是否在那几只热门队中。我们重复这样的过程,根据夺冠概率对剩下的候选球队分组,直到找到冠军队。这样,我们也许三次或四次就猜出结果。因此,当每个球队夺冠的可能性(概率)不等时,“谁世界杯冠军”的信息量的信息量比五比特少。香农指出,它的准确信息量应该是
= -(p1*log p1 + p2 * log p2 + ... +p32 *log p32),
其中,p1,p2 , ...,p32 分别是这 32 个球队夺冠的概率。香农把它称为“信息熵” (Entropy),一般用符号 H 表示,单位是比特。有兴趣的读者可以推算一下当 32 个球队夺冠概率相同时,对应的信息熵等于五比特。有数学基础的读者还可以证明上面公式的值不可能大于五。对于任意一个随机变量 X(比如得冠军的球队),它的熵定义如下:
变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。
有了“熵”这个概念,我们就可以回答本文开始提出的问题,即一本五十万字的中文书平均有多少信息量。我们知道常用的汉字(一级二级国标)大约有 7000 字。假如每个字等概率,那么我们大约需要 13 个比特(即 13 位二进制数)表示一个汉字。但汉字的使用是不平衡的。实际上,前 10% 的汉字占文本的 95% 以上。因此,即使不考虑上下文的相关性,而只考虑每个汉字的独立的概率,那么,每个汉字的信息熵大约也只有 8-9 个比特。如果我们再考虑上下文相关性,每个汉字的信息熵只有5比特左右。所以,一本五十万字的中文书,信息量大约是 250 万比特。如果用一个好的算法压缩一下,整本书可以存成一个 320KB 的文件。如果我们直接用两字节的国标编码存储这本书,大约需要 1MB 大小,是压缩文件的三倍。这两个数量的差距,在信息论中称作“冗余度”(redundancy)。 需要指出的是我们这里讲的 250 万比特是个平均数,同样长度的书,所含的信息量可以差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。
不同语言的冗余度差别很大,而汉语在所有语言中冗余度是相对小的。这和人们普遍的认识“汉语是最简洁的语言”是一致的。
在下一集中, 我们将介绍信息熵在信息处理中的应用以及两个相关的概念互信息和相对熵。
对中文信息熵有兴趣的读者可以读我和王作英教授在电子学报上合写的一篇文章
《语信息熵和语言模型的复杂度》
固定链接 |
相关推荐
信息论 信息的度量
在VC++编程中,获取系统的度量信息是一项重要的任务,这可以帮助开发者更好地了解用户的操作系统环境,以便优化软件的布局、适应不同的屏幕分辨率或其他系统特性。系统度量信息通常包括窗口大小、字体尺寸、屏幕...
基于关联信息熵度量的特征选择方法是一种有效的策略,它利用信息理论的概念来评估每个特征与目标变量之间的关系强度。 信息熵是一种衡量数据不确定性的度量,它在信息论中被广泛使用。在特征选择中,信息熵可以帮助...
我们针对局部激发态分析了一种称为降低密度矩阵的Bures度量的信息度量。 这测量了激发不同点的状态的可分辨性。 对于由间隔给出的子系统,我们从Bures度量精确地再现了二维全息CFT的预期纠缠楔,结果证明它与时间片...
为了应对云服务信息安全的挑战,首先需要建立有效的信息安全检测、度量与评估模型或方法,并形成良性反馈机制,以促进和提高云服务信息安全的质量。 目前,云服务信息安全评估面临的难题主要是缺乏完备的评估标准和...
3. **信息隐藏(Information Hiding)**:度量对象的封装性,好的信息隐藏能保护对象的内部状态不受外界干扰。 AutoMetricTool这样的自动化软件度量工具通常具备以下功能: 1. **代码分析**:扫描源代码,计算出CK...
详细的介绍了信息量和信息熵的概念。信息量度量的是一个具体事件发生所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望
本文首先通过分析现有的相似性度量算法的优势与不足,提出了一...该算法可以度量异质信息网络中任意结点对之间的相似度,同时度量具有对称性。通过与其它度量算法在真实数据集上的实验结果的比较,验证了算法的有效性。
走向数学丛书16-信息的度量及其应用-沈世镒
在IT领域,获取系统的度量信息是一项至关重要的任务,它可以帮助开发者、系统管理员以及性能优化专家了解系统的运行状态,监控资源使用情况,并诊断潜在的问题。本文将深入探讨如何使用VC++编程语言来实现这一功能,...
信源模型 不确定性与信息 熵与平均互信息 扩展信源 离散有记忆信源的熵
### 软件质量度量方法及其模型构建 #### 研究背景及意义 在全球一体化及科技信息进程不断推进的背景下,信息化已成为社会经济发展的重要驱动力。软件开发作为信息化的核心,不仅推动着国家的生产力发展,也成为...
与简单的梯度下降相比,牛顿法通常能更快地收敛到最优解,因为它考虑了目标函数的二阶导数(曲率信息),但计算成本相对较高。在线度量学习中,牛顿法可以更有效地处理高维数据和大规模样本集。 字空间投影(Word ...
【信息量的度量】 信息量是衡量一个事件不确定性减少的程度,它与事件发生的概率紧密相关。信息理论是由克劳德·香农在20世纪40年代提出的,旨在量化信息并理解通信过程中的信息传输。在这个“信息量的度量.ppt”中...
MASU通过分析源代码,生成一系列关键指标,为软件项目提供了宝贵的量化信息。 首先,我们来了解一下什么是软件度量。软件度量是用于量化软件特性的统计量,包括但不限于代码行数、复杂度、耦合性和内聚性等。这些...
过程度量关注软件开发过程的管理,为管理者提供实时状态信息,以便识别潜在问题并作出决策。项目度量则专注于特定项目,评估开发过程质量,预测成本、进度和工作量,支持项目管理和控制。产品度量则侧重于软件产品...
标题“电信设备-一种基于度量信息的形状匹配方法”暗示了该压缩包内容可能涉及的是如何在电信设备的检测、维护或优化过程中利用形状匹配技术。下面我们将深入探讨这种基于度量信息的形状匹配方法及其在电信领域的...
图像相似性度量是计算机视觉领域的一个核心概念,它用于评估两幅或多幅图像之间的相似程度。在实际应用中,这种度量方法广泛应用于图像识别、图像检索、内容为基础的图像索引、图像分类和对象检测等多个场景。下面将...