https://www.toutiao.com/a6681435530564993544/

2019-04-19 11:02:15

机器学习领域有一个十分有魅力的词:熵。然而究竟什么是熵,相信多数人都能说出一二,但又不能清晰的表达出来。

而笔者对熵的理解是:“拒绝学习、拒绝提升的人是没有未来的,也只有努力才能变成自己想成为的人”

下图是对熵的一个简单描述:

熵可以理解为是一种对无序状态的度量方式。那么熵又是如何被用在机器学习中呢?

在机器学习领域中,量化与随机事件相关的预期信息量以及量化概率分布之间的相似性是常见的问题。针对这类问题,利用香农熵以及衍生的其他熵概念去度量概率分布的信息量是个很好的解决方案。本文会尽可能用简单的描述分享自己对各种熵的定义及理解,欢迎交流讨论。

1. 自信息

自信息又称信息量。

“陈羽凡吸毒?!工作室不是刚辟谣了吗?哇!信息量好大!”

在生活中,极少发生的事情最容易引起吃瓜群众的关注。而经常发生的事情则不会引起注意,比如吃瓜群众从来不会去关系明天太阳会不会东边升起。

也就是说,信息量的多少与事件发生概率的大小成反比。

对于已发生的事件i,其所提供的信息量为:

其中底数通常为2,负号的目的是为了保证信息量不为负。

事件i发生的概率与对应信息量的关系如下所示:

我们再考虑一个问题:假设事件x个可能的状态,例如一枚硬币抛出落地后可能有两种状态,正面或反面朝上,这时候该怎样取衡量事件所提供的信息量?

2. 信息熵

信息熵又称香农熵。

到目前为止,我们只讨论了自信息。实际上,对于一枚硬币来讲,自信息实际上等于信息熵,因为无论正反面,朝上的概率都相等。

信息熵用来度量一个事件可能具有多个状态下的信息量,也可以认为是信息量关于事件概率分布的期望值:

其中事件x共有n个状态,i表示第i个状态,底数b通常设为2,也可设为10或e。

H(x)表示用以消除这个事件的不确定性所需要的统计信息量,即信息熵。

还是以抛硬币为例来理解信息熵:

事件

概率

信息量(自信息)

信息熵(统计信息量)

正面朝上

1/2

-log(1/2)

(-1/2 * log(1/2))+( -1/2 * log(1/2))

反面朝上

1/2

-log(1/2)

(-1/2 * log(1/2))+( -1/2 * log(1/2))

根据信息熵公式可得出以下结论:

  1. 若事件x个状态发生概率为1,那么信息熵H(x)等于0
  2. 若事件x的所有状态n发生概率都一致,即都为1/n,那么信息熵H(x)有极大值logn。

信息熵可以推广到连续域,此时被称为微分熵。对于连续随机变量x和概率密度函数p(x), 信息熵的定义如下:

3. 联合熵

上面我们讲到的都是对于一个事件的熵。那么如果有多个事件,例如事件x和事件y都出现时,又该怎样去度量呢?

首先,是联合熵,公式如下:

其中p(x,y)代表事件x和事件y的联合概率。

这次以同时抛两枚硬币为例来说明联合熵如何对两个事件进行度量:

事件

概率

信息量(自信息)

联合熵

x正,y正

1/2 * 1/2 = 1/4

-log(1/4)

-(1/4*log(1/4)+ 1/4 * log(1/4) + 1/4 * log(1/4) + 1/4 * log(1/4))

x正,y反

1/2 * 1/2 = 1/4

-log(1/4)

-(1/4*log(1/4)+ 1/4 * log(1/4) + 1/4 * log(1/4) + 1/4 * log(1/4))

X反,y正

1/2 * 1/2 = 1/4

-log(1/4)

-(1/4*log(1/4)+ 1/4 * log(1/4) + 1/4 * log(1/4) + 1/4 * log(1/4))

X反,y反

1/2 * 1/2 = 1/4

