前言:
而今兄弟们对“c语言信息熵”大约比较看重,兄弟们都需要了解一些“c语言信息熵”的相关文章。那么小编也在网络上搜集了一些有关“c语言信息熵””的相关知识,希望同学们能喜欢,朋友们一起来学习一下吧!1、信息的本质
首先来说信息是什么。信息论之父香农说:“信息可以消除不确定性。”如何解释呢?例如,考场上一道有A,B,C,D四个选项的选择题让我无从下手,如果我得到“C是错误的选项”这一信息对我来说消除了一个不确定的选项;而如果得到了 “A、C、D是错误的选项”这就消除了更多的不确定性,带来了更多的信息。因此,对于个人来说,得知一件不确定性越大的事(例如彩票的开奖结果),获得的信息也就越多,意义也越大,在信息学上,传输或存储付的代价也将更大。
2、何为信息熵,如何衡量它?
香农像物理学家衡量物质与能量一样,通过数学的手段对信息进行了量化,建立了信息熵的概念。基于前文所述,信息的本质是消除不确定性,从数学的角度看,事件的不确定性由概率表达,直观来看,一件事发生的概率大,那么它不确定性小,蕴含的信息少,则信息熵的值也小。因此度量信息熵,其实就是在度量不确定性。
要度量不确定性,首先要有度量的基本单位。经典的抛硬币问题,其结果有正面和反面两种可能。用0表达正面,1表达反面,将正反面这一信息传递出去,只需传递一个数字即可。在工程实践上,用高低电位即可代表0和1,因此只需通过一位信号即可传递该结果。
对于这样一个最基本的不确定事件,可将其作为不确定性度量的基本单位。很幸运,这种或0或1的计量方式,数学家帮我们定义了合适的工具—比特(bit)。香农在他的信息论开篇之作《通信的数学理论》中正式将这一概念引入信息学作为信息的基本单位。因此上述抛硬币问题的信息量在信息学上就被称为1位(bit),是信息量中最小的单位。
有了基本单位,我们就可以度量更复杂的事件了。再回到上面的选择题,将四个选项的选择题答案传送出去需要几个基本单位的信息呢?一位信号线传递两个状态,而两位信号线组合可传递2×2个状态,即用00,01,10,11分别代表ABCD四个选项。
此时,我们发现规律,对于一个有n种等概率结果的事件,产生的信息量是bit。再让传递的信息复杂一些,对于一个有7种颜色均匀分布的转盘,传递一次转盘实验的结果共产生 bit的信息,在信息实际传递时则至少需要3位信号完成传递。
有了基本单位和度量方法,任意一个有n种可能的等概率随机事件,我们都能计算出该事件带给我们的不确定度,写成。可以看到n越大,该事件单一结果发生的概率(1/n)越小,不确定性越大,这与我们一开始说的“得知一件不确定性越大的事获得的信息也就越多”是相符的。
3.非等可能事件如何解决?
等可能事件的计算我们已经了解,但在实际生活中,这类事件少之又少。例如还回到那道选择题,我虽然不知道正确答案,但老师告诉我答案是A正确的概率P1为1/2,这时对我来说其他选项正确的概率P2,P3,P4是1/6,这种非等概率的情况下不确定性如何度量呢?
事实上,只要转变对概率的理解,非等概率的事件可以转化为等概率事件的组合。对于选项A,其正确概率为1/2,因此可将其理解为n=2的等可能事件发生的概率,该事件产生的信息量我们之前已经熟悉,是 bit;而正确概率为1/6的其他三个选项,相当于n=6的等可能事件发生的概率,该事件产生的信息量为bit。
有了每个选项带来的不确定性,再将它们相加就得到整个问题带来的不确定性,但别忘了,每个选项有其出现的概率,因此需要在每个选项的信息量前乘其概率再求和,这时计算出的数值就是整个问题的不确定性,即信息熵。写成数学表达的形式如下:
根据这个问题,我们可以总结出一般事件(非等概率事件)的信息熵计算公式,将该事件每个可能概率取倒数就得到了可能产生几种等概率情况(1/P),就可以用等概率的情况来计算,最后再对得到的结果求期望,就可以得到最终对不确定性的度量,即信息熵。写成数学表达形式如下:
到此信息熵的基本知识已经了解,但也许你还有一些其他问题?以下是关于信息熵常见的疑惑,欢迎讨论。
1.信息熵的意义何在?
从上面的问题就能看出,计算一件事的信息熵就是在计算该事件如果通过信息传输系统传输,最少需要几个bit的信号。某个复杂的事件或文本资料,我们选取合适的编码方式就能以尽量小的资源将其传送,这就是信息压缩与传输的极限,也是信息熵的重要意义。
2。信息熵衡量的到底是什么?信息熵大信息就一定多吗?
其实从上面的计算中我们就能看出来,信息熵衡量的并不是信息到底有多少,而是某件事的不确定性。对于某一件本身不确定性很高的事件,当输入了信息之后,其原本的不确定性将减少。例如上面的选择题,在老师告诉我A选项正确概率为1/2之前,其不确定性为2bit,当我得到”A选项正确概率为1/2”后,该问题的不确定度变成了1.79bit,因此信息也可以称为负熵,信息量的输入导致熵减少,所以事件在信息输入前后熵的变化是对本次信息量的衡量。
3.信息熵的为什么以2为底的对数?
这并不是唯一的,还记得我们最初选择的抛硬币作为基本单位吗?随着基本单位的不同,信息量的单位也将变化,比如以自然对数e为底或者是以10为底,分别是得到nat和hart,但其本质是一样的,就像用克和千克不同单位称质量一样。
标签: #c语言信息熵