手机可用熵_什么是熵?-程序员宅基地

技术标签: 手机可用熵  

病房中的不确定性

首先我们专注于一个简单的问题。在其他条件都相同的情况下,这三个病人中的哪个面临着最大的不确定性?

这个问题的答案是显而易见的,病人 C。他所面临的是在这种情况下可能呢存在的最大程度的不确定性:就像医疗版本的抛硬币试验一样。

对于病人 A 来说,虽然他的情况不容乐观,但是至少他对于是否患病这个问题有最小的不确定性。对于病人 B,他的不确定性在病人 A 和病人 C 之间。

这就是为什么要引入熵这个概念的原因:描述一个状况下的不确定性为在xx和xx之间,在日常生活环境下这种精细程度可能足够了,但是对于机器学习任务来说,这种描述太宽泛了。

不确定性度量

熵允许我们对于生活中的一个重要问题:事情最终会发展到什么样的结果,进行精确度量和计算。

换种说法,熵是一种不确定性的度量。

在本篇文章中,熵都是指代香农熵(Shannon entropy)。其实还有几种其他类型的熵,但是在自然语言处理或者机器学习领域中,我们提到的熵都是香农熵。

所以在没有特意说明的情况下,下面就是熵的公式。对于事件X,有n种可能结果,且概率分别为p_1, ... p_n,公式为:

基本性质

如果你是第一次看到这个公式,你可能会提出一个问题:为什么要用对数?为什么这个公式就能够度量不确定性?当然,还有为什么要用字母H来表示熵?(表面上这个英文字母H是从希腊大写字母Eta上演变过来的,但实际上为什么采用了字母H来表示,还是有一段复杂的历史的,感兴趣的可以看这个问题:Why use H for entropy?)

对于很多情况下的问题,我认为从以下两点切入是很好的选择:(1)我所面对的这个数学结构有那些理想的属性?(2)是否有其他结构也能够满足所有这些理想的属性?

对于香农熵作为不确定性的度量来说,这两个问题的答案分别是:(1)很多,(2)没有。

我们来一个一个看我们希望熵的公式应该具有哪些性质。

基本性质1:均匀分布具有最大的不确定性

如果你的目标是减小不确定性,那么一定要远离均匀概率分布。

简单回顾一下概率分布:概率分布是一个函数,对于每个可能的结果都有一个概率,且所有的概率相加等于 1。当所有可能的结果具有相同的可能性时,该分布为均匀分布。例如:抛硬币实验(50% 和 50% 的概率), 均匀的骰子(每个面朝上的概率都为六分之一)。

均匀分布具有最大的熵

一个好的不确定性度量会在均匀分布时达到最大的值。熵满足这个要求。给定 n 个可能的结果,最大的熵在所有结果的概率相同时得到。

下面是对于伯努利试验中熵的图像。(伯努利试验有两种可能的结果:p和1-p):

在伯努利试验中,当p=0.5时,熵达到最大

基本性质2:对于独立事件,不确定性是可加的

假设 A 和 B 是独立事件。换句话讲,知道事件 A 的结果并不会丝毫影响 B 的结果。

关于这两个事件的不确定性应该是两个事件单独的不确定性的和,这也是我们希望熵的公式应该具备的性质。

对于独立事件,不确定性是可加的

让我们使用抛两个硬币的试验作为例子来使这个概念更加具体。我们既可以两个硬币同时抛,也可以先抛一个硬币再抛另一个硬币。在两种情况下,不确定性是相同的。

考虑两个特殊的硬币,第一个硬币正面朝上 (H, Head) 的概率为80%,背面朝上 (T, Tail) 的概率为 20%。另一个硬币的正面朝上和反面朝上的概率分别为 60% 和 40%。如果我们同事抛两枚硬币,那么有四种可能:正正,正反,反正,反反。对应的概率分别为[0.48, 0.32, 0.12, 0.08]。

两个独立事件的联合熵等于独立事件的熵的和

将这些概率带入到熵的公式中,我们能够看到:

就跟我们设想的一样,两个独立事件的联合熵等于各个独立事件的熵的和。

基本性质3:加入发生概率为0的结果并不会有影响

假设有一个游戏,获胜条件如下:(a)只要#1号结果出现,你就赢了。(b)你可以在两个概率分布 A 和 B 中选一个进行游戏。分布 A 有两种可能,#1号结果为 80% 概率,#2号结果为 20% 概率。分布 B 有三种结果,#1号结果80%,#2号结果20%,#3号结果0%.

增加第三个概率为0的结果并不会有什么不同

给定 A 和 B 两个选择,你会选哪个?可能正确的反应应该是耸耸肩或白个眼。第三个结果的加入并没有增加或减少这个游戏的不确定性。谁关心到底是用A还是B呀,因为用哪个都是一样的。

熵的公式也满足这个性质:

即,增加一个概率为0的结果,并不会影响对于不确定性的度量。

基本性质4:不确定性的度量应该是连续的

最后一个基本性质是连续性。

