05|信息编码:数字和文字是如何诞生的?
05|信息编码:数字和文字是如何诞生的?
你好,欢迎来到我的《信息论40讲》。
上一讲我们说了信息就是用来消除不确定性的,这一讲我们来讲人类是如何利用信息编码创造数字和文字,克服复杂世界的不确定性的。
信息编码并非只是人才有的技能,很多动物,甚至一些植物都有。
为了理解它的原理,让我们先来看这样一个场景。
在非洲的草原上,食草动物在发现狮子或者狼狗接近它们的时候,会发出预警的声音,然后大家一起逃命。这其实就是使用和传播信息,而那声怪叫,就是一种信息编码。
20世纪的人类学家在研究一些原始部落时,发现原始人在遇到危险时,也像动物一样发出怪叫,然后他们用一些含糊的声音,进行通信。
比如某种特定的声音可能表示“那里有只豹子”,提醒同伴小心。同伴可能“呀呀”地回应两声,表示知道了,或者发出另一串含糊不清的声音,表示“我们用弓箭射它”。这就是简单的信息编码。
在《信息简史》一书中,作者还举了非洲丛林里的人们用不同的鼓声传递不同信息的例子,那也是一种信息编码。
在没有信息论之前,信息编码的复杂度通常和要传播的信息种类数量有关。早期人类了解和需要传播的信息是很少的,因此他们并不需要语言和数字,只需要发出不同的叫声,或者做些不同的手势和肢体接触即可。
但是随着人类的进步和文明的进展,需要表达的信息也越来越多,不再是几种不同的声音就能完全覆盖,语言就此产生。人们生活的经验,作为一种特定的信息,其实是那个时代最宝贵的财富,他们通过口述的语言传给了后代。同时,由于人类开始拥有一些食物和物件,便有了多和少的概念,因此数字也就产生了。
早期人类对信息的编码,基本上是每一种信息,都有一种相应的编码。要想表达5这个数字,就伸五个指头,但是很快人的十个指头就不够用了,于是早期不少文明就把脚给用上了。
在历史上一些文明采用20进制,比如玛雅文明。另一些文明多少留有了20进制的痕迹,比如英语中20(score)这个词,就是如此。
再后来,手脚并用也不够了,于是人类就在石头和骨头上划道道。再往后, 当数字多到划道道也无法表达时,就有了对数字的编码,也就是各种文明的数字——用有限数字的组合可以表示更多的数。
我们如果要表达100个数字,一个办法是设计100个不同的编号,让它们一对一对应,另一种是只设计几种编号,然后相互组合,来表达100个数。
你可能觉得第二种方法更简洁,但这两种方法,在信息论中是等价的,我就来帮你算一下。
好,假定我们有100个数,从中挑出一个,不确定性是100选1,用上节课学得信息论的公式表达,它所代表的信息熵为 log100=6.65 ( 注 :log以2为底的100的对数,课程中的log函数如果没有特殊说明都是以2为底的。)比特。也就是说,如果我们有6.65比特的信息,就可以确定100个数中的一个。接下来,我们看看刚才说的两种编码需要的信息量是否一样。
我们先来试第一种编码,也就是一一对应, 比如用100种奇形怪状的符号对应这100个数字,这种编码所能表示的信息量,其实就是100选一的问题,也就是 log100=6.65 比特。由于一个编码正好表示一个数,因此编码的长度为一。
第二种编码方法是采用十进制编码,也就是用10种符号, 每个符号所代表的信息量只有log10=3.325比特,但是10个符号想表示100个数字,就需要两两组合。也就是说,一个符号无法消除100个数中的不确定性,这样两个符号的信息量加起来还是6.65比特,正好可以消除100个数的不确定性。
这样的编码系统比较简单,但是编码的长度是前一种的两倍。这个十进制的做法呢,就类似我们现在用到的阿拉伯数字0~9。
当然,我们还可以用二进制编码,就是只有0和1这两个符号,它们所包含的信息只有log2=1比特,如果我们想用它们来表达100个数,则需要6.65个码。进位取整以后,也就是7位的码长,才能表示100个数字。
你可能注意到了,符号越少,意味着码位越长,所以你看到二进制通常是一长串的0101……由此可见, 对数字的各种编码其实是等价的,无非是平衡编码复杂性和编码长度之间的关系。
对于数字,如果采用很多个符号,编码长度就短,但是系统就复杂。比如我们如果采用的是20进制,编码长度短了,但这就意味着它的编码系统很复杂,要记住的符号很多,大家学数学就太麻烦了。
在历史上即使有这样的文明,在竞争中也会被淘汰。玛雅文明发展不快的一个原因,就和它的计数和书写系统太复杂有关。
相反,如果采用很少的符号编码,比如采用二进制,编码的长度就长。比如100在二进制中的编码是1100100,你去买东西,人家问你要100块钱,说出这一大串数字,你很容易听糊涂,如果让你背九九八十一,它就成了100110011010001(9的二进制是1001,81的二进制是1010001),完全是自虐。
所幸的是,各种编码系统在数学上是等价的,我们可以为人类找一个自己方便使用的,也可以为计算机找一个它方便使用的。
但是要说明的是,由于它们是等价的,在一个编码系统中解决不了的问题,换一个系统同样解决不了。一些媒体讲,由于量子计算不是二进制的,因此它能解决今天计算机解决不了的问题,这个说法显然缺乏常识,因为任何进制都是等价的。
当然对数字的编码不能有半个,因此如果我们采用二进制对100个数编码,刚才计算出来是需要6.65个码,那就要取下一个整数,编码的长度也就是7了。于是我们就得到了信息论中一个重要的公式:
编码长度 ≥ 信息熵(信息量)/ 每一个码的信息量。
香农对此作出了严格的数学证明,他同时还证明,只要编码设计得足够巧妙,上面的等号是成立的, 这就是著名的香农第一定律 。至于如何找到最巧妙的编码(或是说最短的编码),我会在第7讲介绍。
说完了数字的编码,接下来我们说说文字的诞生的过程。 它和数字的诞生也很相似,早期无论是苏美尔人、古埃及人、古中国人,还是印度河文明的古印度人,都采用的是象形文字。一个图画就是一个意思。
但是后来要表达的意思实在太多了,总不能无限制地发明文字,于是就出现了用几个文字表达一个复杂的含义。
那么这些原始的编码背后的信息论原理是什么呢?我们还是回到消除不确定性这件事来看待这个问题。假如一个原始人家里有10样东西,他给每个东西起一个名字,这就是最简单的编码,而且早期起的那些名字都容易让人联想起东西的特性,就如同把狗叫成汪星人,把猫叫成喵星人一样。
当然,家里的东西多了,要做的动作多了,就做不到把每一件事单独编码,就需要利用一些编码进行组合了。比如说我们有对一些东西的编码,又有了一些对动作的编码,这就形成了可以表达复杂意思的简单的句子。
比如说一个原始人让孩子把家里的石斧拿来,他就可以告诉他采用“拿来”这个动作,而要拿的对象是“石斧”。人类使用动词,标志着文明的一大进步,这不仅意味着他们能够把动作进行分类,编码了,而且这样才能表达复杂的意思,才有可能形成知识。
有了象形文字和动词之后,人类就有了书写系统,各种信息就通过文字这种编码记录下来,这才让我们了解到过去的历史。但是,从此人类的不平等也开始加剧,因为能够认识编码的人,就掌握了其他人所没有的信息。
我们从前面几讲的课程中知道,信息太重要了。于是,这些能够读写的人就成了精英甚至是统治阶级。在任何历史阶段,谁控制了信息,谁就是世界的主人。
一个最有说服力的例证就是:在马丁·路德之前,关于上帝的信息是由教士和主教们控制的,因此农民们只好受人摆布。在中国虽然大家不信上帝,情况也是类似。过去在农村,不能识文断字的人,哪怕再有钱,也不过是土财主,家业很难长期兴旺;能够读书写字的人,哪怕穷,在宗族里也很有地位。
今天,虽然大家都能识文断字,但是有的人掌握的信息多,有的人掌握的少,这就造成了很大的不平等。对于个体来讲,改变自身获取信息的能力,要比改变整个社会的不平等容易得多。
古代文字难以普及的一个重要的原因,就是基于各种象形文字的编码系统太复杂,要记忆的东西太多,学习的成本太高。于是全世界的语言都在沿着简化这条路发展。至于怎么简化,我们后面会专门讲。
要点总结
-
我通过讲人类创造数字和文字语言的过程,告诉大家,其实它们都是人类用来消除信息不确定性的编码手段。各种编码系统,其实都是在编码复杂性和编码长度之间作平衡,它们在数学上是等价的;
-
由于它们是等价的,所以,在一个编码系统中解决不了的问题,换一个系统同样解决不了;
-
香农第一定律告诉我们,只要编码设计得足够巧妙,就可以找到最短编码。
思考题: 编码要在长度和复杂性上作平衡,其实很多工作都是在作平衡,我想听听你的行业是否也有类似的平衡之道。
预告: 至于怎样设计一个好的编码系统,它既不太复杂,又比较有效;推而广之,怎样表达一个意思,它既非常明确,又非常简洁,这是我们下一讲要讲的内容。我们下一讲再见!


