信息熵、KL散度、交叉熵、互信息、点互信息

信息熵

信息量

信息量是对信息的度量,衡量事件的不确定性,越小概率的事件发生了产生的信息量越大。我们应该用什么形式的函数表达信息量呢?除了随着概率增大而减少,这个函数还有具有以下性质:

如果有两个事件x和y彼此独立,那么:

p(x,y)=p(x)*p(y)

并且,x和y同时发生时我们获得的信息应该等于这两个事件分别发生时我们获得的信息之和:

H(x,y)=H(x)+H(y)

不难看出,H(x)应该与对数有关。因为我们将信息量定义为如下公式:

负号是为了确保信息一定是正数或者0,底数是任意的,底数为2时表示编码信息所需要的最少二进制位个数bits。

信息熵 

信息量度量的是一个事件发生了所带来的信息,而信息熵是在结果出来之前对所有可能产生的信息量的期望——考虑随机变量的所有可能取值,即事件的所有可能性所带来的信息量的期望。简言之,熵是信息量的期望。

其中 P(x_i)代表随机事件X为x_i的概率

K-L散度 Kullback-Leibler Divergence(相对熵)

K-L散度用来衡量两个分布对于同一变量的差异情况。在概率学中,我们经常使用更简单的分布来近似观察数据或复杂分布。K-L散度能帮助我们度量使用一种分布近似另一种分布时所损失的信息量。p为观察得到的概率分布,q为另一分布来近似p,则pqK-L散度为:

显然,根据上述公式,K-L散度其实是统一随机变量x的原始分布p和近似分布q之间的对数差值的期望。如果继续用2为底的对数计算,则K-L散度值表示信息损失的二进制位数。K-L散度通常也被写为以下形式:

散度并非距离

有人把K-L散度看做不同分布之间距离的度量,这是不对的,因为K-L散度不满足对称性。也就是说,用p近似q和用q近似p,二者所损失的信息是不一样的。

交叉熵

交叉熵,用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。这也是为什么在机器学习分类算法中,我们总是最小化交叉熵,因为交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布。而KL散度(相对熵),是用来衡量不同策略之间的差异的。

我们将KL散度公式变形:

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:

在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即 D_{KL}(y||\tilde{y}),由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。

互信息MI

互信息(Mutual Information)度量两个随机变量共享的信息——知道随机变量X,随机变量Y不确定性减小的程度(或者知道随机变量Y,随机变量X不确定性减小的程度),用I(x;y)表示。

举例来说,随机变量X表示一个均衡的六面骰子投掷出的点数,Y表示X的奇偶性。这里我们设X是偶数时,Y=0;X是奇数时,Y=1。如果我们知道X,如X=1,则可以判断Y=1。(失去Y=0这一信息的可能性,Y的不确定性信息减少了)。同样的,如果我们知道Y=0,则可以判断X=2或4或6。(失去X=1或3或5这一信息的可能性,X的不确定性信息减少了)因此,我们说随机变量X和Y之间存在互信息。

我们可以通过下面这张互信息的韦恩图来形象的理解互信息和熵的关系与区别:

关于这张图的理解:

最后,我们通过一系列的数学公式的推导,得到以下互信息的定义式:

 点互信息(PMI)

点互信息(Pointwise Mutual Information),衡量两个事物之间的相关性,比如两个单词。

如果x和y相互独立,则p(x,y)=p(x)*p(y),此时PMI为0,其计算过程如下:

如果x和y的出现不是独立事件,即某个字的出现会提升另一个字出现的概率,那么PMI大于0,其计算过程如下:

 

但是由于log0=-inf,即负无穷。为此,我们通常使用PPMI(Positive PMI)来避免出现-inf,即:

 回顾互信息的计算公式为:

衡量的是两个随机变量的相关性,即一个随机变量中包含另一个随机变量的信息量。

可以看出,互信息其实就是对X和Y的所有可能取值的点互信息的加权和

参考链接:

通俗理解信息熵 - 知乎

如何理解K-L散度(相对熵) - 简书

如何通俗的解释交叉熵与相对熵? - 知乎

特征选择之互信息(mutual information)算法思想及其python代码实现_mutual_info_score-CSDN博客

[DataAnalysis]点互信息_点的互信息-CSDN博客

NLP之【点互信息PMI】——衡量两变量之间的相关性_点互信息(pmi)-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32标准库——(18)Unix时间戳、BKP备份寄存器、RTC实时时钟

1.Unix时间戳 1.1 简介 32位有符号数所能表示的最大数字是2^32/2-1这个数是21亿多,这其实是有溢出风险的,因为目前到2023年时间戳已经计到16亿了,32位有符号数的时间戳会在2038年的1月19号溢出,64位的时间戳能存储的时间范围非常…

C++对象模型剖析(六)一一Data语义学(三)

Data 语义学(三) “继承” 与 Data member 上期的这个继承的模块我们还剩下一个虚拟继承(virtual inheritance)没有讲,现在我们就来看看吧。 虚拟继承(Virtual Inheritance) 虚拟继承本质就是…

Linux笔记--make

使用上一节的 main.c、add.c、sub.c文件进行编译,编译的过程有很多步骤,如果要重新编译,还需要再重来一遍,能不能一步完成这些步骤?将这些步骤写到makefile文件中,通过make工具进行编译 一个工程中的源文件不计其数&a…

java 获取项目内的资源/配置文件