-log(1/4)

-(1/4*log(1/4)+ 1/4 * log(1/4) + 1/4 * log(1/4) + 1/4 * log(1/4))

4. 条件熵

条件熵表示在已知事件x的条件下,事件y的不确定性。定义为在给定条件下x,y的条件分布概率的熵对x的数学期望:

可以发现,条件熵与联合熵仅仅在于log项不同。

此外,根据联合概率分布与条件概率分布的关系,可得:

所以:

即在x条件下,y的条件熵 = x,y的联合熵 - x的信息熵。

5. 交叉熵

交叉熵是一个用来比较两个概率分布p和q的度量公式。换句话说,交叉熵是衡量在真实分布下,使用非真实分布所制定的策略能够消除系统不确定性的大小

如何正确理解上述这段描述呢?首先,观察交叉熵的公式,如下图所示:

其中,p(x)为事件的真实分布概率,q(x)为事件的非真实分布概率。

可以看到,与信息熵相比,唯一不同的是log里的概率由信息熵中的真实分布概率p(x)变成了非真实概率(假设分布概率)q(x),即1-p(x)。也就是与信息熵相比,交叉熵计算的不是log(p)在p下的期望,而是log(q)在p下的期望。

同样地,交叉熵可也以推广到连续域。对于连续随机变量x和概率密度函数p(x)和假设分布概率密度函数q(x), 交叉熵的定义如下:

所以,如果假设分布概率与真实分布概率一致,那么交叉熵 = 信息熵

6. 相对熵

相对熵又称KL散度。

相对熵衡量了当修改从先验分布p到后验分布q的信念后所带来的信息增益。换句话说,就是用后验分布 q 来近似先验分布 p 的时候造成的信息损失。再直白一点,就是衡量不同策略之间的差异性。

计算公式如下:

其中H(p,q)代表策略p下的交叉熵,H(p)代表信息熵。所以,相对熵 = 某个策略的交叉熵-信息熵

相对熵用来衡量q拟合p的过程中产生的信息损耗,损耗越少,q拟合p也就越好。

需要注意的是,尽管从直觉上相对熵(KL散度)是个度量或距离函数, 但是它实际上并不是一个真正的度量或距离。因为KL散度不具有对称性:从分布P到Q的距离通常并不等于从Q到P的距离。

7. 互信息

互信息用来表示两个变量X与Y之间是否有关系,以及关系的强弱。

用公式可以表示为:

因此,可认为变量X与Y的互信息就是信息熵H(X)与条件熵H(X|Y)的差

8. 熵在机器学习中的应用

针对熵的应用,个人总结主要有以下几点:

  • 在贝叶斯网络中,会假设一个先验分布,目的是为了反映随机变量在观测前的不确定性。在进行模型训练时,减小熵,同时让后验分布在最可能的参数值周围形成峰值。
  • 在做分类任务的参数估计时,尤其是在神经网络中,交叉熵往往作为损失函数用来更新网络权重。
  • 在树模型算法中,熵的作用也是不可或缺,尤其是在使用ID3信息增益、C4.5增益率时,通过使用熵来划分子节点,从而可以构造出整棵树。