连续性的最直观的解释就是没有断开或者空洞。更精确的解释是:输出(在我们的场景下是不确定性)中任意小的变化,都可以由输入(概率)中足够小的变化得到。

对数函数在定义域上每个点都是连续的。在子集上有限数量函数的和和乘积也是连续的。由此可能得出熵函数也是连续的。

唯一性定理

Khinchin(1957)证明,满足上述四种基本属性的唯一函数族具有如下形式:

其中λ是正常数。Khinchin称之为唯一性定理。将λ设为1,并使用以2为底的对数就得到了香农熵。

重申一下,使用熵作为不确定性度量是因为它具有我们期望的属性,并且是从满足上面提到的四个属性的函数族中做出的很自然的选择。

其他属性

除了上述用于Khinchin的唯一性定理中的四个基本属性,熵还具有一些其他的性质,下面就介绍其中的一些。

性质5:具有更多可能结果的均匀分布有更大的不确定性

比如你可以在抛硬币试验和抛骰子试验中做出一个选择,如果硬币正面朝上或者骰子1那面朝上就算赢。你会选择那个试验?如果你想最大化收入,肯定会选择硬币。如果只是想体验下不确定性,那可能就会选骰子。

随着等概率结果的数量的增加,不确定性的度量也应该增加。

这正是熵所做的:H(1/6, 1/6, 1/6, 1/6, 1/6, 1/6)> H(0.5, 0.5)

一般来说,L(k)为具有K个结果的均匀分布的熵,我们能够得到:

对于m>n,有

性质6:事件拥有非负的不确定性

你知道什么是负的不确定性吗?反正我也不知道。

对于一个用户友好的不确定性度量来说,无论输入是什么,应该总会返回一个非负的结果。

熵的公式同样满足这个性质,我们来看一下公式:

概率是定义在0-1的范围内的,因此是非负的。所以概率的对数是负的。概率乘概率的对数不会改变符号。因此求和之后应该是负的,最终负负得正。所以对于所有的输入,熵都是非负的。

性质7:有确定结果的事件具有0不确定性

假设你拥有一个魔法硬币,无论你怎么抛,硬币总是正面朝上。

你会怎么量化这个魔法硬币的不确定性,或者其他情况下有确定结果的事件的不确定性?这中情况下就没有不确定性,所以结果也很自然,不确定性为0。

熵的定义也满足这个性质。

假设结果i一定会发生,即p_i=1, 所以H(X)为:

即,确定事件的熵为0。

性质8:调转参数顺序没有影响

这是另一个显而易见的理想性质。考虑两种情况,第一个,抛硬币正面朝上的概率和背面朝上的概率分别为80%和20%。第二个情况里概率正好相反:正面朝上和背面朝上的概率分别为20%和80%。

两种抛硬币试验都有相同的熵,即H(0.8, 0.2) = H(0.2, 0.8)。

更通用的形式,对于个结果的试验,我们有:

实际上这对于有任何数量结果的试验都适用。我们可以以任意的方式调整参数的顺序,而所有的结果都是一样的。

总结

回顾一下,香农熵是一种不确定性的度量。

它被广泛的适用,因为它满足了我们想要的一些标准(同时也是因为我们生活中充满了不确定性)。唯一性定理告诉我们,只有一个函数族具有我们想要的四种基本性质。香农熵是这个函数族的一个很自然的选择。

熵的性质有(1)对于均匀分布有最大的熵;(2)对于独立事件熵是可加的;(3)具有非零概率的结果数量增加,熵也会增加;(4)连续性;(5)非负性;(6)确定事件的熵为0;(7)参数排列不变性。

via TowardsDatascience,雷锋网 AI 科技评论编译

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35902168/article/details/112030101

智能推荐

react学习总结6--构建工具Gulp、Browserify(二)_react gulp-程序员宅基地

