信息熵、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博客 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云消息队列 Confluent 版正式上线!

作者:阿里云消息队列 前言 在 2023 年杭州云栖大会上,Confluent 成为阿里云技术合作伙伴,在此基础上,双方展开了深度合作,并在今天(3月1日)正式上线“云消息队列 Confluent 版”。 通过将 Co…

vue3学习(续篇)

vue3学习(续篇) 默认有vue3基础并有一定python编程经验。 chrome浏览器安装vue.js devtools拓展。 文章目录 vue3学习(续篇)1. element-ui使用2. axios 网络请求1. 简介2. 操作 3. flask-cors解决跨域问题1. 简介2. 操作 4. 前端路由 vue-router1. 简单使用2. 配置路径别名和…

基于远程NDIS的Internet共享设备驱动出现感叹号(Windows 仍在设置此设备的类配置 代码 56)解决办法

USB共享网络出现了RNDIS/MBIM设备驱动显示感叹号(Windows 仍在设置此设备的类配置。 (代码 56))的情况的解决办法: 1.设置中搜索安全模式/更改高级启动选项->立即重新启动 2.重启后界面中选择疑难解答->高级选项->启动设置->屏…

触发HTTP preflight预检及跨域的处理方法

最近在做需求的过程中,遇到了很多跨域和HTTP预检的问题。下面对我所遇到过的HTTP preflight和跨域的相关问题进行总结: 哪些情况会触发HTTP preflight preflight属于cors规范的一部分,在有跨域的时候,在一定情况下会触发preflig…

迭代的 CKKS 高精度自举

参考文献: [KDE23] Kim A, Deryabin M, Eom J, et al. General bootstrapping approach for RLWE-based homomorphic encryption[J]. IEEE Transactions on Computers, 2023.[BCC22] Bae Y, Cheon J H, Cho W, et al. Meta-bts: Bootstrap** precision beyond the …

Java基础概念 7-计算机中的数据存储

目录 Java基础概念 7-计算机中的数据存储 计算机的存储规则 进制 十进制:0123456789 二进制:01 常见的进制 不同进制在代码中的表现形式 计算机为什么用二进制存储数据? 进制之间的转换 任意进制转十进制 公式: 系数*基数的权次幂 相加 二进制转十进制** 八进制转…

基于springboot+vue的智能无人仓库管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Java电梯模拟升级版

Java电梯模拟升级版 文章目录 Java电梯模拟升级版前言一、UML类图二、代码三、测试 前言 在上一版的基础上进行升级,楼层采用享元模式进行升级,并对楼层对象进一步抽象 一、UML类图 二、代码 电梯调度器抽象类 package cn.xx.evevator;import java.ut…

cuda WSL2 无需单独安装

https://docs.nvidia.com/cuda/wsl-user-guide/index.html 这个写的很详细

正则化解决过拟合

拟合 蓝色的圈代表数据,红色的线和绿色的线分别代表我们学习到的曲线。 绿色曲线相对红色曲线更加平滑。绿色曲线才是我们想要的,红色曲线从某种程度上讲是过拟合的,可以从图上看到他的误差是很小的,每个点的误差都是很小很小的。…

纯css+html实现拟态开关按钮面板

适合智能家居的开关面板UI 参考:https://drams.framer.website/

网络聊天室

Ser.c #include<myhead.h> #define SER_IP "192.168.159.148" #define SER_PORT 6666//因为客户端发送给服务器的消息是不同类型&#xff0c;所以定义结构体比较方便 typedef struct msg_TYPE {char type; // L:登录  C:聊天  Q:退…

flowable的java class task,也叫服务任务

源码地址12级程序猿-新年正当红/flowable-ui和服务任务 启动flowable-ui-app 浏览器输入下面的地址 http://localhost:8080/flowable-ui/#/ 在服务任务这里设置java类的路径 com.dmg.flowabledemo.task.MyServiceTask 当请假任务完成之后&#xff0c;自动触发这个服务任务…

网络信息安全:nginx漏洞收集(升级至最新版本)

网络&信息安全&#xff1a;nginx漏洞收集&#xff08;升级至最新版本&#xff09; 一、风险详情1.1 nginx 越界写入漏洞(CVE-2022-41742)1.2 nginx 缓冲区错误漏洞(CVE-2022-41741)1.3 nginx 拒绝服务漏洞&#xff08;CNVD-2018-22806&#xff09; 二、nginx升级步骤 &…

奥壹oelove婚恋交友v10.0_10.1情感导师插件_商城插件SQL数据库导入升级方法

大家注意哈奥壹oelove的系统默认是不含情感导师插件和商城系统的&#xff0c;这两个插件需要再官方独立购买&#xff0c;有幸公司付钱购买了系统及两套商业插件&#xff0c;可以看我昵称找我注明CSDN我已经把数据库及模板文件提取出来了&#xff0c;先说下数据库把&#xff0c;…

基于Mindspore,通过Resnet50迁移学习实现猫十二分类

使用平台介绍 使用平台&#xff1a;启智AI协作平台 使用数据集&#xff1a;百度猫十二分类 数据集介绍 有cat_12_train和cat_12_test和train_list.txt train_list.txt内有每张图片所对应的标签 Minspore部分操作科普 数据集加载 Mindspore加载图片数据集就直接调整成这种…

uniapp H5 $el.querySelectorAll is not a function

在监听是否在可视区域遇到问题&#xff08;网页端&#xff09; 解决方案 <view class"container"> ...省略 业务代码... </view>参考 &#xff1a; https://blog.csdn.net/qq_18841969/article/details/134620559

狼人杀 (狼人) 个人理解玩法

今天 我们来说说 狼人杀游戏 每个板子都有的一个角色 狼人 因为 动物园板子 平民被换成了 羊驼 所以 狼人也是唯一一个所有板子都有的角色 狼人的技能非常简单 每天晚上 可以袭击一名玩家 如果没有特殊情况 被袭击的玩家天亮时会直接出局 特殊情况包括 比较典型的有 守卫的盾…

Matter 笔记1-环境准备,编译

不要远程登录Ubuntu输入以下命令&#xff0c;原因&#xff1a;ubuntu/linux上的http代理设置 1. 准备 1.1 工具 Ubuntu 22.04 LTSClash 里General的端口设置到ubuntu 的网络设置里 1.2 代码 这里使用芯科整理过的代码 git clone https://github.com/SiliconLabs/matter.…

Redis线程模型解析

引言 Redis是一个高性能的键值对&#xff08;key-value&#xff09;内存数据库&#xff0c;以其卓越的读写速度和灵活的数据类型而广受欢迎。在Redis 6.0之前的版本中&#xff0c;它采用的是一种独特的单线程模型来处理客户端的请求。尽管单线程在概念上似乎限制了其扩展性和并…