一文总览机器学习中各种【熵】的含义及本质相关推荐

  1. 一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout)

    一文解决机器学习中的过拟合与欠拟合问题(正则化,数据增强,Dropout,提前终止) 生活中的过拟合与欠拟合现象 过拟合与欠拟合的概念 解决过拟合与欠拟合问题的四大金刚 正则化 数据增强 Dropou ...

  2. 一文了解机器学习中的交叉熵

    https://www.toutiao.com/a6654435108105224712/ 2019-02-05 16:46:49 熵 在介绍交叉熵之前首先介绍熵(entropy)的概念.熵是信息论中 ...

  3. 相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵

    目录 信息熵 条件熵 相对熵 交叉熵 总结 一  信息熵 (information entropy) 熵 (entropy) 这一词最初来源于热力学.1948年,克劳德·爱尔伍德·香农将热力学中的熵引 ...

  4. 解释机器学习中的熵、联合熵、条件熵、相对熵和交叉熵

    原文地址:https://www.cnblogs.com/kyrieng/p/8694705.html 1.信息熵 (information entropy) 熵 (entropy) 这一词最初来源于 ...

  5. 详解机器学习中的熵、条件熵、相对熵、交叉熵

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 目录 信息熵 条件熵 相对熵 交叉熵 总结 一 信息熵 (info ...

  6. 一文介绍机器学习中的三种特征选择方法

    作者 | luanhz 来源 | 小数志 导读 机器学习中的一个经典理论是:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.也正因如此,特征工程在机器学习流程中占有着重要地位.广义的特征 ...

  7. 干货丨一文介绍机器学习中基本的数学符号

    在机器学习中,你永远都绕不过数学符号. 通常,只要有一个代数项或一个方程符号看不懂,你就完全看不懂整个过程是怎么回事了.这种境况非常令人沮丧,尤其是对于那些正在成长中的机器学习初学者来说更是如此. 如 ...

  8. 入门 | 一文介绍机器学习中基本的数学符号

    本文介绍了机器学习中的基本数学符号.具体来说有算数符号,包括各种乘法.指数.平方根以及对数:数列和集合符号,包括索引.累加以及集合关系.此外,本文还给出了 5 个当你在理解数学符号遇到困难时可以应急的 ...

  9. 一文介绍机器学习中基本的数学符号

    本文介绍了机器学习中的基本数学符号.具体来说有算数符号,包括各种乘法.指数.平方根以及对数:数列和集合符号,包括索引.累加以及集合关系.此外,本文还给出了 5 个当你在理解数学符号遇到困难时可以应急的 ...

最新文章

  1. 马斯克的星际飞船SN10又炸了,但技术却向前迈出一大步!
  2. Word中“节”的作用
  3. 系统计算机大小怎么更改,调整设置电脑图标大小的方法
  4. 找到一篇有关A*算法文章,不错~收藏
  5. BUUCTF-WEB:[强网杯 2019]随便注 1
  6. cryptojs php 互通_PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
  7. 关于禁止程序重复启动的另一种需要与实现《转》
  8. 百度2012校招笔试题之全排列与组合
  9. LeetCode之Fizz Buzz
  10. 前端学习(2581):单元测试的重要性
  11. C++自定应线程安全数据结构(1)
  12. 元组可以直接添加进数据库吗_AWS Neptune 详细体验:OLTP的可扩展图数据库
  13. 2021-06-18 链接标签
  14. JFlash烧录不知名的ARM芯片
  15. matlab 语法_MATLAB中的语法
  16. 【接口测试实战(三)】接口测试用例的编写
  17. Partial Dependence Plots - 部分依赖图实践
  18. 今有雉兔同笼c语言编程,Openjudge-计算概论(A)-鸡兔同笼
  19. KATEX简易语法:
  20. 程序员的5个级别,看看你到几级?

热门文章

  1. udacity classmates pytorch基础用法总结
  2. php蛇蛇大作战,Android ConstraintLayout 2.0:ConstraintLayoutStates
  3. centos php 局域网访问,CentOS8安装搭建php环境
  4. 何晓冬:做科研与其各拿十块“铜牌”,不如合力做一块“金牌”
  5. UTA研究团队提出首个3D点云+GAN新方法,让机器人“眼神”更犀利 | AI日报
  6. 与《代码大全》齐名的经典著作
  7. 确定有限状态机和非确定有限状态机详解 包含Java实现源码(Nondeterministic finite automata)
  8. 独家 | 展望未来:数据科学、数据工程及技术(附链接)
  9. DeepMind最新发现!神经网络的性能竟然优于神经符号模型
  10. 图神经网络新课上架:​宾大2020秋季在线课程开课,视频上线B站