**

信息量

**
假设我们听到了两件事,分别如下:
事件A:巴西队进入了2018世界杯决赛圈。
事件B:中国队进入了2018世界杯决赛圈。
仅凭直觉来说,显而易见事件B的信息量比事件A的信息量要大。究其原因,是因为事件A发生的概率很大,事件B发生的概率很小。所以当越不可能的事件发生了,我们获取到的信息量就越大。越可能发生的事件发生了,我们获取到的信息量就越小。那么信息量应该和事件发生的概率有关,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。

设X是一个离散型随机变量,其取值为集合X=x0,x1,…,xn ,则其概率分布函数为p(x)=Pr(X=x),x∈X,则定义事件X=x0 的信息量为:

当p(x0)=1时,该事件必定发生,其信息量为0.

由于是概率所以p(x0)的取值范围是[0,1],绘制为图形如下:

熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。

信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。

熵的计算公式:

其中,p(xi)为事件X=xi的概率,−log(p(xi))为事件X=xi的信息量。

可以看出,熵是信息量的期望值

相对熵(KL散度)

对于同一个随机变量 x 有两个单独的概率分布p(x) 和 q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。

设 p(x),q(x) 分别是离散随机变量X的两个概率分布,则p对q的相对熵是:

表示如果用p来描述目标问题,而不是用q来描述目标问题,得到的信息增量。求和共有n项,表示为事件的所有可能性,值越小,表示q分布和p分布越接近。
在机器学习中,p往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。q用来表示模型所预测的分布,比如[0.7,0.2,0.1]
直观的理解就是如果用p来描述样本,那么就非常完美。而用q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和p一样完美的描述。如果我们的q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,q等价于p。

相对熵具有以下性质:

(1)如果p(x)和q(x)的分布相同,则其相对熵等于0
(2)DKL(p∥q)≠DKL(q∥p),也就是相对熵不具有对称性。
(3)DKL(p∥q)≥0

交叉熵

设 p(x),q(x) 分别是 离散随机变量X的两个概率分布,其中p(x)是目标分布,p和q的交叉熵可以看做是,使用分布q(x) 表示目标分布p(x)的困难程度:

将熵、相对熵以及交叉熵的公式放到一起:

通过上面三个公式就可以得到:

相对熵=交叉熵-熵。

在机器学习中,目标的分布p(x) 通常是训练数据的分布是固定的,即是H§ 是一个常量。这样两个分布的交叉熵H(p,q) 也就等价于最小化这两个分布的相对熵DKL(p∥q)。

设p(x) 是目标分布(训练数据的分布),我们的目标的就让训练得到的分布q(x)尽可能的接近p(x),这时候就可以最小化DKL(p∥q),等价于最小化交叉熵H(p,q) 。

从最大似然看交叉熵

设有一组训练样本X={x1,x2,⋯,xm} ,该样本的分布为p(x) 。假设使用θ 参数化模型得到q(x;θ) ,现用这个模型来估计X 的概率分布,得到似然函数

最大似然估计就是求得θ 使得L(θ) 的值最大,也就是

对上式的两边同时取log ,等价优化log 的最大似然估计:

对上式的右边进行缩放并不会改变argmax 的解,上式的右边除以样本的个数m:

和相对熵等价。
注意上式的

相当于求随机变量X 的函数log(X;θ) 的均值 ,根据大数定理,随着样本容量的增加,样本的算术平均值将趋近于随机变量的期望。 也就是说

其中EX∼P 表示符合样本分布P 的期望,这样就将最大似然估计使用真实样本的期望来表示

对右边取负号,将最大化变成最小化运算。

由于Ex∼p(logp(x)) 是训练样本的期望,是个固定的常数,在求最小值时可以忽略,所以最小化DKL(p∥q) 就变成了最小化−Ex∼p(logq(x)) ,这和最大似然估计是等价的。

最大似然估计、相对熵、交叉熵的公式如下

从上面可以看出,最小化交叉熵,也就是最小化DKL ,从而预测的分布q(x) 和训练样本的真实分布p(x) 最接近。而最小化DKL 和最大似然估计是等价的。

设训练数据中类别的概率分布为p(ci) ,那么目标分布p(ci) 和预测分布q(ci)的交叉熵为

每个训练样本所属的类别是已知的,并且每个样本只会属于一个类别(概率为1),属于其他类别概率为0。具体的,可以假设有个三分类任务,三个类分别是:猫,猪,狗。现有一个训练样本类别为猫,则有:

通过预测得到的三个类别的概率分别为:q(cat)=0.6,q(pig)=0.2,q(dog)=0.2 ,计算p 和q 的交叉熵为:

利用这种特性,可以将样本的类别进行重新编码,就可以简化交叉熵的计算,这种编码方式就是one-hot 编码。以上面例子为例,

通过这种编码方式,在计算交叉熵时,只需要计算和训练样本对应类别预测概率的值,其他的项都是0⋅logq(ci)=0 。

具体的,交叉熵计算公式变成如下:

其中ci 为训练样本对应的类别,上式也被称为负对数似然(negative log-likelihood,nll)。

总结

