【机器学习】深入理解--信息熵(Information Entropy)

信息

信息是我们一直在谈论的东西,但信息这个概念本身依然比较抽象。在百度百科中的定义:信息,泛指人类社会传播的一切内容,指音讯、消息、通信系统传输和处理的对象。

信息可不可以被量化,怎样量化?

人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。起码直觉上而言是可以的,不然怎么可能我们觉得有些人说的废话特别多,“没什么信息量”,有些人一语中的,一句话就传达了很大的信息量。早在1948年,香农在他著名的《通信的数学原理》论文中指出:“信息是用来消除随机不确定性的东西”,并提出了“信息熵”的概念来解决信息的度量问题。香农用信息熵的概念来描述信源的不确定度。

为什么有的信息量大有的信息量小?

有些事情本来不是很确定,例如明天股票是涨还是跌。如果你告诉我明天NBA决赛开始了,这两者似乎没啥关系啊,所以你的信息对明天股票是涨是跌带来的信息量很少。但是假如NBA决赛一开始,大家都不关注股票了没人坐庄股票有99%的概率会跌,那你这句话信息量就很大,因为本来不确定的事情变得十分确定。

而有些事情本来就很确定了,例如太阳从东边升起,你再告诉我一百遍太阳从东边升起,你的话还是丝毫没有信息量的,因为这事情不能更确定了。

不确定性的变化跟什么有关呢?

一,跟事情的可能结果的数量有关;例如我们讨论太阳从哪升起,本来就只有一个结果,我们早就知道,那么无论谁传递任何信息都是没有信息量的。当可能结果数量比较大时,我们得到的新信息才有潜力拥有大信息量。

二,跟概率有关。单看可能结果数量不够,还要看初始的概率分布。例如一开始我就知道小明在电影院的有15*15个座位的A厅看电影。小明可以坐的位置有225个,可能结果数量算多了。可是假如我们一开始就知道小明坐在第一排的最左边的可能是99%,坐其它位置的可能性微乎其微,那么在大多数情况下,你再告诉我小明的什么信息也没有多大用,因为我们几乎确定小明坐第一排的最左边了。

信息量起码该满足些什么特点呢?

一,起码不是个负数吧,不然说句话还偷走信息呢~

二,起码信息量和信息量之间可以相加吧!假如你告诉我的第一句话的信息量是3,在第一句话的基础上又告诉我一句话,额外信息量是4,那么两句话信息量加起来应该等于7吧!难道还能是5是9?

三,刚刚已经提过,信息量跟概率有关系,但我们应该会觉得,信息量是连续依赖于概率的吧!就是说,某一个概率变化了0.0000001,那么这个信息量不应该变化很大。

四,刚刚也提过,信息量大小跟可能结果数量有关。假如每一个可能的结果出现的概率一样,那么对于可能结果数量多的那个事件,新信息有更大的潜力具有更大的信息量,因为初始状态下不确定性更大。

满足以上特点的函数

负的对数函数,也就是-log(x)!底数取大于1的数保证这个函数是非负的就行。前面再随便乘个正常数也行。

a. 为什么不是正的?因为假如是正的,由于x是小于等于1的数,log(x)就小于等于0了。满足特点一。
b. 由于-log(xy) = -log(x) -log(y),所以也是对的。满足特点二。学数学的同学注意,这里的y可以是给定x的条件概率,当然也可以独立于x。
c. 假如x是一个概率,那么log(x)是连续依赖于x的。满足特点三。
d. 假如有n个可能结果,那么出现任意一个的概率是1/n,而-log(1/n)是n的增函数。满足特点四。

By the way,这个函数是唯一的(除了还可以多乘上任意一个常数),有时间可以自己证明一下,或者查书。所以我们知道一个事件的信息量就是这个事件发生的概率的负对数。

现代定义
信息是物质、能量、信息及其属性的标示。【逆维纳信息定义】
信息是确定性的增加。【逆香农信息定义】
信息是事物现象及其属性标识的集合。【2002年】

信息熵

