每天给你送来NLP技术干货!


转载自 | PaperWeekly

作者 | 康斯坦丁

研究方向 | 信号处理与人工智能

看了很多讲交叉熵的文章,感觉都是拾人牙慧,又不得要领。还是分享一下自己的理解,如果看完这篇文章你还不懂这俩概念就来掐死我吧。

1

『先翻译翻译,什么叫惊喜』

我们用 表示事件 发生的概率。这里我们先不讨论概率的内涵, 只需要遵循直觉: 可以衡量事件 发生时会造成的惊喜(行文需要,请按照中性理解)程度:

概率越低的事件发生所造成的惊喜程度高;概率越高的事件发生所造成的惊喜程度低。

但是概率倒数这一运算的性质不是很好,所以在不改变单调性的情况下,可以将惊喜度(surprisal)定义为:

这样定义后产生了另外两个好处:

1. 确定性事件的惊喜度 = 0;

2. 如果有多个独立事件同时发生,他们产生的惊喜度可以直接相加。是的,一个事件发生概率的倒数再取对数就是惊喜。

2

『信息熵,不过只是惊喜的期望』

惊喜度,在大部分文章里,都叫做信息量,但这个命名只是香农根据他研究对象的需要而做的,对于很多其它的场景,要生搬硬套就会变得非常不好理解了。

信息量 = 惊喜度,那么信息熵呢?看看公式不言自明:

或是连续形式:

这不就是惊喜度的期望吗?

换句话说,信息熵描述的是整个事件空间会产生的平均惊喜。

什么情况下,平均惊喜最低呢?确定事件。以某个离散随机分布为例,整个分布在特定值 为 1,其它处均为 0,此时的信息熵/平均惊喜也为 0。

什么情况下产生的平均惊喜最高呢?自然是不确定越高平均惊喜越高。对于给定均值和方差的连续分布,正态分布(高斯分布)具有最大的信息熵(也就是平均惊喜)。所以再想想为什么大量生活中会看到的随机事件分布都服从正态分布呢?说明大自然有着创造最大惊喜的倾向,或者说,就是要让你猜不透。这也是理解热力学中的熵增定律的另一个角度。

3

『交叉熵,交叉的是古典和贝叶斯学派』

对于概率,比较经典的理解是看做是重复试验无限次后事件频率会逼近的值,是一个客观存在的值;但是贝叶斯学派提出了另一种理解方式:即将概率理解为我们主观上对事件发生的确信程度。

针对同一个随机变量空间有两个分布,分别记作  和 ;

是我们主观认为  会发生的概率,下标  代表 subjective;

是客观上  会发生的概率,下标 ○ 代表 objective。

这种情况下,客观上这个随机事件  会给我们造成惊喜的期望应该是:

这个量 is a.k.a 交叉熵。

再翻译一下,交叉熵是什么?可以理解为:我们带着某个主观认知去接触某个客观随机现象的时候,会产生的平均惊喜度。

那什么时候交叉熵(也就是我们会获得的平均惊喜度)会大?就是当我们主观上认为一个事情发生的概率很低 很大),但是客观上发生概率很高 很大) 的时候,也就是主观认知和客观现实非常不匹配的时候。机器学习当中为啥用交叉熵来当作损失函数应该也就不言自明了。

4

『相对熵,K-L散度』

交叉熵可以衡量我们基于某种主观认识去感受客观世界时,会产生的平均惊喜。但是根据上面的分析,即使主观和客观完全匹配,这时交叉熵等于信息熵,只要事件仍然随机而非确定,就一定会给我们造成一定程度的惊喜。那我们要怎么度量主观认识和客观之间差异呢?可以用应该用以当前对“世界观”产生的惊喜期望和完全正确认识事件时产生的惊喜期望的差值来衡量,这个就是相对熵(常称作 KL-散度),通常写作:

