熵这个词原本是物理学中表示分子混乱程度的物理量,香农(Claude Elwood Shannon)借用过来描述信源的平均不肯定性。信息熵的内容在信息论相关教材中有详细的描述,这里仅对机器学习中用到的部分相关概念作个笔记。算法
信息有别于消息,是对事物运动状态或存在方式的不肯定性的描述,而且这种不肯定性是有大小的。机器学习
好比咱们在手机上看到这样两则新闻:函数
科学家经过新技术复活了一只原核细菌。学习
科学家经过新技术复活了一只恐龙。优化
听到这两句话的时候,咱们心里的波动是不同的,对于复活的细菌,咱们可能看一眼就刷过去了;对于复活的恐龙,咱们可能火烧眉毛的细看一下,若是能够的话,咱们也想亲眼见识见识这数千万年前的庞然大物。换言之,这两句话带给咱们的信息量是不一样的,原核生物复活的可能性大,信息量就小;恐龙复活的可能性小,信息量就大。spa
那么信息量的大小如何度量呢?前面说到信息是对事物不肯定性的描述,不肯定性与事件发生的几率有关,几率越小,不肯定性越大,事件发生后所含的信息量就越大。.net
设事件的几率为
,则它的自信息量为3d
表明两种含义:在事件发生之前,表示事件
发生的不肯定性的大小;在事件发生之后,表示事件
所包含的信息量。code
式中对数的底可任取,blog
通常取2为底,常省略。
注:由于咱们考察的只是一个随机事件自己的信息量,因此称为自信息,若是考察两个事件的相互影响,则为互信息。互信息咱们未使用,暂且不谈。
信息熵是对系统平均不肯定性的描述。从几率统计的角度,信息熵就是随机变量的函数
的指望,也就是全部事件自信息量的加权平均,即
其中,
为
的全部可能取值个数。
例:随机变量
对应的几率空间为
0.98
0.01
0.01
则
的信息熵为
将联合自信息与条件自信息进行平均,便获得联合熵与条件熵。
假设二维随机变量的几率空间为
联合熵定义为联合自信息的数学指望,是二维随机变量的不肯定性的度量
条件熵 表示在已知随机变量X的条件下随机变量Y的不肯定性。定义为X给定条件下Y的条件几率分布的熵对X的数学指望
其中,,即为给定
的条件下Y的条件几率分布的熵。代入上式展开为
形式上,交叉熵是一个随机变量的几率分布对另外一个几率分布
定义的自信息
的数学指望,表示为
若是为某个数据集的真实分布,
为非真实的近似分布,交叉熵就表示使用分布
来消除分布
的不肯定性所需代价的大小。
由吉布斯不等式(当
时等号成立)知,信息熵是消除系统不肯定性所需的最小代价,真实分布与任何其余非真实分布的交叉熵都比其自身的信息熵大。这也就是说,交叉熵可以反映两个分布的差别性大小,交叉熵越小,近似分布
就越接近真实分布
(若是分布
就是分布
了,那么交叉熵就是信息熵,即
,此时消除系统不肯定性所需代价达到最小)。因此一些分类算法中常常使用交叉熵做为损失函数。
交叉熵间接反映了两个分布的差别性大小,更直接一点,若是用分布近似分布
,那么它们的差别性究竟有多大呢?咱们能够用二者的相对熵(K-L散度,也就是二者熵之差)来定量衡量。
用分布近似真实分布
,交叉熵为
真实分布自身的信息熵为
相对熵(K-L散度),即二者熵之差为:
它恒为正值,直接地衡量了两个分布差别性的大小。
在分类算法中,咱们须要评估优化标签和预测值之间的差距,使用KL散度正好合适,只不过是固定不变的,因此咱们只须要使用前半部分的交叉熵就能够了。也有人将K-L散度称为两个分布的K-L距离,只是它不是对称的,即
.
参考: