先陈述我这里说了半天的信息熵是个什么东西?

这里说的信息熵是什么东西?

信息熵主要是应用在集成学习作为评价指标,判定我们某次的分类是不是效果足够好。

这里说的交叉熵是什么东西?

虽然之前还有其他应用,但是这个东西目前最主要的应用还是深度学习当中作为损失函数来支撑反向传播的优化。

1.什么是信息量?从信号量理解信息熵

先看百度百科怎么说:信息量是指信息多少的量度。1928年R.V.L.哈特莱首先提出信息定量化的初步设想,他将消息数的对数定义为信息量。若信源有m种消息,且每个消息是以相等可能产生的,则该信源的信息量可表示为I=log2m。

自己理解一下这个事情:这个东西的就是反映一个信号具有多少信息的问题。

那么接下来我们要思考我们平时生活当中的一句话到底怎么对应一个信号个数,例如我们中国乒乓男团获得了冠军,这个获得冠军到底包含了多少信息?(也就是其信息量应该定义为多少?)

刚好看《数学之美》中有一个非常直观的例子:

假设我们没有看世界杯的比赛,但是想知道哪支球队会是冠军,只能去问已经看过比赛的观众,但是我们只能猜测某支球队是或不是冠军,然后观众用对或不对来回答,我们想要猜测次数尽可能少,所用的方法就是二分法。假如有 16 支球队,分别编号,先问是否在 1-8 之间,如果是就继续问是否在 1-4 之间,以此类推,直到最后判断出冠军球队是哪只。如果球队数量是 16,我们需要问 4 次来得到最后的答案。那么世界冠军这条消息的信息量就是 4。在计算机中,这条信息的信息量就是 4 比特,如果一共是 32 支球队参赛,那么世界冠军的信息量就是 5 比特,可以看到信息量跟可能情况的对数 log (以 2 为底)有关(这里大概有点知道为什么求熵的公式里会有一个 log 了)。

这里我们细致的理解一下为什么选择log2?这个问题其实可以转化成了:为什么使用二分法?这个问题。为什么使用二分法?其实就很好回答了,这是我们最有效的直接获得最终结果的方法。
其他的方法:

  • 1.平均效果不理想,例如我们直接询问是不是3队获得了冠军,可能直接就猜中了,也有可能我们猜了半天都是巧妙的躲避了正确答案。
  • 2.需要特殊的前提,例如由于某次比赛的分组具有特殊性,对4同余的队伍不可能同时获得冠军,这里我们可能就有更好的方式了,但是这就引入了特殊的条件。

但是以往经验表示,如果世界杯有 32 支球队参赛,有些球队实力很强,拿到冠军的可能性更大,而有些队伍拿冠军的概率就很小。我们在之前用二分法计算的时候其实是看做每个球队夺冠的概率都相等,因此我们从最可能夺冠的几支球队中猜测冠军球队,实际需要的信息量是小于我们之前方法计算的信息量的。

这里我们就得思考:某个球队的概率发生变化的时候,这个球队夺冠的信息量是怎么变化的?

这里例如某个球队夺冠的概率为八分之一,其实就相当于在八种可能性当中选择了这个队伍的可能性,所以我们得到这个队伍赢得冠军的局部信息量其实就是log2(1/p)(其中的p是这个队伍获得冠军的概率)所以想要得到总体的信息量均值,其实就是把每个局部的信息量的值,都加上相应的权重就完事了。
将负号提出来某个队伍夺得冠军的信号量就是下面的表达式了:

这样也就出现了 信息量的均值是(Σp[log2(1/p)])/n
其实这就是我们平常获得所说的信息熵,只是我们信息熵将这个1/p提取了一个负号出来,也就得到了下面的内容:

然后这里我们理解一下。为什么这个东西越接近0越说明这是同一个类别,信息量(获得这些种类的需要的信息的个数)为0的时候我们其实获得的分类数就是2的0次方个分类,也就是1个分类。

也就是说信息熵越接近0那么这里的内容的种类也就越统一,也就是我们集成学习的分类效果越好,这也是集成学习的一个依据。

2.想要顺利理解交叉熵我们得从KL散度开始理解

KL散度

如果对于同一个随机变量X有两个单独的概率分布P ( x ) 和Q ( x ) ,则我们可以使用KL散度来衡量这两个概率分布之间的差异。

这个是Kullback-Leible提出来的,我并不能理解为什么这个可以反映两个分布的相似程度,我只能笼统的理解一下这个东西是:每个概率计算相似度,计算某个位置的相似度的方式是:
大约我们理解其为,比例为1,也就是完全相同的时候恰好为0也就是最像的时候就是0,所以可以大致表示一个两者的相似度。