熵的来源
熵首先是物理学里的名词。熵的概念源自热物理学。
假定有两种气体a、b,当两种气体完全混合时,可以达到热物理学中的稳定状态,此时熵最高。如果要实现反向过程,即将a、b完全分离,在封闭的系统中是没有可能的。只有外部干预(信息),也即系统外部加入某种有序化的东西(能量),使得a、b分离。这时,系统进入另一种稳定状态,此时,信息熵最低。热物理学证明,在一个封闭的系统中,熵总是增大,直至最大。若使系统的熵减少(使系统更加有序化),必须有外部能量的干预。

理论提出
香农在 1948 年发表的论文“通信的数学理论”中指出,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。香农借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。

信息熵的定义

基本内容
通常,一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之就大。
不确定性函数f是概率P的单调递降函数;两个独立符号所产生的不确定性应等于各自不确定性之和,即f(P1,P2)=f(P1)+f(P2),这称为可加性。同时满足这两个条件的函数f是对数函数,即

直观解释
信息熵用来衡量信息量的大小
若不确定性越大,则信息量越大,熵越大
若不确定性越小,则信息量越小,熵越小
比如A班对B班,胜率一个为x,另一个为1-x
则信息熵为 -(xlogx + (1-x)log(1-x))
求导后容易证明x=1/2时取得最大,最大值为2
也就是说两者势均力敌时,不确定性最大,熵最大。

应用
数据挖掘中的决策树。
构建决策树的过程,就是减小信息熵,减小不确定性。从而完整构造决策树模型。
所以我们需要在每一次选择分支属性时,计算这样分类所带来的信息熵的增益,增益越大,不确定性越小,最终也就是我们要选择的分支属性。
首先我们会在未进行任何分类前求取一个信息熵,这个信息熵涉及到只是简单的求取样本标签的分布,然后按照公式求解信息熵。
之后在选用某一个属性作为分支属性后,我们需要计算每一个子分支中的样本标签的分布,然后计算每个子样本的信息熵,最后加权平均(期望),求得总的信息熵。
计算前后两个信息熵的差值,选择最大的增益属性作为分支属性。
一直递归下去,对每一个子样本套用上述方法。直到所有的样本都被归类于某个叶节点,即不可再分为止。
以上方法是ID3方法,还有更好的C4.5方法
C4.5方法选用信息增益比,克服了ID3使用信息增益选择属性时偏向取值较多的属性的不足。
除了可以处理离散类型的属性,还可以处理连续型。
处理连续型属性时,最重要的一步确定分割点。这里同样需要用到信息增益比。
我们可以人工的为选择一系列的分割点,然后分别计算被分割点分割的前后两个区间的信息熵,最后加权求得该分割点情况下的信息熵。
最后取信息增益最大的分割点作为分割条件。
简而言之,和ID3相比,就是在计算分割点的时候,需要额外用到一次信息增益法。

对信息熵的理解

1. 信息熵是消除不确定性所需信息量的度量,也即未知事件可能含有的信息量

一个事件或一个系统,准确的说是一个随机变量,它有着一定的不确定性。例如,“除东道主俄罗斯外,哪31个国家能进军2018年俄罗斯世界杯决赛圈”,这个随机变量的不确定性很高,要消除这个不确定性,就需要引入很多的信息,这些很多信息的度量就用“信息熵”表达。需要引入消除不确定性的信息量越多,则信息熵越高,反之则越低。例如“中国男足进军2018年俄罗斯世界杯决赛圈”,这个因为确定性很高,几乎不需要引入信息,因此信息熵很低。

那信息熵如何计算呢?举个吴军在《数学之美》中一样的例子,假设世界杯决赛圈32强已经产生,那么随机变量“2018年俄罗斯世界杯足球赛32强中,谁是世界杯冠军?”的信息量是多少呢?

根据香农给出的信息熵公式,上述随机变量(谁获得冠军)的信息量是:
H=-(p1·logp1+p2·logp2+…p32·logp32)

吴军的书中给出了几个结论:一是32强球队夺冠概率相同时,H=5;二是夺冠概率不同时,H<5;三是H不可能大于5。
对于第一个结论:结果是很显然的,夺冠概率相同,即每个球队夺冠概率都是1/32,所以
H=-((1/32)·log(1/32)+(1/32)·log(1/32)+…+(1/32)·log(1/32))=-log(1/32)=log(32)=5(bit)

