前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >信息熵为什么要定义成-Σp*log(p)?

信息熵为什么要定义成-Σp*log(p)?

作者头像
程序员一一涤生
发布2020-01-14 11:36:18
6370
发布2020-01-14 11:36:18
举报

信息熵为什么要定义成-Σp*log(p)?

在解释信息熵之前,需要先来说说什么是信息量。

信息量是对信息的度量,单位一般用bit。

信息论之父克劳德·艾尔伍德·香农(Claude Elwood Shannon )对信息量的定义如下:

在解释这个公式之前,先看看下面的例子。

比如一个黑箱里有2个苹果,8个橙子我们把从黑箱里取苹果、橙子看成是一个随机过程,X={苹果,橙子}。

当我们了解到拿出来的是什么的时候,我们就接受到了信息,这个信息的信息量的大小与这个东西出现的概率有关,这里苹果是0.2,橙子是0.8。越小概率的事情发生,其产生的信息量越大,比如我了解到拿出来的是一个苹果所获得的信息量比一个橙子的信息量要大的多。

至于为什么越小概率的事情发生,其产生的信息量越大,可以这样理解,在考虑信息传输的过程中,如何对消息序列进行合理的编码转换成信号序列,才可以节省信道容量? 以英语举例,在电报通信中,要传送的消息由字符序列组成(比如摩尔斯电码,每个摩尔斯电码符号由一系列点和破折号组成)。 如果最常见的英文字母 E 使用最短的信道符号“一个点”来表示;而出现较少的 Q,X,Z 等则使用更多的点和破折号来表示,则可以最大程度上节省信道容量,也就是说同样的一句消息,采用此策略来编码,其传输需要的时间会更少,而事实上的电报通信中,正是这么做的。 那么这里的字母E由于出现概率最大,所以用了一个点来表示,其信息量相对最小。

所以如果我们要寻找一个函数来定义信息,则该函数要满足如下条件:

要符合随着概率的增大而减小的形式;

函数的值不能为负数,因为信息量最小为0。

带负号的对数函数显然符合以上要求,当然,肯定有其他函数也会符合以上要求,对此,香农在《A Mathematical Theory of Communication》(通信的数学理论)这篇论文中有说明选择对数函数的原因:

大意是说:

如果集合中的消息的数量是有限的,而且每条消息被选择的可能性相等,那么这个消息数或者任意这个消息数的单调函数可以用来做为从集合选择一条消息时产生的信息量的度量。而最自然的选择是对数函数。

关于对数函数更便捷的原因,论文中给出了3点:

  • 在实践中更有用。 对数函数可以让一些工程上非常重要的参数比如时间、带宽、继电器数量等与可能性的数量的对数成线性关系,例如,增加一个继电器会使继电器的可能状态数加倍,而如果对这一可能状态数求以2为底的对数,结果只是加 1。加倍时间,可能的消息数会近似变成原来的平方(1,2,4,8,...),而其对数则是加倍(log2 1,log2 2,log2 4,log2 8,...)=(0,1,2,3,...)
  • 更贴近于人类对度量的直觉。 线性比较就是人类的度量直觉。比如,人们认为,两张打孔卡存储信息的容量应当是一张打孔卡的两倍,两个相同信道的信息传输能力应当是一个信道的两倍。
  • 更适用数学运算。 许多极限运算很容易用对数表示,如果采用可能性的数目表示,可能会需要进行冗繁笨拙的重新表述。

那么,为什么选择2为底的对数呢,论文中的解释是这样的:

大致意思是说选择什么为底与用什么单位来度量信息是对应的。采用2为底就是用2进制位,英文:binary digit(香农听了J. W. Tukey的建议,将binary digit简称为bit,bit这个词从此问世)。采用10为底就是用10进制位,而在遇到一些积分和微分的分析中,用e为底有时会很有用,这个时候的信息单位称为自然单位。

个人理解就是这里用什么为底都可以,毕竟单位之间可以转换,但是为了计算方便,如果你使用二进制数字来存储信息,还是用2为底更便捷。比如一开始邮件分类的例子中,有{无聊时阅读的邮件、需及时处理的邮件、无需阅读的邮件}三种,在1000封邮件中,每个类别出现的概率分别是1/2,1/4,1/4。

现在打算用二进制位表示分类,那么就直接可以计算出来各个类别的信息量,也就是各个类别至少需要几个二进制位来表示:

无聊时阅读的邮件:-log2 (1/2) = 1,所以用1个二进制位可以表示;

需及时处理的邮件:-log2 (1/4) = 2,所以用2个二进制位可以表示;

无需阅读的邮件:-log2 (1/4) = 2,所以用2个二进制位可以表示。

那么你可能要问了,虽然计算结果是这样,但是怎么理解呢?

从直觉上理解就是,出现概率越大,信息量越少,比如明天太阳从东边升起,和明天太阳从西边升起,后者的信息量更大是符合直觉判断的;

从存储的角度来理解,对于那些出现概率越大的变量,用越少的位编码的话,就可以节省出越大的空间。

说完了信息量,我们来看看什么是信息熵。

信息量是表达某个事件需要的二进制位数,比如“某个邮件属于需及时处理的邮件”就是一个事件,而所有可能产生的信息量的期望值被定义为信息熵。

根据概率和统计学中对期望值的定义:期望值是指在一个离散性随机变量试验中每次可能结果的概率乘以其结果的总和。可以得到信息熵的公式如下:

这里可能结果的概率是某个分类出现的概率,结果​是某个分类产生的信息量,其中的log一般以2为底。

可以看出,某个数据集中包含的分类越多,信息熵就越大,而包含分类多,说明这个数据集越混乱,越不纯。

因此,在一些机器学习算法比如ID3决策树中就常用信息熵来量化数据集的纯度,以选择出更好的特征来划分数据,让划分出的数据子集越来越纯,最终就可以根据多数表决来决定叶子节点的分类,从而构建出完整的分类决策树。

ok,本篇就这么多内容啦~,感谢阅读O(∩_∩)O。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档