信息熵和交叉熵的细节理解相关推荐

  1. 信息熵、交叉熵公式的理解

    一 信息熵的意义: 代表**信息量(不确定度)**的大小.变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大. ###二 信息熵的公式定义: H(X)=E[log2P(X)−1]=∑iP ...

  2. 机器学习:什么是困惑度?从信息熵和交叉熵谈起

    一.前言 这片博客从信息论的角度解读信息熵.交叉熵和困惑度.有助于帮助在机器学习之路上理解相应的损失函数和评价指标.要了解交叉熵和困惑度是怎么计算的,以及为什么这样计算是有效的,我们需要从基础的信息量 ...

  3. 信息熵、交叉熵、KL散度公式的简单理解

    整理:我不爱机器学习 1 信息量 信息量是对信息的度量,就跟时间的度量是秒一样,考虑一个离散的随机变量 x 的时候,当观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢? 例如听到太阳从东方升 ...

  4. matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...

    首先先强烈推荐一篇外文博客Visual Information Theory这个博客的博主colah是个著名的计算机知识科普达人,以前很是著名的那篇LSTM讲解的文章也是他写的.这篇文章详细讲解了信息 ...

  5. 信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    前两篇介绍了目标检测中的回归损失函数,本来这篇打算介绍目标检测中的分类损失函数.但是介绍classification loss function自然绕不过交叉熵,所以还是简单的把信息论中的一些概念在这 ...

  6. GANs之信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    信息量也叫做香农信息量,常用于刻画消除随机变量X在x处的不确定性所需的信息量大小.假设只考虑连续型随机变量的情况,设p为随机变量X的概率分布,即p(x)为随机变量X在X=x处的概率密度函数值,随机变量 ...

  7. 为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解

    0.sigmoid.softmax和交叉熵损失函数的概念理解 sigmoid.softmax和交叉熵损失函数 1.使用场景 在二分类问题中,神经网络输出层只有一个神经元,表示预测输出 是正类 的概率 ...

  8. 相对熵、信息熵和交叉熵

    what: 交叉熵是信息论的重要概念:用于度量两个概率分布之间的差异性: 其他相关知识: 信息量: 信息是用来消除随机不确定的东西: 信息量的大小与信息发生的概率成反比: I(x)=−log(P(x) ...

  9. 深度学习中softmax交叉熵损失函数的理解

    1. softmax层的作用 通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节 ...

最新文章

  1. invoke 数组_如何对一个亿的数组进行快速排序
  2. BufferedReader和BufferedWriter读写文件
  3. C#泛谈 —— 变体(协变/逆变)
  4. 【HDU - 2012】素数判定(水题,数论,打表)
  5. OpenShift 4 - Fedora CoreOS (6) - 用rpm-ostree安装软件、升级回滚CoreOS
  6. 蓝桥杯 ADV-167算法提高 快乐司机(贪心算法)
  7. Android BroadcastReceiver示例教程
  8. 技术分析淘宝的超卖宝贝
  9. HDU 1019 least common Multipy
  10. mysql innodb cluster 搭建
  11. 【JZOJ 省选模拟】6638.Seat
  12. 利用Android手机破解微信加密数据库EnMicroMsg.db文件
  13. 误删代码,回收站又被清空还没有备份教你如何解决
  14. Artifact “xxx - xxxx“:war exploded: 部署工件时出错。请参阅服务器日志了解详细
  15. 基于李雅普诺夫函数的跟踪控制(二)
  16. onenote如何删除笔记本
  17. JAVA 浏览器下载excel,自定义样式:合并单元格,设置多种背景填充颜色,冻结窗格
  18. 根轨迹和系统参数的确定
  19. mysql curdate前一天_mysql数据库中CURDATE()函数起什么作用呢?
  20. 动态生成 3D 可打印的收款码

热门文章

  1. 只用来保存JQuery lightbox图片用的
  2. VMware手动启动USB Arbitration Service
  3. [机器学习] Coursera ML笔记 - 神经网络(Representation)
  4. linux下wifi编程(基于netlink和nl80211.h)
  5. 一定是h的方式不对阅读_大连二手QH69系列H型钢抛丸机厂商_深蓝永盛二手抛丸机...
  6. php如何获取js文本框内的内容,js获取input标签的输入值(实例代码)
  7. 如何查看oracle版本信息,如何查看oracle版本信息
  8. php实现小论坛,PHP开发 小型论坛教程之添加论坛-1
  9. 事件控制块的原理与创建
  10. hql 字符串where语句_hibernate的hql查询语句总结