熵、信息量、条件熵、联合熵、互信息简单介绍

news2024/11/27 8:39:00

熵、信息量、条件熵、联合熵、互信息简单介绍

近期在看对比学习论文,发现有不少方法使用了互信息这种方式进行约束,故在此整理一下网上查阅到的关于互信息的相关内容。

一、熵、信息量

关于熵的讨论,这个知乎专栏写的挺不错的。

熵在信息论中代表随机变量不确定度的度量,变量不确定性越大,信息熵也就越大。一个离散型随机变量 X X X的熵 H ( X ) H(X) H(X)定义为:

H ( X ) = − ∑ x ∈ χ p ( x ) l o g p ( x ) H(X)=-\sum_{x\in \chi}p(x)logp(x) H(X)=xχp(x)logp(x)

其中 p ( x ) p(x) p(x)表示 x x x发生的概率。从公式不难发现,信息熵 H ( x ) H(x) H(x)满足当 x x x的确定时即 p ( x ) = 1 p(x)=1 p(x)=1时最小,当 x x x为均匀分布时即 p ( x ) = 1 n p(x)=\frac{1}{n} p(x)=n1时最大。这也就意味着,事件越不确定,熵越大。此外,该公式还满足以下三个性质:

  • 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
  • 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
  • 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。写成公式就是: H ( A , B ) = H ( A ) + H ( B ) − I ( A , B ) H(A,B)=H(A)+H(B)-I(A,B) H(A,B)=H(A)+H(B)I(A,B),其中 I ( A , B ) I(A,B) I(A,B)就是互信息。

不难发现,上述几个性质恰好就是我们想要获得的计算熵公式。通过数学证明发现满足上述性质的公式只有: H ( X ) = − C ∑ x ∈ χ p ( x ) l o g p ( x ) H(X)=-C\sum_{x\in \chi}p(x)logp(x) H(X)=Cxχp(x)logp(x)

信息熵不等同于信息量,但它们在量上是相等的。 即,“熵”度量了不确定性,而接受信息后所消除的不确定性即为该信息的“量”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBnmQw2m-1684065604452)(D:\研究生文件\顶会顶刊论文代码\笔记\图片\image-20230514173305337.png)]

二、条件熵、联合熵

条件熵的概念是 X X X给定的情况下, Y Y Y的条件概率分布的熵对 X X X的期望。公式如下:

H ( Y ∣ X ) = ∑ x ∈ χ p ( x ) H ( Y ∣ X = x ) = − ∑ x ∈ χ p ( x ) ∑ y ∈ Y p ( y ∣ x ) l o g p ( y ∣ x ) = − ∑ x ∈ χ ∑ y ∈ Y p ( x , y ) l o g p ( y ∣ x ) H(Y|X)=\sum_{x\in \chi}p(x)H(Y|X=x)=-\sum_{x\in \chi}p(x)\sum_{y\in Y}p(y|x)logp(y|x)=-\sum_{x\in\chi}\sum_{y\in Y}p(x,y)logp(y|x) H(YX)=xχp(x)H(YX=x)=xχp(x)yYp(yx)logp(yx)=xχyYp(x,y)logp(yx)

注意这里是期望,加了求和号的。也就是对于 X X X的所有取值都要考虑。条件熵的物理意义是在得知某一确定信息的基础上获取另外一个信息时所获得的信息量。

联合熵不多解释直接上公式,如下:

H ( X , Y ) = − ∑ x ∈ χ ∑ y ∈ Y p ( x , y ) l o g p ( x , y ) H(X,Y)=-\sum_{x\in \chi}\sum_{y\in Y}p(x,y)logp(x,y) H(X,Y)=xχyYp(x,y)logp(x,y)

联合熵的物理意义就是,观察一个多个随机变量的随机系统获得的信息量。

好了,公式给出来了,不难发现联合熵和条件熵的关系如下:

H ( X , Y ) = H ( X ) + H ( Y ∣ X ) H(X,Y)=H(X)+H(Y|X) H(X,Y)=H(X)+H(YX)