文章浏览阅读1k次。react 学习总结–构建工具Gulp、Browserify(二)1.html 文件处理gulp-htmlmin 插件 用于压缩html,可以进行配置,下边是配置信息(选填) var gulp = require('gulp'), htmlmin = require('gulp-htmlmin'); gulp.task('htmlmin', function ()_react gulp

开关电源输入:共模电感,X电容,Y电容,差摸电感理论计算!_共模电感和y电容在滤波方面的区别-程序员宅基地

文章浏览阅读7.6k次,点赞3次,收藏69次。转自:https://mp.weixin.qq.com/s/qp_DSBGKdjNo2-lO2s5v7Q引言在开关电源中,EMI滤波器对共模和差模传导噪声的抑制起着显著的作用。在研究滤波器原理的基础上,探讨了一种对共模、差模信号进行独立分析,分别建模的方法,最后基于此提出了一种EMI滤波器的设计程序。高频开关电源由于其在体积、重量、功率密度、效率等方面的诸多优点,已经被广泛地应用于工业..._共模电感和y电容在滤波方面的区别

IntelliJ IDEA 设置注释模板 (Mac)_mac idea 设置注解格式-程序员宅基地

文章浏览阅读7.9k次。类注释模板设置:点击 preferences ,搜索 File and Code Template ,在 Files tab 页下,选择 Class,在类名上面添加模板:/** * @program ${PROJECT_NAME} * @description: ${TODO} * @author: ${USER} * @create: ${YEAR}/${MONTH}/${DAY}..._mac idea 设置注解格式

sizeof用法 _sizeof(4.0+2)-程序员宅基地

文章浏览阅读2k次。Sizeof用法本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、 sizeof应用在结构上的情况请看下面的结构:struct MyStruct{double dda1;char dda;int type};对结构MyStruct采用_sizeof(4.0+2)

阅读小结:Large-Margin Softmax Loss for Convolutional Neural Networks_large-margin softmax loss的代码-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏4次。徐博最近一直在看我博客,肯定是想看我什么时候不更新,然后好嘲笑我。当然,不排除徐博已经爱上我的可能。What:改进SoftmaxLoss,显式的控制类内的距离,(不让 已经对的样本score太高,影响训练)可以防止过拟合。回顾SoftmaxLoss:1. Softmax 就是一个把一个向量归一的函数,输出也是向量。在matlab里就3行代码:% X_large-margin softmax loss的代码

后端java解析复杂嵌套json_java 解析复杂类型的json-程序员宅基地

文章浏览阅读6.2k次。其实不是很复杂百度翻译传过来的json数据:{"from":"zh","to":"en","trans_result":[{"src":"高度600米","dst":"Height 600 meters"}]}现在要取出dst对应的值:Height 600 meters String date="{"from":"zh","to":"en","trans_result":[_java 解析复杂类型的json

随便推点

如何高效地从BAM文件中提取fastq-程序员宅基地

文章浏览阅读1.8k次。在一年前,我写过一篇文章,叫做如何从BAM文件中提取fastq,之前也发现了从BAM里面提取Fastq是有些麻烦,只不过最后通过samtools的子命令实现了数据提取,实现功能之后也没有再去思考如何提高效率。最近读到每周文献-190419-植物单细胞BAM重比对以及假基因研究时,发现里面提到了一个工具叫做 bazam, 功能就是提取Fastq文件,文章发表在 Genome Bio..._10x 开发的工具 bamtofastq

中国电信天翼宽带无线路由器设置wifi笔记_中国电信wifi设置时间-程序员宅基地

文章浏览阅读8k次。0x00 前言 还记得电信天翼宽带吗?现在的天翼宽带的终端基本是华为的无限路由了,相信有不少同学在包装了中国电信天翼宽带后,个人申请到一个账号/密码,并且额外缴费得到一个路由器,然后就没有然后了。心里就纳闷,咋上wifi,然后又得另外花钱买个无线路由,然后不知道怎样弄。0x01 电信宽带的路由终端首先电信的华为路由器的底部都会贴有该终端的信息,例如终端登录地址,账号,密码等_中国电信wifi设置时间

让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件_编译msvc不依赖msvcr100.dll-程序员宅基地

文章浏览阅读853次。让VC编译出来的程序不依赖于msvcr80.dll/msvcr90.dll/msvcr100.dll等文件正常情况下,当我们用VC编译出一个Console/Win32类型项目的exe程序时(这里暂不考虑MFC程序),会依赖于msvcrxx.dll文件(xx为不同VC对应的版本号,VC2005为80,VC2008为90,VC2010为100),发布程序的时候,就需要把对应的dll也cop_编译msvc不依赖msvcr100.dll

什么是问题?_问题是什么-程序员宅基地

文章浏览阅读4.6k次。今天看到一篇文章,说什么是问题?看到这个标题很好奇。就点进去看了一下。以下是总结和思考。漫漫人生中,我们总会遇到各种各样的问题。那么什么是问题呢?有以下一个定义:问题是目标与现状的差异。解决方案,就是现状到目标的路径。那么,什么是目标呢?目标应该是符合真实的需求。那么,什么是需求呢?需求不仅包含当前这个问题,有时候它更需要考虑到整个系统。打个比方说,有一天某个系统出现了超时问题,..._问题是什么

java中controller,service,serviceImpl,mapper,xml等几个文件的作用理解,以简单的查询为例_serviceimpl类的作用是什么-程序员宅基地

文章浏览阅读5.3w次,点赞59次,收藏278次。说明:最近一周都在写报表,样式很统一,上面是查询条件,下面是查询结果,页面如下图所示。由于要写很多报表,都是重复的工作,所以部门里的小哥哥在写了一个基于node的小程序,直接配置JSON文件,就可以生成报表模板,感觉很强(后面想学习一下)。作为一个优秀的CV工程师(复制粘贴),我也没怎么写前端的工作,直接用生成的模板就好了,但是后台的查询我还是稍微走心的。由于JAVA基础不是很好,总结的可..._serviceimpl类的作用是什么

java开发注释规范,开发人员代码注释规范.doc-程序员宅基地

文章浏览阅读111次。开发人员代码注释规范开发人员代码注释规范Java类版权及代码注释注释示例package java.blah;import java.blah.blahdy.BlahBlah;/** ==========================================================* Version Author Date Des..._huangzhihui java

推荐文章

热门文章

相关标签