热门留言
宁志忠:#金勇笔记#
如果你和我一样是文科生,可能会有些细节没想通。
于是,我又死皮赖脸地向金勇请教:“为什么从100个数字里挑出1个,需要的比特数量是6.65?”
金勇: 我先不回答你,问你一个上节课的问题,“32选1,需要多少比特?” 如果你上节课仔细听了,你一定记得老师说了,问先知,32个球队哪1个获胜需要问5次,也就是5比特。 上节课我也在笔记里告诉大家了,N种事情等可能,确定哪一个会发生,所要用的比特数就是 log以2为底N的对数,log以2为底32=5,也就是5比特。 现在你把N换成100,就能得到log以2为底100=6.65。
到这里你可能要问,为啥是N可以随便换,底数始终是“2”呢? 因为你如果还记得吴老师上节课给出的“抛物线图”,当可能性一半对一半时,需要的信息量最大,32支球队选1,向先知提问,你要让他给你最大的信息量,也就是先划分一半,接着再划分一半,如此推进……
那这和“2”有啥关系呢?因为每划分一次,都是一次“是”或“否”的2项选择,5次选择就是2的5次方,正好是32,32种可能做5次一半一半的2项选择就搞定了。
因此,把32换成100,需要2的几次方呢?这里就需要换成对数函数,也就是log以2为底100的对数是多少?答案是约等于6.65,也就是要至少问7次,或者说7位的二进制符号来表示100个数字。怎么样,是不是就清楚了?建议你把上一节课和这节课连起来看,把基础打牢固。
再进一步,今天这讲说的,十进制中每个码位有10种可能, 所以Log10 = 3.325; 十进制中 00~99 这100个数字,个位数和十位数码位信息量都是 3.325, 所以相加结果即为 6.65 这个结果和直接计算 Log 100 是一致的。
莫冬腊:分享一个有意思的知识,香农为什么要用对数函数log()来表示信息熵?因为这样可以让信息熵变成一个广延量。打个比方,比如说一个系统之中有两个独立的要素A和B,A的总状态数是Na,表达A状态的信息量为log(Na);B的总状态数是Nb,表达B状态的信息量为log(Nb);整个系统的总状态数是NaNb,则表示整个系统状态的信息量为log(NaNb)=log(Na)+log(Nb),也就是说整个系统的信息量其独立要素的信息量之和,所以说信息熵是一个广延量,它的好处就是独立要素的信息量可以相加。
Steve:#金勇笔记# #day5# #个人经历收获
进制的等价性是什么? 我相信,你在用WIFI时,经常看到你手上的蓝牙或MAC地址:3C:2E… 这样的字符。 其实这是十六进制,每个码位由0~9A~F组成。 如果换成二进制,F就是“1111”、A就是“1010”,用进制的例子是让大家初步了解“信息等价”的概念。 因为这实际上是两个编码系统,信息量相等,编码长度不同。
延伸阅读
ASCII标准编码 参考链接: https://www.ascii-code.com/
下一个问题,为啥不同进制,其实在信息上都是等价? 我说一个真实的例子帮助你理解。 四年前,在某个项目中我用到了36进制与62进制。 情况是这样的:同事希望我们用六位字符编码表示上亿种信息标识, 如果用10进制的话, 只能表示000000~999999 一共十万种情况,怎么办? 为了让六个码位具有更强的信息表示能力, 不得不采取更高的进制, 我于是想到了36和62进制。
36进制:阿拉伯数字0~9与大写字母A-Z; 62进制:阿拉伯数字0~9与大写字母A-Z小写字母a-z;
这样的话,36进制就能表示 36 * 36 * .. (六个36相乘) 就满足上亿的要求了。 但为什么没用62进制呢?因为62进制中小写字母l与大小字母I(H之后的字母)在现实中不容易区分。 这也是下一讲吴老师要给你解决的问题。
古小千:编码要在长度和复杂性上作平衡,而工作很多时候也在作平衡。
谈信息,在医疗领域相当有感。不少医学生从学校踏入临床,最大的挫折除了临床医学的浩瀚之外,就是各种缩写满天飞。CAD, ICH, PE, SAH等等,而且往往一个缩写在不同科别还会对应到两三种意思,这让初入医院的学生非常苦手。
当然,我相信这样的“传统”跟“缩写文化”绝对不是用来刁难新手的,而是让沟通和注记更为高效,否则一天要处理纷杂的资讯、前一个钟头的症状又有变化,病人的主诉就是堆积如山的资讯。
而缩短长度的简称则会增加信息熵,在交班时就会发生信息丢失的问题。因此第一次传话时,我们会覆诵,甚至确认对方明白意思后,才开始使用缩写,这确保了效率与信息完整。
看似重重壁垒的医学专业缩写,其实是医护对病人最佳照顾的基石。
贾旭:对于lg n,为什么要以2为底?为什么要这样分?是什么意思?
可以这样理解:
比如要在100个数中找一个特定的数,如果挨个找,最坏的情况需要看100遍。
如果先分成两组,A和B组,如果知道是在A组中,就不用再看B组的一半的数了。
同理,再把A组分成两组,C和D组,以此循环。
log以2为底,就是每次分两组的意思。
logN的结果就是重复分了几次,才能找到你要的信息。
至于得出的结果如果不是整数,比如6.3,意思就是有时不是双数,没法平均分成两组,所以最后可能需要多找一次,所以,如果有小数,就必须看作是下一个整数。
夏雨雪:【程序员的平衡之道】
〖简洁和易读性的平衡〗
平时写代码的时候,可以把代码写的很了解,有些时候甚至连换行都不需要。但是如果这么做,易读性就很差,不方便后续维护。所以代码会写的冗余一些,以寻求较好的易读性。
〖空间和时间的平衡〗
编程算法里,有一个空间换时间的做法,就是提升了运行速度,但是牺牲一些内存空间。现如今计算机都有较大的内存,而人们往往更希望程序运行的越来越快。所以舍弃空间,减少时间,是一种权衡后的结果。
〖个人成长和效率的平衡〗
开发过程中,会用一些第三方的工具、组件或者库。用了这些东西,会显著的提升开发效率。本质上,就是第三方把开发这些内容的知识打包封装起来,你不要了解里面的原理就能用。这样久而久之,就失去了对这些原理的了解,个人成长会受损。日常工作中,这些工具还是要用,但是也要利用业务时间,学习里面的原理,并动手实践。
〖需求和时间的平衡〗
有的时候,产品经理的需求,或者设计的设计图,很难在规定时间内完成。我们会进行沟通,看看能否将功能引导至一项比较成熟的技术上,或者干脆简化。这样可以确保项目不延期。这就是人和人之间的一种平衡吧。
成成:编码除了准确高效反映信息,消除不确定性外,还要允许一定的冗余度。信息编码要考虑出错和纠错的问题,增加冗余度是为了减少纠错成本。
高效是针对编码信息源,但让信息能够准确不失真传播就要增加冗余。在信息编码中要在高效和冗余之间做出平衡。
jwu(作者) 回复:冗余度非常重要
强Sean:听其他老师分享过,腓尼基人对人类文明做了一个非常大的贡献,就是促成象形文字转化成拼音文字。
埃及的象形文字写起来非常费劲,但因为使用的低频,所以一直保留这种文字呢?因为它是一种相对低频的产品。在这个神庙的柱子上写上什么字?而腓尼基人跟埃及人很不一样的地方就在于,他们所处那个地方地很狭窄,他们又面临大海,地中海气候实际上是不适合于农作物的生长的,农作物的种类非常少,但这个地方盛产经济作物葡萄和橄榄,他们为了能吃饭,就将这两样东西加工成葡萄酒和橄榄油,同时用他们造出来的船运到地中海对岸,跟埃及人换粮食。
在埃及和地中海北岸形成了一种资源互补的关系,贸易也就产生了。做贸易就要记账,就要有契约,账要天天记,契约要经常签,这个时候,文字就成了一种很高频的工具。如果这个文字写起来很费劲的话,就会让人产生强烈的痛感。因为是“刚需、痛感、高频”,所以催生了创新的冲动,腓尼基人就有了将文字简化的冲动,将文字的元素尽可能的减少,然后用这些元素自由组合成千千万万的文字。这就是拼音文字的起源。
不过,腓尼基人只是搞了一个拼音文字的半成品,真正创立拼音文字的是紧挨着他们的希腊人,这就是希腊文的起源。
Fiy:曾经听过一篇Ted演讲 the language you speak forges the way you think 从信息论的角度思考,不同语言其实就是不同的信息编码方式,而这种编码方式其实就决定了你的思维方式。 吴军老师在Google方法论里说,人类生活的环境决定了人类不熟悉数量级大的运算。我们也可以说人类说的语言决定了我们的信息传播的局限性。 所以可以流利掌握多重语言的人,就掌握了多种信息传播的方式,思维模式会更开放,更容易突破同一种文化下的认知局限性。
侯文清(Ivan):这节课让我一激灵,原来还可以这么看。 十几年前本科学的信息工程,对香农和傅立叶两位老爷子又敬又怕。
根据编码的规则来看语言,拉丁语和汉语就是一个很好的对照案例。
英文26个字母,相当于26进制。任何意思都是用这26进制的字母来编码。长度大约需要3-10个字母来表达大部分的意思。
中文象形文字,很多字是独立编码,相当于几百甚至几千进制。但是好处是一到四个字节的字或者词就表达了所有的意思。
而且两种语言中都通过设置语法,来设定限制,设定组合规律,增加信息的冗余度,增加了一定的信息长度,但是方便大家按照规律记忆。相当于又增加了一个编码的维度。
英文=log26+log(单词长度)+log(词根字根等语法规则数量) 中文=log(字/偏旁数量)+log(词,字组合规则)+log(字,词长度)
由于两种语言都可以表达几乎所有的意思,意味着最终信息墒是一样的,这也就是说不同的编码规则,实现了同样的效果。翻译两种语言就是不同编码的转换。
冯琨:用信息编码的能力,我们可以获得哪些竞争优势? 今天让我最受到触动的是“在任何历史阶段,谁控制了信息,谁就是世界的主人。”这个观点在吴军老师其他课程中也有强调过,今天的理解又深入一层,即我们所谓的学习就是通过了解和掌握更多信息、更多信息编码方法来增强自己的竞争力,而掌握更多信息编码方法相对于掌握更多信息更为重要。
1、比如了解一个人感冒的原因比了解这个人感冒了这个现象更重要,了解为何啤酒与尿布的销量有关比了解两者具有相关性更为重要。我们表达客观存在使用的是信息,而找到因果关系就要理解特定信息被编码的过程。从这个角度看,了解的编码方法越多,就越具有看透世界的“慧眼”。
2、我突然联想到电影《黑客帝国》中,Neo之所以会成为救世主是因为他的黑客经验,使他更多的了解和理解计算机编码。Neo迸发出的各种“超能力”可以理解成他突然明白了敌人的编码方式,所以从认知上升级了维度,可以从容应对各种程序的表现。
3、在我们的社会中,有些职业就能够获得其他职业所没有的信息来源,他们就有更高的机会去理解、影响甚至控制他人,从而获得超然地位。所以通过某些制度性安排制约他们,使他们不能太过肆意妄为,才使得社会相对平稳和谐。
4、在商业上,编码的能力往往决定了公司甚至行业的走向。比如视频格式的编码,早期的MPEG-1到现在常用的SVC和HEVC,存储空间压缩到了原来的1/150,这个发展过程中,很多VCD、DVD设备、软件、传播的行业有无数的故事,也造就了不少成功公司。 还有些公司借助新编码标准的专利,获得了未来的竞争力,比如有公司掌握了无线通信领域的先进编码,甚至让超级大国寝食难安。
5、想问老师和学习委员一个问题,5G需要通信基站密度相比4G增加很多,这是否也类似于编码长度与编码复杂性的平衡。想要获得更高的传播速度,就要在复杂度上更多投入。如果是这样,未来更高的无线通信速度会不会让基站更密集,以至于在商业上几乎没有发展的价值呢?
佛祖门徒:最近在跟着隔壁的仇老师学习基因科学课,见识到人类演化的过程也是一个基因进行不断编码的过程。DNA是一部用4个“字符”写成的书,分别是ATGC,代表着DNA的四种化学成分,学名叫碱基,不管DNA这本书里有多少字词、多少句子,翻来覆去就是这4个字符,类似于无限不循环的圆周率,现在,已经发展到30亿的规模。而且,除了一部分基因表达呈现了各种特征以外,人类体内还有大量的基因暗物质存在,现在看来似乎没发挥什么作用,但他们或许是人类在演化道路上的“反脆弱”保障。
shzhang:关于编码在长度和复杂性上的平衡,结合我的工作来说说平衡之道。
都说医生关乎人命,而教师关乎国家命运。 在信息时代,作为信息的传播者,更不敢懈怠,更应该权衡授课内容和授课时间,而使孩子们在有限的时间里能够高效地掌握真正有价值的知识,从而不枉费青春。
当然理想很丰满,现实很骨感,哪怕是大学校园,也会有教学计划、教学大纲的要求和束缚,而不能任由一个老师的自由发挥。如果何能在规定的边界内交付给孩子们真正有用的东西,是我一直在思考的。
跟着吴老师学习了解到:要用通俗易懂的故事来把复杂的道理或基本的概念讲清楚,故事有趣到足够勾起他们的好奇,并且给孩子们搭建起知识体系,而不仅仅是“满堂灌”具体的知识点,以为讲了很多,可并没有能引起孩子们产生共鸣,反而他们收获很少,更应该一以贯之地讲授课程的逻辑,并把构建学科知识大厦的基础概念讲清楚,以及此概念与其他学科的关联和它的用途说清楚,每节课一定要留有一定的时间做总结或复盘,以便他们能够清晰地看到那条知识脉络。
以能量和信息贯穿的科技史纲带给我的收获特别大,信息论,与我,一个文科生,有点儿难度,好在有助教、主编和得到高手的各种解读,希望作为学生,能够搞清楚信息论的逻辑和脉络,用以指导未来的工作和生活。
任文青:我本科学的是德语,刚上大学时老师就告诉我们一个故事: 一个师姐毕业后加入一家中国的贸易公司,在一次用英语的谈判中,外方在内部沟通时改用德语,而他们并不知道中方有懂德语的人,结果中方占据主动,而这个师姐也因为立功受到重用。
世界本来就是不平等的,而获取信息能力的不同又加剧了这种不平等。对于个体而言,增强自己获取信息的能力比什么都重要。那怎样增强获取信息的能力呢?
第一,要有好奇心,愿意主动猎取新信息;第二,提高协作能力,让自己成为结构洞; 第三,扩展自己的圈子,穿越多重网络;第四,一定要学习一门,甚至多门外语;第五,来得到终身学习。
我是谁,我要去何方:“在任何历史阶段,谁控制了信息,谁就是世界的主人”,但我们个人的精力、时间是有限的,不可能获取无限量的信息,这就要求我们在有限的生命与无限的信息之间获取平衡,懂得取舍,把握住那些最重要的信息。牢记“吾生也有涯,而知也无涯。以有涯随无涯,殆已!” ,用减法思维指导自己的生命更加高效,把握住那20%的重要事情。
留白:回答自己的问题:100个数选1时,信息量中的log为什么是以2为底,不能以100为底吗?这里的2是什么含义? 由于手机计算器提供lg功能,所以讨论以2为底和以10为底的信息熵的情况。 log以2为底,以N为真数,写做:log2(N) log以10为底,以N为真数,写做:log10(N)=lg(N)
对温度无法衡量时,有人说今天很热,有人说今天超级热。为了准确描述就需要定量,于是有甲说今天30摄氏度,有乙说86华氏度,两位都没有说错,他们在描述时温度是不变的,为什么数字不一样,因为单位不一样。气温这一个事实没有改,仅仅大家描述不同,而产生差异,为了能互相沟通,需要找出两个单位的换算关系。 摄氏温度(℃)和华氏温度(F)之间的换算关系为: 华氏度=32+摄氏度×1.8; 摄氏度=(华氏度-32)÷1.8
回到信息论,在信息量没有单位之前,大家描述信息时,用这个信息很重要,那个信息更重要。1948年,有一个叫香农的博士找到了不确定性和信息的关系。 把一个充满可能性的系统视为一个“信息源”,它里面的不确定性叫做“信息熵”,而“信息”就是用来消除这些不确定性的,所以搞清楚黑盒子里是怎么一回事,需要的“信息量”就等于黑盒子里的“信息熵”。 香农规定了信息量的单位是“比特”,提出了信息熵的公式: H=-P(1) * Log P(1) -P(2) * Log P(2) -P(3) * Log P(3) -P(4) * Log P(4) -......-P(n) * Log P(n)
所以信息熵是用来描述一个充满可能性的系统里的不确定性的。 问题一:信息量中的log为什么是以2为底? 答:因为信息论创始人香农规定的。
问题二:计算信息熵的公式中为什么是用负号(-),所有的信息量为什么不是相加呢? 答:因为概率是一个分数,经过log计算后就成了负数,所以香农博士就给所有log加上了负号(-),经过负负得正,计算出来的信息熵就是正数。这里的信息熵就是一个用来描述不确定性的数字,所以采用正数或负数,都是可以的,香农博士就选择了用正数描述信息源中的不确定性。
问题三:不能以10为底吗? 答:可以,但log以10底,由于单位不同,所以需要一个换算公式。将log10(N)转为log2(N)的换算公式如下: log2(b)=lg10(b)/lg10(2)=lg10(b)/0.301029
证明过程: 对数有三条独特性质: loga(bc)=loga(b)+loga(c) loga(b)=logc(b)/logc(a) loga(b^c)=cloga(b) 重点看第二条:loga(b)=logc(b)/logc(a),所以 log2(b)=log10(b)/log10(2)=lg10(b)/lg10(2)=lg10(b)/0.301029
100个数选1,所以概率p=1/100=0.01 当100选1,log以2为底时: Ha=-0.01* Log 2(0.01) -0.01* Log 2(0.01) -0.01 * Log 2(0.01) -......-0.01 * Log 2(0.01)=[-0.01* Log 2(0.01)]100=-log2(0.01)=log2(100)=6.643856 当100选1,log以10为底时: Hb=-0.01 Log 10(0.01) -0.01* Log 10(0.01) -0.01 * Log 10(0.01) -......-0.01 * Log 10(0.01)=[-0.01* Log 10(0.01)]*100=-log10(0.01)=log10(100)=2
将log10(N)转为log2(N),即Hb/log10(2)=2/lg(2)=6.643856
最后,再来体会下本文的重点句: 各种编码系统,其实都是在编码复杂性和编码长度之间作平衡,它们在数学上是等价的。
Lee:工作中确实经常要在不同的维度做平衡,我是国家电网的员工,负责所在城市用户电能计量设备的数据采集和监控工作。
日常工作中比较重要的一项就是通过数据采集系统监控全市大客户和所有变电站的几千块电能表以及配套的数据采集终端和各种计量设备,发现异常数据后进行分析判断是属于正常现象还是需要远程处理或者是要派人去现场处理故障。
这个过程中就会出现一个问题,按照理论来说系统是可以自动分析数据针对故障分类并预警的,但是电力设备的实际运行,数据的测量,采集,传输这一系列过程中是会产生误差的,这就造成如果按照理论值设置预警参数,系统就会将某些误差当做故障上报,出现大量的无效预警信息,人工完全无法分辨。而如果设置预警参数时考虑误差的因素放宽阈值,由于不同厂家,年代的设备,现场不同的接线方式,不同用户的用电性质等各种因素会造成每一户产生的误差可能都是不同的,并不存在一个统一的标准,而是要靠人工去判断,于是就会导致系统将真正的设备故障当成正常误差漏报。
所以如何合理的设置系统参数阈值就成了一个需要经常平衡的问题,现有条件下的解决方式只能是放弃某些方面的准确性,将一些次要指标的预警阈值放宽一些,尽量减少系统误报的比例,将总体预警数量降低到一个可以通过人工处理的程度,也许今后通过人工智能才能真正解决这类问题。
沙画艺术:说说平衡,从事近十年的电力工作,永远要求安全第一。那么模仿香农第一定律,可以这下如下的安全公式
安全系数>工作总量/工作速度
所以要保证安全,就要平衡工作总量和工作速度,但近年一些减员增效的领导提法出来,人少了,速度下来了,工作量却要提高,同时各项规章制度奖惩机制并没有跟进,所以安全问题层出不穷。
我理解的平衡之道,就是在现在已经稳定的天平两端上,一点点加砝码,千万不要急。
所以,请刚刚步入领导行列的学友们,不要为了自己政绩,就着急大改特改,只做加法,用信息论做基础,理性改进才是务实之道。
Neil:从事理财投资业务,每天都挂在嘴边的一句话是“资产配置”,为的就是平衡收益和风险。
客户经常会说“我的资金借给别人,一年20%的回报,还没有风险”,我常常追问,你的借款有抵押物吗?抵押经过登记了吗?如果找你借钱的人跑路了,你怎么办?银行将资金以6%的利率贷出去,不仅要做尽职调查,层层审批,还要有相应的抵押物,即便如此,每年还有1%左右的不良贷款。更何况你的资金利率是20%
这样的客户很多,于是有了各种资金盘、P2P、民间借贷,不可持续性体现出来的时候,就是各种崩盘。把握投资的平衡,最好先问风险,再谈收益
刘溜溜:我的工作是需要为客户提供解决方案的,其实解决方案的设计就如同一个编码的过程,我要控制方案的篇幅(长度),还要保证方案的内容让人一看就懂(复杂性)。
这种平衡也是一个纠结的过程,因为在做方案的时候会不自觉地增加长度,毕竟几十页PPT拿给客户会让对方感觉物有所值。同时,也会在方案中放入许多专业知识和看起来很高级的概念以显示自己的专业度,这又继续增加了信息的复杂性。
这是我之后需要去考虑并进行平衡的。虽然内容多、专业词汇也多,但并不代表方案的信息量也很多。长度和复杂性要平衡,在确保信息量的前提下避免增加其他噪音,三篇诺贝尔奖论文的篇幅都能这么小,我想我也可以尝试去做,确保信息量才是关键。
05|信息编码:数字和文字是如何诞生的?
https://note.haoshenqi.top:/?p=category-xin-xi-lun-40-jiang-5
评论