这个所表达的物理含义是,对一个两个随机变量的随机系统,我们可以先观察一个随机变量获取信息量,观察完后,我们可以在拥有这个信息量的基础上观察第二个随机变量的信息量。先观察谁,对信息量都不会有影响。

三、互信息

关于互信息这篇博客写的挺不错的,下面是博客截图:

在这里插入图片描述

img

可得出互信息与其它量的关系如下:

img

好了,回到对比学习中。我们知道对比学习的常见做法是取一个Batchsize中的 N N N张图片,对其进行数据增强如平移、旋转等获得 2 N 2N 2N张图片。任取其中一张图片 X X X,则令其对应经过数据增强获得的图片 Y Y Y为正样本、其余 2 N − 2 2N-2 2N2张图片为负样本。之后利用损失函数进行约束即可训练网络。

在这里插入图片描述

那么,这东西和互信息有啥关系呢。试想一下,如果 I ( X , Y ) = m a x I ( X , Y ) I(X,Y)=maxI(X,Y) I(X,Y)=maxI(X,Y)是不是就是意味着 X X X能够直接确定 Y Y Y。这不就是对比学习想要干的事情。

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

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

相关文章

【更新日志】填鸭表单TduckPro v5.1 更新

hi,各位Tducker小伙伴。 填鸭表单pro迎来了v5.1版本;本次我们进行了许多的功能新增和优化,能够让我们在日常使用中获得更好的体验。 让我们一起来康康新功能吧。 01 新增Pro功能 新增登录后才能填写表单。 新增表单卡片一键发布。 新增矩…

【C++学习】CC++内存管理

目录 一、C&C内存管理 二、C语言中动态内存管理方式:malloc/calloc/realloc/free 三、C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作符自定义类型 四、operator new与operator delete函数 4.1 operator new与operator delete函数&#x…

【云原生】使用外网Rancher2.5.12在阿里云自建内网K8s 1.20集群

目录 一、目标二、解决方案三、草图四、版本信息五、资源规划六、必要条件七、开始部署1、安装Docker2、安装Rancher3、解析Rancher Server URL域名4、创建K8s集群5、注册K8s集群节点 八、验证 一、目标 在云平台搭建一套高可用的K8s集群 二、解决方案 第一种:使…

横向移动-利用IPC$

环境主机 本次都是在内网自己搭的靶机实验 上线主机:windows2008R2 - 192.168.31.46 需要移动到的主机:windows2012 - 192.168.31.45 实验演示 1.确定域控 通过命令net time /domain,发现存在域 这里我们通过ping来发现域控的ip,…

UGUI Scroll Rect滚动矩形组件

1、概述 当需要在小区域显示占用大量空间的内容时,可以使用Scroll Rect。滚动矩形提供了滚动浏览此内容的功能。 通常,将Scroll Rect与Mask结合在一起以创建滚动视图,在该视图中,只有Scroll Rect内部的可滚动内容可见。它也可以…

类和对象【1】

全文目录 引言(初识面向对象)类和对象定义类访问限定及封装类定义的两种方式 类实例化与类对象大小this指针 总结 引言(初识面向对象) C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通…

NSSCTF之Misc篇刷题记录⑩

