|
|
|
|
移动端

2.2.3 熵

《深度学习与计算机视觉:算法原理、框架应用与代码实现》第2章 深度学习和计算机视觉中的基础数学知识,本章会尽量从定性的角度讲解一些与深度学习、计算视觉紧密联系的基础数学概念,不一定会很严谨细致,但力求简单、形象。本节为大家介绍熵。

作者:叶韵来源:机械工业出版社|2017-11-16 17:47

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


2.2.3  熵

熵在物理和信息论中都是一个重要的概念,用来衡量一个分布的无序程度。从机器学习角度,我们来看看概率和信息论中熵的定义:

配合一个简单的二值例子来理解一下,如图2-20所示。

来看图2-20a,想象箭头是一些小磁针,只能指向上和下两个方向。有些读者可能看出来了,就是Ising模型,不过这里不讨论相变,只是简单赋给小磁针一个向上的概率Pup。

假设在没有任何外界场影响的情况下,小磁针的指向随机,也就是说向上和向下的概率相等,都是0.5,向上的概率记作Pup。这时候磁针的指向完全随机没有规律性,是最混乱无序的情况,把Pup=0.5,Pdown=1-Pup=0.5带入公式2-24,得到熵的值为-(0.5×log2(0.5)+ 0.5×log2(0.5))=1。

如果有一个外界的场作用在这些磁针上,场的强度刚好让磁针有0.9的概率指向上方,也就是Pup=0.9,Pdown=1-Pup=0.1,同样带入公式2-24,熵的值为-(0.9×log2(0.9)+ 0.1×log2(0.1))=0.47。此时观察到的磁针的有序程度变高了,熵变小了。

再考虑更极端的情况,如果一个很强的场加到了磁针上,导致Pup→1,这时候小磁针基本上都是向上了,有序程度最高。因为log2(0)=-∞,所以我们计算。

总结来说就是,无序程度越高,熵越大。我们把小磁针向上的概率从0到1对应的熵画出来,如图2-20b所示,熵在最混乱的时候,也就是Pup=Pdown=0.5时达到最大。

下面来介绍熵和平均编码长度。

信息论中,熵代表着根据信息的概率分布对信息编码所需要的最短平均编码长度。举个简单的例子来理解一下这件事情:假设有个考试作弊团伙,需要连续不断地向外传递4选1单选题的答案。直接传递ABCD的ASCII码的话,每个答案需要8个位(bit)的二进制编码,从传输的角度,这显然有些浪费。信息论最初要解决的,就是数据压缩和传输的问题,所以这个作弊团伙希望能用更少的bit编码来传输答案。很简单,答案只有4种可能性,所以二进制编码需要的长度就是取2为底的对数:

2个bit就足够进行4个答案的编码了(00,01,10,11)。在上面这个例子中,其实隐含了一种假设,就是4个答案出现概率是相等的,均为p=1/4,所以编码需要长度的计算可以理解为如下的形式:

此时已经有些像熵的定义了。回顾一下熵的定义,正是-log2(p)的期望值,所以我们把这个思路也套用一下:

这正是熵,因为ABCD出现的概率均为p=1/4,所以上面式子算出来结果刚好是2。从这个角度,熵就是对每个可能性编码需要长度的期望值。

答案出现概率相等的例子可能并不贴近实际,有人认为“不知道选什么的时候就选C”,这个信息是可以帮助作弊团队改善编码长度的。假设A出现的概率不变仍为1/4,C出现的概率变成了1/2,B和D则分别是1/8:P(A)=1/4,P(B)=1/8,P(C)=1/2,P(D)=1/8。在这种情况下,考虑到传递答案的过程中,C出现的次数(概率)最高,所以可以为C用短一些的编码,而出现次数较少的B和D则可以考虑用长一些的编码。这样的话,平均下来,对于一定的信息总量,需要的编码总长度就会少一些。根据熵的定义的思路,对于出现概率为p的事件,考虑用长度为-log2(p)的二进制进行编码。所以考虑如表2-2所示的编码。

表2-2  按出现概率进行最短编码

A

B

C

D

10

110

0

111

下面对照熵的公式来计算一下编码长度的期望值,也就是平均编码长度:

这个编码长度比2还小,并且不是整数。再详细点理解一下,假设作弊团伙要传递200个答案出去。为了方便说明,这200个答案中ABCD出现的次数恰好都严格和其出现概率成比例,也就是A50次,B25次,C100次,D25次。所以传递200个答案一共需要的bit数是:

那么平均下来就是每个答案耗费了350/200=1.75个bit编码长度。在实际情况中,并不是每个信息都可以单纯按照上面的两个例子进行二进制编码。比如一个事件出现概率为0.3,那么我们并不知道该如何用一个-log2(0.3)=1.74个bit的二进制编码表示。但是平均编码长度的概念是可以拓展的,代表了对随机变量的平均不确定度的度量。比如ABCD这4个答案出现概率相等时,是一种最无序最不确定的状态,谁也蒙不准下一个答案是什么。但是如果C出现概率高了,那么答案就显得不是那么没规律,考试者选C时的信心就高了一些。也可以回到小磁针的例子理解一下。当向上向下概率均为0.5时,小磁针指向的不确定度最高,如果要传递的信息至少需要1位编码,当向上概率逼近1时,如果很确定小磁针的指向,那还需要编码吗?

最后,举例只是为了举例,考试作弊属于三观不正,另外据笔者亲身经历,选择题选C的论点其实是个谎言。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java Web标签应用开发

Java Web程序员直接在JSP页面中书写Java代码的做法,使得页面中混杂有JavaScript、HTML、Java等多种语言的程序代码,可读性差,可复用性也...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