【getResourceAsStream】是java中用于获取项目内资源的常用方法,能够返回一个数据流,从而允许我们读取指定路径下的资源文件。这个方法可以用来读取各种类型的资源文件,包括但不限于文本文件、图像文件、配置文件等。 要使用getResourceAsStr…

高端相亲婚恋平台有哪些?分享五款高端靠谱相亲交友软件

如今市场上的相亲软件越来越多,但很少有人能找到自己心仪的相亲软件。在选择相亲软件时,大家最看重的就是安全性和真实性,因此我想向大家分享几款我用过且觉得可靠的高端相亲软件,希望能得到你们的认可。 1、丛丛 这是我用的最久的…

【[STM32]标准库-自定义BootLoader】

[STM32]标准库-自定义BootLoader BootloaderBootloader的实现BOOTloader工程APP工程 Bootloader bootloader其实就是一段启动程序,它在芯片启动的时候最先被执行,可以用来做一些硬件的初始化或者用作固件热更新,当初始化完成之后跳转到对应的…

LeetCode 热题 100 | 图论(二)

目录 1 基础知识 1.1 什么是拓扑排序 1.2 如何进行拓扑排序 1.3 拓扑排序举例 2 207. 课程表 3 210. 课程表 II 菜鸟做题,语言是 C 1 基础知识 1.1 什么是拓扑排序 含义:根据节点之间的依赖关系来生成一个有序的序列。 应用&#xff1a…

12:Logstash|Web日志实时分析

Logstash|Web日志实时分析 logstashlogstash工作结构安装Logstash编写logstash配置文件步骤一:codec类插件插件帮助手册Logstash input插件步骤一:file模块插件filter grok插件Web日志实时分析部署beats与filebeat步骤一:filter grok模块插件logstash 一个数据采集、加工处…

Ubuntu22.04系统 安装cAdvisor提示找不到 CPU 的挂载点错误解决办法。

如果我们在安装cAdvisor时容器启动不起来 查看日志如下图所示 1、查看cgroup文件系统是v2 还是 v1 mount | grep cgroup 如图所示我的是v2 , cAdvisor 目前的最新版本(v0.39.0)仍然只支持 cgroup v1,不支持 cgroup v2。因此&#…

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办! 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验,跨越时空的限制,探索未知的世界。同时,提供更加丰富、立体的情感表达和交流方式,让人类能够更加深入地理解彼此&…

做抖店月入百万还是会亏损?珠珠来告诉你,做抖店水到底有多深?

我是电商珠珠 抖店的热度一直只高不低,所以很多想要做的新手不知道抖店水的深浅,就一股脑的去做了。结果又是被扣保证金,又是被判定无货源违规的,最后灰头土脸的关了店。那些说做了十万十几万的,几百万的难道都是假的…

在三个el-form-item中的el-radio的值中取一个发送给后端怎么获取

问: 请问,这段代码怎么获取:无策略,策略1,策略2的值? 回答: 问: 三个里面只可以选中一个吗? 回答:

应对求职高峰:金三银四必备问答与大厂模板,成功职场攻略!

三四月是求职的黄金季节,很多设计师会选择在这个时候准备作品集。一个视觉精美、有条不紊的作品集,无疑是走向大厂的敲门砖。但是我问了一圈优秀社区的朋友,发现大家或多或少都遇到过问题。今天我整理了群里的高频问题,附上了解决…

[GXYCTF2019]BabyUpload1 -- 题目分析与详解

目录 一、题目分析 1、判断题目类型: 2、上传不同类型的文件进行测试: 二、题目详解 1、写出.htaccess文件: 2、.htaccess 文件配合 .jpg 上传: 3、利用 中国蚁剑/中国菜刀 获取flag: 一、题目分析 1、判断题目…

信奥一本通:1082:求小数的某一位

分数转换为小数就是分子除分母,但是他要求指定的n项小数,n大于1小于10000,如果是10000的话就太大了,用传统的方式无法找出指定的位数。 方式就是:例如求2分之1,我们先用除法把具体的值求出来,然…

图机器学习(1)--导论

0 CS224W概况 斯坦福大学CS224W课程:http://cs224w.stanford.edu/ 图机器学习的库: 为什么是图?图是描述和分析具有关系/交互的实体的通用语言。 1 图数据举例 复杂域具有丰富的关系结构,可以表示为关系图。 通过显式地建模关…

【论文阅读】Generative Pretraining from Pixels

Generative Pretraining From Pixels 引用: Chen M, Radford A, Child R, et al. Generative pretraining from pixels[C]//International conference on machine learning. PMLR, 2020: 1691-1703. 论文链接: http://proceedings.mlr.press/v119/chen…

LeetCode --- 三数之和

题目描述 三数之和 代码解析 暴力 在做这一道题的时候,脑海里先想出来的是暴力方法,一次排序,将这个数组变为有序的,再通过三次for循环来寻找满足条件的数字,然后将符合条件的数组与之前符合条件的数组进行一一对比…

2024.3.6补题

1.关鸡 对于这一道题,我们先按照题意进行分析:首先鸡自己的初始位置,如果着火点在鸡一开始的左右下各有一个那么就可以达到题目效果,也就是说不需要添加着火点,同时最多需要添加的着火点其实也就是它初始位置身边所有的…

Optional 详解

Optional 详解 1、Optional 介绍2、创建 Optional 对象3、Optional 常用方法1. 判断值是否存在 — isPresent()2. 非空表达式 — ifPresent()3. 设置(获取)默认值 — orElse()、orElseGet()4. 获取值 — get()5. 过滤值 — filter()6. 转换值 — map() 作为一名 Java 程序员&am…