`
静妙仙人
  • 浏览: 86158 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到1948年,香农提出了信息熵的概念,才解决了对信息的量化度量问题。信息论之父克劳德·艾尔伍德·香农第一次用数学语言阐明了概率与信息冗余度的关系。

 

一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多少。 

 

实例

那么我们如何来量化度量信息量呢?我们来看一个例子,马上要举行世界杯赛了。大家都很关心谁会是冠军。假如我错过了看世界杯,赛后我问一个知道比赛结果的观众哪支球队是冠军? 他不愿意直接告诉我, 而要让我猜,并且我每猜一次,他要收一元钱才肯告诉我是否猜对了,那么我需要付给他多少钱才能知道谁是冠军呢? 我可以把球队编上号,从 1 32,然后提问:冠军的球队在 1-16 号中吗?” 假如他告诉我猜对了, 我会接着问:冠军在 1-8 号中吗?” 假如他告诉我猜错了, 我自然知道冠军队在 9-16 中。 这样只需要五次, 我就能知道哪支球队是冠军。所以,谁是世界杯冠军这条消息的信息量只值五块钱。

 

数学分析

   当然,香农不是用钱,而是用 “比特”bit)这个概念来度量信息量。一个比特是一位二进制数,计算机中的一个字节是八个比特。在上面的例子中,这条消息的信息量是五比特。(如果有朝一日有六十四个队进入决赛阶段的比赛,那么谁世界杯冠军的信息量就是六比特,因为我们要多猜一次。) 读者可能已经发现, 信息量的比特数和所有可能情况的对数函数log 有关。 (log32=5, log64=6。)

 

足球举例

有些读者此时可能会发现我们实际上可能不需要猜五次就能猜出谁是冠军,因为象巴西德国意大利这样的球队得冠军的可能性比日本美国韩国等队大的多。因此,我们第一次猜测时不需要把 32 个球队等分成两个组,而可以把少数几个最可能的球队分成一组,把其它队分成另一组。然后我们猜冠军球队是否在那几只热门队中。我们重复这样的过程,根据夺冠概率对剩下的候选球队分组,直到找到冠军队。这样,我们也许三次或四次就猜出结果。因此,当每个球队夺冠的可能性(概率)不等时,谁世界杯冠军的信息量的信息量比五比特少。香农指出,它的准确信息量应该是

  = -p1*log p1 + p2 * log p2 + ... +p32 *log p32)

  其中,p1p2 , ...,p32 分别是这 32 个球队夺冠的概率。香农把它称为信息熵” (Entropy),一般用符号 H 表示,单位是比特。有兴趣的读者可以推算一下当 32 个球队夺冠概率相同时,对应的信息熵等于五比特。有数学基础的读者还可以证明上面公式的值不可能大于五。

 

定义

    对于任意一个随机变量 X(比如得冠军的球队),它的熵定义如下: 变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

 

计算

   有了这个概念,我们就可以回答本文开始提出的问题,即一本五十万字的中文书平均有多少信息量。我们知道常用的汉字(一级二级国标)大约有 7000 字。假如每个字等概率,那么我们大约需要 13 个比特(即 13 位二进制数)表示一个汉字。但汉字的使用是不平衡的。实际上,前 10% 的汉字占文本的 95% 以上。因此,即使不考虑上下文的相关性,而只考虑每个汉字的独立的概率,那么,每个汉字的信息熵大约也只有 8-9 个比特。如果我们再考虑上下文相关性,每个汉字的信息熵只有5比特左右。所以,一本五十万字的中文书,信息量大约是 250 万比特。如果用一个好的算法压缩一下,整本书可以存成一个 320KB 的文件。如果我们直接用两字节的国标编码存储这本书,大约需要 1MB 大小,是压缩文件的三倍。这两个数量的差距,在信息论中称作冗余度redundancy)。 需要指出的是我们这里讲的 250 万比特是个平均数,同样长度的书,所含的信息量可以差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。

不同语言的冗余度差别很大,而汉语在所有语言中冗余度是相对小的。这和人们普遍的认识汉语是最简洁的语言是一致的。

 

加深印象

   信息熵是一个非常神奇的概念,它能够反映知道一个事件的结果后平均会给你带来多大的信息量。如果某个结果的发生概率为 p ,当你知道它确实发生了,你得到的信息量就被定义为 - log(p) p 越小,你得到的信息量就越大。如果一颗骰子的六个面分别是 1 1 1 2 2 3 ,那么你知道了投掷的结果是 1 时可能并不会那么吃惊,它给你带来的信息量是 - log(1/2) ,约为 0.693 。知道投掷结果是 2 ,给你带来的信息量则是 - log(1/3) ≈ 1.0986 。知道投掷结果是 3 ,给你带来的信息量则有 - log(1/6) ≈ 1.79 。但是,你只有 1/2 的机会得到 0.693 的信息量,只有 1/3 的机会得到 1.0986 的信息量,只有 1/6 的机会得到 1.79 的信息量,因而平均情况下你会得到 0.693/2 + 1.0986/3 + 1.79/6 ≈ 1.0114 的信息量。这个 1.0114 就是那颗骰子的信息熵。现在,假如某颗骰子有 100 个面,其中 99 个面都是 1 ,只有一个面上写的 2 。知道骰子的抛掷结果是 2 会给你带来一个巨大无比的信息量,它等于 - log(1/100) ,约为 4.605 ;但你只有百分之一的概率获取到这么大的信息量,其他情况下你只能得到 - log(99/100) ≈ 0.01005 的信息量。平均情况下,你只能获得 0.056 的信息量,这就是这颗骰子的信息熵。再考虑一个最极端的情况:如果一颗骰子的六个面都是 1 ,投掷它不会给你带来任何信息,它的信息熵为 - log(1) = 0 。什么时候信息熵会更大呢?换句话说,发生了怎样的事件之后,你最想问一下它的结果如何?直觉上看,当然就是那些结果最不确定的事件。没错,信息熵直观地反映了一个事件的结果有多么的随机。

 

  • 大小: 2.5 KB
2
5
分享到:
评论

相关推荐

    图像信息熵_信息熵_图像二维熵_图像;一维信息熵;二维信息熵;互信息_

    在图像处理领域,信息熵是一种衡量图像复杂度和不确定性的重要指标。它源于信息论,由克劳德·香农在1948年提出。在本主题中,我们将深入探讨一维和二维信息熵以及互信息的概念,并结合给定的`Hx.m`文件,推测这是一...

    MATLAB实现信息熵

    在信息技术和数据处理领域,信息熵是一个至关重要的概念,它度量了信息的不确定性或信息的平均信息量。MATLAB作为一个强大的数值计算环境,提供了丰富的工具和函数来实现各种数学和统计计算,包括信息熵的计算。下面...

    信息熵_C++_图像信息熵C++_

    在计算机科学领域,尤其是图像处理和数据分析中,信息熵是一个重要的概念。它是衡量信息不确定性的度量,由信息论的创始人克劳德·香农在1948年提出。本篇文章将深入探讨信息熵的基本原理,以及如何使用C++语言来...

    英文文本信息熵的计算_编程_计算_熵_信息熵_英文文本的信息熵_

    在IT领域,信息熵是一个非常重要的概念,尤其在数据处理、编码理论和信息论中扮演着核心角色。本文将深入探讨如何使用C++编程语言来计算一篇英文文本的信息熵。 首先,我们需要理解信息熵的基本原理。信息熵是信息...

    图像信息熵的matlab代码_matlab图像处理_图像信息熵_

    在图像处理领域,信息熵是一个重要的概念,它用于衡量图像的灰度分布均匀性。信息熵越高,图像的灰度分布越均匀;反之,如果信息熵较低,图像可能呈现出更集中的灰度值。本篇将详细介绍如何使用MATLAB进行图像信息熵...

    图像信息熵计算

    ### 图像信息熵计算 #### 一、引言 在图像处理领域,信息熵是一个重要的概念,它用于衡量图像中的信息量或者不确定性。通过计算图像的信息熵,我们可以了解图像内部像素值分布的情况,这对于图像分析、压缩以及...

    信息熵_熵_causek3r_信息熵_熵权值_熵值法_

    信息熵是信息理论中的一个基础概念,由克劳德·香农提出,它用于量化信息的不确定性或随机性。信息熵的提出,为人们衡量系统或事件的不确定性提供了一个量化的工具。较低的信息熵表示我们对系统的状态有较高的知识...

    计算灰度图像信息熵的方法

    在图像处理领域,信息熵是一个重要的概念,尤其在评估图像的复杂性和多样性时。本文将深入探讨计算灰度图像信息熵的方法,以及它如何作为衡量图像质量的一个指标。 首先,让我们理解什么是灰度图像。灰度图像是一种...

    信息熵,信息熵的计算公式,matlab

    在信息技术和数据处理领域,信息熵是一个至关重要的概念,它源于信息理论,由克劳德·香农在20世纪40年代提出。信息熵衡量的是一个信息源的不确定性或信息含量,通常用于评估信息的混乱程度。在图像处理中,信息熵被...

    信息熵计算C程序,信息科学

    在信息科学领域,信息熵是一个核心概念,它量化了信息的不确定性或系统的混乱程度。本压缩包提供的C程序专门用于计算信息熵,是理解和研究复杂系统的重要工具。下面我们将详细探讨信息熵的概念、其在系统科学中的...

    图像分割 二维信息熵

    本文将详细探讨使用二维信息熵作为分割依据的图像分割方法,并结合MATLAB实现进行深入解析。 首先,我们要理解信息熵的概念。信息熵是信息论中的一个核心概念,用于衡量信息的不确定性或信息量。在图像处理中,它...

    基于信息熵的特征选择算法研究.docx

    "基于信息熵的特征选择算法研究" 特征选择是机器学习和数据挖掘领域中的一种重要技术,主要用于去除冗余和无关的特征,以提高模型的性能和效率。基于信息熵的特征选择算法是一种常见的特征选择方法,其基本思想是...

    sang.zip_matlab的SANG算法_信息熵_信息熵 检测_抗噪_熵 端点检测

    在本文中,我们将深入探讨基于信息熵的Matlab端点检测算法SANG,以及它如何在抗噪性能方面表现出色。端点检测是信号处理领域中的一个重要环节,它主要用于识别信号中的突变点,这些突变点在语音、音频、图像和生物...

    遥感影像清晰度信息熵计算程序C++

    遥感影像清晰度信息熵计算程序C++是用于评估遥感影像融合质量的重要工具,尤其关注影像的辐射参数。在遥感领域,影像融合是一种提高影像解析度和信息含量的技术,它结合多源遥感数据的优势,以生成更高质量的影像...

    mianyi.rar_tsp 免疫算法_信息熵_信息熵 TSP_免疫算法_免疫算法 matlab

    【标题】"mianyi.rar_tsp 免疫算法_信息熵_信息熵 TSP_免疫算法_免疫算法 matlab" 提供了关于一个使用免疫算法解决旅行商问题(TSP)的MATLAB实现,其中涉及到的信息熵是优化过程中的关键概念。旅行商问题是一个经典...

    基于关联信息熵度量的特征选择代码

    基于关联信息熵度量的特征选择方法是一种有效的策略,它利用信息理论的概念来评估每个特征与目标变量之间的关系强度。 信息熵是一种衡量数据不确定性的度量,它在信息论中被广泛使用。在特征选择中,信息熵可以帮助...

    使用Matlab计算信源熵.zip_matlab信源熵_信息熵_信息熵 编码_信息论与编码_信源熵计算

    总的来说,通过学习和实践使用Matlab计算信源熵,不仅可以加深对信息熵的理解,还能提升编程技能,为今后的信息处理、数据压缩等领域研究打下坚实基础。在信息爆炸的时代,掌握这些理论和工具,对于任何从事相关工作...

Global site tag (gtag.js) - Google Analytics