1、前言
在研究机器学习一些算法原理时,经常会出现各种有关信息论的概念(自信息、互信息等),此前已分享过一篇文章,但是相对简单了一些,本次将再进一步分析各种相关概念。
2、相关概念
2.1 自信息(信息量)
“信息就是用来消除随机不确定性的东西”----香农。
信息量是用来衡量一条消息(一个事件)发生后所带来的信息大小,例如:太阳从东边升起(一定会发生的事情,所以信息量非常小,基本没什么信息量),某地发生了地震(该事件发生的概率极小,所以其信息量很大)。
一条消息(一个事件)所包含的信息量与这条消息(这个事件)能够对整个系统消除的不确定性是正相关的。通俗说,一条消息的信息量越大,则对整个系统所消除的不确定性越大。信息量计算公式为:
注:公式中的负号是要保证信息为正,随便一条消息一定不会有负的信息量。
信息量有以下特性:
- (1)随着事件发生概率的增加,其信息量在较少;
- (2)多个独立事件同事发生,其总信息量等于各个信息量的和。
2.2 熵(信息熵)
熵用来描述一个事件的不确定性大小,表示某事件所有可能发生的情况的信息量的期望值(可以简单理解为:所有可能情况信息量的均值),计算公式如下:
基本性质:
- (1)非负性:,当某事件是确定发生的事情,则其熵为0(太阳从东边升起的信息熵为0);
- (2)某随机变量每次发生的情况越不确定( 不确定性越大),则其熵值越大,此时,该变量的分布也约混乱;
- (3)当某事件对每种可能发生情况的概率是相等时,则其熵值最大;
例(来自周志华老师《机器学习》一书):
已知信息如下图(Y表示好瓜或坏瓜):
则可得到以下熵值(以下公式中,是确定X为某种颜色的情况下Y的熵值,并非条件熵):
2.3 联合熵
表示事件X与Y都发生时的熵值大小(本人理解:事件X与Y都发生能够带来多少信息量。如果理解有误,希望留言指出,先谢过各位。),计算公式如下:
2.4 条件熵
表示在某事件发生的情况下,另外一事件发生的熵值大小,(本人理解:某事件发生后,另外一事件发生可以带来多少信息量。如果理解有误,希望留言指出,先谢过各位。)计算公式如下:
性质1:
证明:
性质2:
下面借助网上一张图,来说明联合熵与条件熵的关系。
左边圆表示事件X发生时可以带来的信息量;
右边圆表示事件Y发生时可以带来的信息量;
两个圆总面积就是联合分布,两事件都发生可以带来的信息;
左边圆减去两个圆的交集部分,表示事件Y发生后事件X发生时可以带来的信息量,也就是条件熵,右边同理;
两个圆交集部分是互信息(下文将详细介绍)
2.5 交叉熵
在机器学习或深度学习中,经常用交叉熵表示预测结果相对真实结果的错误程度,所以在模型训练时常作为损失函数。计算公式如下:
其中,表示随机变量的真实分布,是预测结果的分布。结果越小,则说明预测结果越接近真实结果。
这里引用网上一句概括:交叉熵,用来高衡量在给定的真实分布下,使用非真实分布指定的策略消除系统的不确定性所需要付出努力的大小。
2.6 相对熵(KL散度)
相对熵用来衡量两个概率分布之间的差异,计算公式如下:
从公式中可以看出,当与相等时,相对熵(KL散度)为0。在深度学习训练(或者其他方法训练)过程中,该值在不断减小,多以也可将该值的减小作为训练的一个目标。
2.7 互信息
互信息是指已知一个随机变量后,另外一个变量信息量减少的程度,表示两个分布之间的距离,计算公式如下:
所以,如果两个变量的相关性(不一定是线性相关系)越大,则其互信息值越大,当两个变量完全独立时,则其互信息为0
2.8 最大互信息系数(MIC)
上面提到的互信息是针对离散变量,最大互信息系数则时对于连续变量,用于衡量两个变量的线性或非线性的强度,计算公式为:
关于这部分内容,这里推荐一篇好的博文
以上内容如有理解不当,请指出,谢谢!另,文章中有些内容来源于一些书籍或其他博客,这里就不一一列举,如有侵权,请与我联系删除。