对于第二个结论和第三个结论:使用拉格朗日乘子法进行证明,详见《求约束条件下极值的拉格朗日乘子法》。这实际上是说系统中各种随机性的概率越均等,信息熵越大,反之越小。

从香农给出的数学公式上可以看出,信息熵其实是一个随机变量信息量的数学期望。

2. 在自然语言处理中,信息熵只反映内容的随机性(不确定性)和编码情况,与内容本身无关

信息熵的一个重要应用领域就是自然语言处理。例如,一本50万字的中文书平均有多少信息量。我们知道,常用的汉字约7000字。假如每个汉字等概率,那么大约需要约13比特(即13位二进制数,2的13次方=8192)表示一个汉字。

一个汉字有7000种可能性,每个可能性等概率,所以一个汉字的信息熵是:
H=-((1/7000)·log(1/7000)+(1/7000)·log(1/7000)+…(1/7000)·log(1/7000))=12.77(bit)

实际上由于前10%汉字占常用文本的95%以上,再考虑词语等上下文,每个汉字的信息熵大约是5比特左右。所以一本50万字的中文书,信息量大约是250万比特。需要注意这里的250万比特是个平均数。

再看下面两个句子。
(1)落霞与孤鹜齐飞,秋水共长天一色。
(2)落日下的晚霞与孤独的大雁一同飞翔,晚秋的江水和深远的天空连成一片。

按照信息熵的计算,第二句比第一句的信息熵要高1倍以上,你会觉得第二句比第一句水平要高,信息量更大么?在自然语言处理中出现较大的信息熵,只表示可能出现的语言字符较多,并不意味着你可以从中得到更多的信息。

所以,信息熵高,不代表你说的话,写的文字中蕴含的信息量就比别人高了。更确切的,信息熵在自然语言处理中是用来对语言文字进行数据压缩的,与语言素养无关。当然条件熵、相对熵等应该是自然语言处理中更有用的概念。

3. 随机变量的信息熵大小是客观的,又是主观的,与观测者的观测粒度有关

信息熵描述的是随机变量的不确定性。对于同一个随机变量,不同观测者从不同粒度上观察,得到的信息熵是不一样的。

还是举上面世界杯谁夺得冠军的例子,32强谁夺得冠军的信息熵是5比特;如果粒度再粗些,有人关注是哪个州夺得冠军,那么其可能性是5种(欧洲,南美,非洲,中北美州,亚洲),信息熵是2.32比特;如果我们只关注亚洲是否夺冠,那么可能性是2种,信息熵是1比特。

再举个更随机的例子,中国股市的涨跌(假设非涨即跌,不算平盘),明天是涨还是跌,只有2种可能,信息量(信息熵)是1比特;假设股市只有蓝筹板,中小板,创业板3个板块,这三个板块的涨跌的可能性合计是8种,信息熵是3比特;如果关注的是每个股票的涨跌,2000个股票的可能性合计是22000种,信息熵是2000比特。

因此,对于不同的观测者来说,信息量(信息熵)是不同的,观测粒度越细则信息量(信息熵)越大,观测粒度越粗则信息量(信息熵)越小。

4. 日常语境中的信息量与信息熵的关系。

日常生活中,我们经常说某人说话言简意赅,信息量却很大,某些人口若悬河,但是废话连篇,没啥信息量;这个电视剧情节太拖沓,一集都快演完了也没演啥内容。这里的信息量/内容与信息熵有什么关系呢?

很多人把这些东西与信息熵混为一谈,得出“说话信息量越大,信息熵越高”“语言越言简意赅,信息熵越高;语言越冗余堆积,信息熵越低。”等等结论。

不是说这些说法错了,而是容易引起误导。个人认为,这里日常语境的信息量与其说是信息量,不如说是信息质量和信息传递效率问题,有没有干货,有没有观点,有没有思想,并且在一定的文字长度/播放时间内,能不能有效的表达出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值