当我们的主观认知完全匹配客观现实的时候,KL-散度应该等于 0,其它任何时候都会大于 0。由于存在恒为正这一性质,KL-散度经常用于描述两个分布是否接近,也就是作为两个分布之间“距离”的度量;不过由于运算不满足交换律,所以又不能完全等同于“距离”来理解。

机器学习中通常用交叉熵作为损失函数的原因在与,客观分布并不随参数变化,所以即使是优化 KL-散度,对参数求导的时候也只有交叉熵的导数了。


一篇文章讲清楚交叉熵和KL散度相关推荐

  1. 交叉熵损失函数、修正Huber损失、极大似然估计、负对数似然、似然与交叉熵、KL散度

    交叉熵损失函数.修正Huber损失.极大似然估计.负对数似然.似然与交叉熵.KL散度 目录

  2. 为什么交叉熵和KL散度在作为损失函数时是近似相等的

    来源:DeepHub IMBA 本文约900字,建议阅读5分钟 在本文中,我们将介绍熵.交叉熵和 Kullback-Leibler Divergence [2] 的概念,并了解如何将它们近似为相等. ...

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

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

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

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

  5. 交叉熵 与 KL散度

    交叉熵 与 KL散度(两者相一致) 一.背景 1.统计学习的方法 人们对人工智能所研究的东西的描述有很多版本. 其中<统计学习方法>一书中给出了一种说法是: "统计学习的方法是基 ...

  6. matlab计算kl散度命令,熵,交叉熵,KL散度公式与计算实例

    交叉熵(Cross Entropy)和KL散度(Kullback–Leibler Divergence)是机器学习中极其常用的两个指标,用来衡量两个概率分布的相似度,常被作为Loss Function ...

  7. 交叉熵与KL散度和交叉熵之间的关系

    1.熵 熵的本质是香农信息量log1plog\frac{1}{p}logp1​ 现有关于样本的两个概率分布ppp和qqq,其中ppp为真实分布,qqq为非真实分布.按照真实分布ppp来衡量识别一个样本 ...

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

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

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

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

最新文章

  1. shell编程_linux
  2. vim查找/替换字符串
  3. trace分析优化器执行计划 || optimizer
  4. RocketMQ控制台安装教程
  5. 是MPEG没有未来,还是未来不需要MPEG
  6. 《Java程序设计》学期总结
  7. 微信小程序自定义组件生命周期
  8. b2b优势与劣势_在Amazon Business平台销售的优点和缺点,B2B卖家清楚吗?
  9. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
  10. fedora16 解码方案
  11. 【luogu4185】 [USACO18JAN]MooTube [并查集]
  12. 推荐 10 款适合 C/C++ 开发人员的 IDE
  13. Day12:使用正则表达式
  14. Windows快捷键盘
  15. 创业十年的感悟,创业者首先要让自己活下去
  16. 第25节 虚拟专有网络原理及配置命令
  17. sql中替换字段的部分字符
  18. python3 tkinter 刷新标签图片
  19. 有图书馆有计算机教室的英语,以my school为题的英语作文有图书馆,办公室,音乐室,教室,体育馆...
  20. 统一身份认证,企业实现统一身份认证有什么好处?

热门文章

  1. JAVA项目中实现邮箱验证的方法
  2. Recognition Emotion Cause in Conversations 论文阅读笔记
  3. QQ2012 for Linux (2012-12-21 07:50:57)
  4. 同宿舍的程序员毕业五年的现状之女生宿舍篇
  5. 【H5游戏】-使用CreateJS实现一个【拯救球员】小游戏,快@你的小伙伴一起来玩儿吧
  6. 01工作环境准备及数据分析建模理论基础
  7. linux igmp 属于那层协议,Linux下IGMP协议测试工具的开发与应用
  8. 换发型算法_GitHub - DylanMaeng/yry: yry(颜如玉)—— 一个实现人脸融合的算法,可以接近腾讯天天P图疯狂变脸功能的效果...
  9. phpstorm 突然打开不了了
  10. 小寒也会写程序(三) .