一文总结条件熵、交叉熵、相对熵、互信息

原创 2017年09月07日 22:13:40

条件熵:H(Y|X)表示在已知随机变量X的条件下,随机变量Y的不确定性,H(Y|X)定义为:


举个例子:
  有一堆西瓜,已知这堆西瓜的色泽,以及每种色泽对应好瓜和坏瓜的个数,如下所示,设X表示色泽,Y表示好瓜或者坏瓜。





则:




这个例子就是计算条件熵的一个过程,现在证明条件熵公式:








有很多书上的条件熵是这么定义的,如果继续化简就可以得到我们上面定义的条件熵,接着化简:







得证!


信息增益:

  ,表示X出现后随机变量Y的不确定性减少了多少。


  比如上述西瓜的例中,当不知道色泽的时候,好瓜与坏瓜的不确定度为:


  当知道色泽之后,好瓜与坏瓜的不确定度为:


  那么知道色泽之后,好瓜与坏瓜的不确定度减少了:



交叉熵(只谈论离散情况)

  假设有这样一个样本集,p为它的真实分布,q为它的估计分布。如果按照真实分布p来度量识别一个样本所需要的编码长度的期望为:(如果对编码长度不了解的,请看:http://blog.csdn.net/hearthougan/article/details/77774948


  如果使用估计的分布q来表示来自真实分布p的平均编码长度,则:


  因为我们编码的样本来自于真实的分布p,所以乘的是真实概率。在图像分类的时候,比如softmax分类器,在训练的时候,我们已经给定图像的标签,所以这个时候每幅图片的真实概率就是1,这个时候的损失函数就是:


  怎么理解呢?就是让预测的概率值越来越接近于1!(想多了解softmax,请参考http://blog.csdn.net/hearthougan/article/details/71629657

举个知乎上的例子,有4个字母(A,B,C,D)的数据集中,真实分布p=(1/2, 1/2, 0, 0),即A和B出现的概率均为1/2,C和D出现的概率都为0,


  真实分布的编码长度(最优编码长度)

  也就是说,我们仅仅需要一位编码就可以确定所要发送的数据是什么。那么假如我们的估计分布如下:

  那么发送数据的平均编码长度为:


  即为了确定所发送的数据,平均需要长度2编码,才可以。交叉熵可以这么理解:用估计的分布对来自真实分布的样本进行编码,所需要的平均长度

  根据Gibbs' inequality可知交叉熵要大于等于真实分布的信息熵(最优编码)。Gibbs' inequality如下:

对于样本服从分布,对于其他任何概率分布,都有:


当且仅当时,等号成立。


相对熵(KL散度)

  由交叉熵可知,用估计的概率分布所需的编码长度,比真实分布的编码长,但是长多少呢?这个就需要另一个度量,相对熵,也称KL散度。


  相对熵:用交叉熵减去真实分布的信息熵,表示用估计分布计算的平均编码长度比最短平均编码长度长多少。因此有:

  交叉熵=信息熵+相对熵

  由于对数函数时凸函数,则有:


  因此,相对熵始终是大于等于0的。从上面的描述中也可以看得出,相对熵其实可以理解成两种分布的距离。

互信息:

  两个随机变量X,Y的互信息,定义为:X,Y的联合分布P(X,Y)与乘积分布P(X)P(Y)的相对熵:


  怎么理解呢?也就是用乘积分布P(X)P(Y)的交叉熵,减去联合分布的信息熵,就是互信息,还不好理解,就可以看如下图示:


  相当于一种不严谨的说法就是:

  或许另一种等价的定义好理解:


  其实两种定义是等价的:



Reference:

https://baike.baidu.com/item/%E7%9B%B8%E5%AF%B9%E7%86%B5/4233536?fr=aladdin

https://baike.baidu.com/item/%E4%BA%92%E4%BF%A1%E6%81%AF/7423853?fr=aladdin

https://www.zhihu.com/question/41252833

版权声明:本文为博主原创文章,转载需注明出处。 举报

相关文章推荐

Android设计模式学习之观察者模式

观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI...

关注CSDN程序人生公众号,轻松获得下载积分

关注公众号 在公众号里回复“”秘密“”两个字 返回 http://task.csdn.net/m/task/home?task_id=398 领取奖励 提示:根据公众号里的自动回复,完成...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

属性动画----把图片渐渐变小不见(主函数MainActivity 页面)(XML布局)(本布局和渐变布局一样)

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schema...

JavaEE 6及以上版本的web.xml问题?

JavaEE 6及以上版本的web.xml问题?MyEclipse JavaEE 6版本开始web.xml突然消失不见?没这回事,只是不太必须而已,有需要的项目可以自行进行添加或在创建项目的时候点击n...

spring集成 JedisCluster 连接 redis3.0 集群

maven依赖: redis.clients jedis 2.8.0 2. 增加spring 配置 ...

Android 图片毛玻璃的实现方法

注:本文的高斯模糊只能显示,如果想要保存模糊后的图片,请参考另一篇文章:http://blog.csdn.net/fan7983377/article/details/51568059 效果...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)