相对熵可以用来度量两个分布相似性,假设分布p是训练样本的分布,q是预测得到的分布。分类训练的过程实际上就是最小化DKL(p∥q),由于由于交叉熵

其中,H§是训练样本的熵,是一个已知的常量,这样最小化相对熵就等价于最小化交叉熵。

从最大似然估计转化为最小化负对数似然

也等价于最小化相对熵。

参考

  1. https://blog.csdn.net/u010521842/article/details/82186910
  2. https://www.cnblogs.com/wangguchangqing/p/12068084.html

熵、相对熵、交叉熵等理解相关推荐

  1. 熵,信息熵,香农熵,微分熵,交叉熵,相对熵

    2019-07-13 https://blog.csdn.net/landstream/article/details/82383503 https://blog.csdn.net/pipisorry ...

  2. 自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系

    [深度学习基础]:信息论(一)_自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系_bqw的博客-CSDN博客 详解机器学习中的熵.条件熵.相对熵和交叉熵 - 遍地胡说 - 博客园

  3. 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失

    交叉熵损失是深度学习中应用最广泛的损失函数之一,这个强大的损失函数是建立在交叉熵概念上的.当我开始使用这个损失函数时,我很难理解它背后的直觉.在google了不同材料后,我能够得到一个令人满意的理解, ...

  4. [机器学习]理解熵,交叉熵和交叉熵的应用

    一 信息量 信息论当中的熵指的是信息量的混乱程度,也可以理解成信息量的大小. 举个简单的例子,以下两个句子,哪一个句子的信息量更大呢? 我今天没中彩票 我今天中彩票了 从文本上来看,这两句话的字数一致 ...

  5. 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度

    1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...

  6. 从熵到交叉熵损失的直观通俗的解释

    来源:DeepHub IMBA本文约1100字,建议阅读5分钟 本文从信息论的角度解释有关熵的概念. 对于机器学习和数据科学的初学者来说,必须清楚熵和交叉熵的概念.它们是构建树.降维和图像分类的关键基 ...

  7. 信息量、熵、交叉熵、KL散度、JS散度杂谈

    信息量.熵.交叉熵.KL散度.JS散度杂谈 信息量 任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同.如昨天下雨这个已知事件,因为已经发生,既定事实,那 ...

  8. AI入门:通俗讲解熵、交叉熵和 KL 散度

    全文共 4351 字,23 幅图, 预计阅读时间 22 分钟. 本文被以下三份资料所启发,纯纯的致敬! [Christopher Colah] - Visual Information Theory ...

  9. PyTorch-05神经网络与全连接(Logistic Regression、交叉熵、交叉熵来优化一个多分类的问题、全连接层(MLP网络层)、激活函数与GPU加速、测试、Visdom可视化)

    PyTorch-05神经网络与全连接(Logistic Regression逻辑回归.交叉熵.交叉熵来优化一个多分类的问题.全连接层(MLP网络层).激活函数与GPU加速.测试(validation ...

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

    信息量.熵.交叉熵.KL散度.JS散度 文章目录 信息量.熵.交叉熵.KL散度.JS散度 前言 一.信息量 二.熵 三.交叉熵 四.KL散度 五.JS散度 六. Wasserstein距离 1.解决的 ...

最新文章

  1. python解析json_python3 解析 json 字符串并返回支持属性访问的对象
  2. 天涯对房市预测比较准的是孤独的思想
  3. poj 3177 Redundant Paths
  4. 从FTP服务器进行文件的上传和下载
  5. Spring+Quartz 集群
  6. hadoop 写入mysql_使用MapReducer将文件写入mysql 数据库
  7. 数据切分——Atlas读写分离Mysql集群的搭建
  8. VS2008如何添加 OLE/COM 对象查看器 .
  9. 部署和调优 1.3 pureftp部署和优化-1
  10. acquire方法_Python锁类| 带有示例的acquire()方法
  11. Shell_Oracle Erp和其他系统Interface资料传输通过Shell进行控制(案例)
  12. 凸包模板(分治 or Graham扫描法)
  13. (转)使用CUnit进行单元测试和覆盖率统计
  14. 利用octave求矩阵的转置
  15. visio如何忽略跳线|跨线
  16. 秒杀系统设计的关键点思考
  17. python正态性检验_在python中做正态性检验示例
  18. arcgis 将2000球面坐标转换成平面坐标
  19. 6大页面数据抓取工具
  20. Android 更换 APP logo 无效问题处理

热门文章

  1. 新手小白,用手机在家做情感短视频,一个视频赚了3000
  2. C#计算圆的周长和面积、梯形的面积、三角形的面积
  3. python求三角形面积步骤_通过求三角形面积步入python程序世界.pdf
  4. javaweb知识点总结(黑马视频笔记)
  5. 海思HI3518E视频处理基础概念《三》----- 视频处理子系统VPSS
  6. M5(项目)-01-尚硅谷谷粒商城项目分布式基础篇开发文档
  7. 上海海事大学计算机考研资料汇总
  8. 你有22款高逼格免费字体请下载!
  9. termux文件导入导出
  10. 十大排序算法(C++)