NSSCTF之Misc篇刷题记录⑩ [CISCN 2022 初赛]ez_usb[SWPUCTF 2021 新生赛]你喜欢osu吗?[SWPUCTF 2021 新生赛]Bill[SWPUCTF 2021 新生赛]二维码不止有二维码[HGAME 2022 week1]好康的流量[红明谷CTF 2022]MissingFile[广东省大学生攻防大赛 2021]这是道签到题[羊城杯…

TOGAF架构开发方法—阶段 F:迁移规划

本章介绍迁移规划;也就是说,如何通过最终确定一个 详细的实施和迁移计划。 一、目标 F阶段的目标是: 最终确定架构路线图以及支持实施和迁移计划确保实施和迁移计划与企业的管理和实施方法相协调 企业整体变更组合的变化确保关键利益相关者了解工作包和…

【什么是蜂窝移动网络】

从 DataReportal 2021 年 1 月的统计数据来看,全球 78 亿人口中,有 52 亿手机用户,46 亿互联网用户。能够接入网络的设备越来越多,体量越来越大,不知道你有没有好奇过,这样一个庞大的世界是如何被构造出来的…

【Linux】指令(下)

⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏留言 ⭐系列专栏:Linux ⭐代码仓库:Linux 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我…

论文阅读:Multimodal Graph Transformer for Multimodal Question Answering

文章目录 论文链接摘要1 contribution3 Multimodal Graph Transformer3.1 Background on Transformers3.2 Framework overview 框架概述3.3 Multimodal graph construction多模态图的构建Text graphSemantic graphDense region graph Graph-involved quasi-attention 总结 论文…

【AIGC提示工程 - MidJourney教程:一】“Midjourney AI“是什么,为何众人皆谈?

关注元壤教育公众号系统学习AIGC提示工程课程。 更多AIGC好博客,请移步访问AIGC博客派 Midjourney AI是一个极富创造性的工具,它能够帮助用户通过指令创建图像。这些图像是基于用户的想象力而创造的。 在本文中,我们将详细了解Midjourney AI。…

软件测试面试面对史上最难求职季,会哪些测试技能更容易拿到offer?

在一线大厂,没有测试这个岗位,只有测开这个岗位。这几年,各互联网大厂技术高速更新迭代,软件测试行业也 如果你在中小型公司,普通的测试工程师20K差不多到极限了,薪资想再进一步提升很困难。而在阿里巴巴P…

【AIGC提示工程 - MidJourney教程:二】《MidJourney参数大全指南:实现最佳图像输出的关键》

关注元壤教育公众号系统学习AIGC提示工程课程。 更多AIGC好博客,请移步访问AIGC博客派 这篇文章介绍了不同的MidJourney参数和提示词,帮助你创建你选择的图像。探索如何使用不同的风格和参数进行操作。 如果你使用Midjourney应用,你就知道提示…

NetSuite SuiteQL 内建函数

之前写过一篇文章介绍SutieQL Query Tool,今天继续挖掘一下SuiteQL的价值。 NetSuite SuiteQL Query Tool_netsuite好用吗_毛岩喆的博客-CSDN博客这是一个非常好的NetSuite数据查询工具,免费、强大!所以忍不住安利给大家。首先介绍一下背景&…

Redis系列--redis持久化

一、为什么需要持久化 redis本身运行时数据保存在内存中,如果不进行持久化,那么在redis出现非正常原因宕机或者关闭redis的进程或者关闭计算机后数据肯定被会操作系统从内存中清掉。当然,redis本身默认采用了一种持久化方式,即RD…

11.Kafka系列之Stream实践

Kafka Streams是一个基于Apache Kafka的处理库,可以用于实现高效、可扩展的实时数据处理应用程序。它是一个轻量级的库,允许你在Java和Scala中创建和运行流处理应用程序,这些应用程序可以读取输入流,执行各种数据转换,…

MyBatis的配置案例

Mybatis中Map的使用 如果需要所有的代码&#xff0c;可以看我上一篇 在接口中定义 int addUser1(Map<String,Object> map); 插入语句 <insert id"addUser1">insert into user(id,name,pwd) values (#{userid},#{username},#{userPwd})</insert> …

Vue3-黑马(十)

目录&#xff1a; &#xff08;1&#xff09;vue3-antdv-全局提示与校验 &#xff08;2&#xff09;vue3-进阶-router-入门 &#xff08;3&#xff09;vue3-进阶-router-动态导入-嵌套路由-重定向 &#xff08;1&#xff09;vue3-antdv-全局提示与校验 当用户新增修改&…

redis(11)

一)基于Set集合实现点赞功能: 在我们的博客表当中&#xff0c;每一篇博客信息都有一个like字段&#xff0c;表示点赞的数量 需求: 1)同一个用户只能点赞一次&#xff0c;再次进行点赞则会被取消&#xff1b; 2)如果当前用户已经点赞过了&#xff0c;那么点赞按钮高亮显示&…