【自信息、信息熵、联合熵、条件熵、互信息】
文章目录
- 一、自信息 I(X)
- 二、信息熵:衡量系统的混乱程度
- 信息熵 H(X)
- 联合熵 H(X,Y)
- 三、条件熵H(Y|X) = 联合熵H(X,Y) - 信息熵H(X)
- 四、互信息 I(X,Y)
- 五、总结
- References
一、自信息 I(X)
自信息(Self-information) 是由香农提出的,用来衡量单一事件发生时所包含的信息量的多寡,单位是bit或nats。
就是说,自信息表示某一事件发生时所带来的信息量的多少,当事件发生的概率越大,其自信息就越小,反之亦然。
数学定义
自信息定义为时间发生的概率的负对数。 具体来说,设事件 x i x_i xi 发生的概率为 p ( x i ) p(x_i) p(xi),则该事件的自信息量 I ( x i ) I(x_i) I(xi) 定义为:
I ( x i ) = − log 2 p ( x i ) I(x_i) = - \log_2 p(x_i) I(xi)=−log2p(xi)
函数对应的图像表示如下图所示,其中 p p p 表示事件发生的概率。
自信息的含义、性质和应用
- 小概率事件提供更多的信息:小概率事件发生时,提供的信息量较大;大概率事件发生时,提供的信息量较小。
- 不确定性与信息量:自信息表示事件发生前的不确定性和事件发生后提供的信息量。小概率事件发生前的不确定性大,发生后提供的信息量大;大概率事件则相反。
- 自信息与互信息的关系:互信息是已知一个事件后另一个事件的不确定性减少的量。互信息可以表示为两个事件的自信息之差。
二、信息熵:衡量系统的混乱程度
自信息描述的是随机变量的某个事件发生所带来的的信息量,而信息熵通常用来描述整个随机分布所带来的信息量,更具有统计特性。
信息熵也叫香农熵,代表一个系统中信息量的总和。信息量总和越大,表明这个系统的不确定性就越大。
信息熵 H(X)
信息熵定义为对所有可能事件所带来的信息量求期望。
一个随机变量 X X X 的熵 H ( x ) H(x) H(x) 定义为:
H ( X ) = E x ∼ p [ I ( x ) ] = − E x ∼ p [ log p ( x ) ] = − ∑ x p ( x ) log p ( x ) = − ∫ x p ( x ) log p ( x ) d x \begin{aligned} H(X) &= E_{x \sim p}[I(x)]=-E_{x \sim p}[\log p(x)]\\ &=-\sum_x p(x)\log p(x)\\ &=-\int_x p(x) \log p(x)dx \end{aligned} H(X)=Ex∼p[I(x)]=−Ex∼p[logp(x)]=−x∑p(x)logp(x)=−∫xp(x)logp(x)dx
信息熵是各项自信息的累加值。在同样的定义域内,熵的关系为脉冲分布信息熵<高斯分布信息熵<均匀分布信息熵。可以通过数学证明,当随机变量分布为均匀分布时即状态数最多时,熵最大。熵代表了随机分布的混乱程度。
联合熵 H(X,Y)
推广至多维随机变量的联合分布,对于服从联合分布为 p ( x , y ) p(x,y) p(x,y) 的一对离散随机变量 ( X , Y ) (X,Y) (X,Y),其联合信息熵为:
H ( X , Y ) = − ∑ x , y p ( x , y ) log p ( x , y ) H(X,Y)=-\sum_{x,y} p(x,y) \log p(x,y) H(X,Y)=−x,y∑p(x,y)logp(x,y)
三、条件熵H(Y|X) = 联合熵H(X,Y) - 信息熵H(X)
条件熵的定义为:在 X X X 给定条件下, Y Y Y 的条件概率分布的熵对 X X X 的数学期望。
H ( Y ∣ X ) = E x ∼ p [ H ( Y ∣ X = x ) ] = ∑ x p ( x ) H ( Y ∣ X = x ) = − ∑ x p ( x ) ∑ y p ( y ∣ x ) log p ( y ∣ x ) = − ∑ x ∑ y p ( x , y ) log ( y ∣ x ) = − ∑ x , y p ( x , y ) log p ( y ∣ x ) \begin{aligned} H(Y|X)&=E_{x \sim p}[H(Y|X=x)]\\ &=\sum_{x} p(x) H(Y|X=x)\\ &=-\sum_x p(x) \sum_y p(y|x) \log p(y|x)\\ &=-\sum_x \sum_y p(x,y) \log(y|x)\\ &=-\sum_{x,y} p(x,y) \log p(y|x) \end{aligned} H(Y∣X)=Ex∼p[H(Y∣X=x)]=x∑p(x)H(Y∣X=x)=−x∑p(x)y∑p(y∣x)logp(y∣x)=−x∑y∑p(x,y)log(y∣x)=−x,y∑p(x,y)logp(y∣x)
条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X) 等于联合熵 H ( X , Y ) H(X,Y) H(X,Y) 捡去信息熵 H ( X ) H(X) H(X),即 H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X) = H(X,Y) - H(X) H(Y∣X)=H(X,Y)−H(X)。
证明如下:
H ( X , Y ) = − ∑ x , y p ( x , y ) log p ( x , y ) = − ∑ x , y p ( x , y ) log ( p ( y ∣ x ) p ( x ) ) = − ∑ x , y p ( x , y ) log p ( y ∣ x ) − ∑ x , y p ( x , y ) log p ( x ) = H ( Y ∣ X ) − ∑ x , y p ( x , y ) log p ( x ) = H ( Y ∣ X ) − ∑ x ∑ y p ( x , y ) log p ( x ) = H ( Y ∣ X ) − ∑ x log p ( x ) ∑ y p ( x , y ) = H ( Y ∣ X ) − ∑ x p ( x ) log p ( x ) = H ( Y ∣ X ) − H ( X ) \begin{aligned} H(X,Y) &= -\sum_{x,y} p(x,y) \log p(x,y)\\ &=-\sum_{x,y} p(x,y) \log (p(y|x)p(x))\\ &=-\sum_{x,y}p(x,y) \log p(y|x)-\sum_{x,y} p(x,y) \log p(x)\\ &=H(Y|X) - \sum_{x,y} p(x,y) \log p(x)\\ &=H(Y|X) - \sum_x \sum_y p(x,y) \log p(x)\\ &=H(Y|X) - \sum_x \log p(x) \sum_y p(x,y)\\ &=H(Y|X) - \sum_x p(x) \log p(x)\\ &=H(Y|X) - H(X) \end{aligned} H(X,Y)=−x,y∑p(x,y)logp(x,y)=−x,y∑p(x,y)log(p(y∣x)p(x))=−x,y∑p(x,y)logp(y∣x)−x,y∑p(x,y)logp(x)=H(Y∣X)−x,y∑p(x,y)logp(x)=H(Y∣X)−x∑y∑p(x,y)logp(x)=H(Y∣X)−x∑logp(x)y∑p(x,y)=H(Y∣X)−x∑p(x)logp(x)=H(Y∣X)−H(X)
四、互信息 I(X,Y)
互信息定义为一个随机变量由于已知另一个随机变量而减少的不确定性,或者说从贝叶斯角度考虑,由于新的观测数据y到来而导致x分布的不确定性下降程度。
假设两个离散随机变量 X X X 和 Y Y Y,他们的联合概率分布函数为 p ( x , y ) p(x,y) p(x,y),边缘概率分布函数分别为 p ( x ) p(x) p(x) 和 p ( y ) p(y) p(y)。那么互信息 I ( X , Y ) I(X,Y) I(X,Y) 为联合分布 p ( x , y ) p(x,y) p(x,y) 和 p ( x ) p ( y ) p(x)p(y) p(x)p(y) 之间的相对熵,即:
I ( X , Y ) = ∑ x ∑ y p ( x , y ) log p ( x , y ) p ( x ) p ( y ) I(X,Y) = \sum_x \sum_y p(x,y)\log \frac{p(x,y)}{p(x)p(y)} I(X,Y)=x∑y∑p(x,y)logp(x)p(y)p(x,y)
在连续随机变量的情形下,求和被替换成二重定积分:
I ( X , Y ) = ∫ Y ∫ X p ( x , y ) log ( p ( x , y ) p ( x ) p ( y ) ) d x d y I(X,Y) = \int_Y \int_X p(x,y) \log(\frac{p(x,y)}{p(x)p(y)})dx dy I(X,Y)=∫Y∫Xp(x,y)log(p(x)p(y)p(x,y))dxdy
其中, p ( x , y ) p(x,y) p(x,y) 为 X X X 和 Y Y Y 的联合概率密度函数,而 p ( x ) p(x) p(x) 和 p ( y ) p(y) p(y) 分别是 X X X 和 Y Y Y 的边缘概率密度函数。
经过推导,互信息可以等价的表示成:
I ( X , Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) = H ( X ) + H ( Y ) − H ( X , Y ) = H ( X , Y ) − H ( X ∣ Y ) − H ( Y ∣ X ) \begin{aligned} I(X,Y) &= H(X) - H(X|Y)\\ &= H(Y) - H(Y|X) \\ &= H(X) + H(Y) - H(X,Y)\\ &= H(X,Y)-H(X|Y) - H(Y|X) \end{aligned} I(X,Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)=H(X)+H(Y)−H(X,Y)=H(X,Y)−H(X∣Y)−H(Y∣X)
直观上,互信息度量 X 和 Y 共享的信息:它度量知道这两个变量其中一个,对另一个不确定度减少的程度。例如,如果 X 和 Y 相互独立,则知道 X 不对 Y 提供任何信息,反之亦然,所以它们的互信息为零。在另一个极端,如果 X 是 Y 的一个确定性函数,且 Y 也是 X 的一个确定性函数,那么传递的所有信息被 X 和 Y 共享:知道 X 决定 Y 的值,反之亦然。因此,在此情形互信息与 Y(或 X)单独包含的不确定度相同,称作 Y(或 X)的熵。而且,这个互信息与 X 的熵和 Y 的熵相同。(这种情形的一个非常特殊的情况是当 X 和 Y 为相同随机变量时。)
此外,互信息是非负的,而且是对称的(即 I ( X , Y ) = I ( Y , X ) I(X,Y) = I(Y,X) I(X,Y)=I(Y,X))。
五、总结
对于随机变量 X X X 和 Y Y Y ,他们的熵、联合熵、条件熵以及互信息之间的关系如图所示。
References
- 什么是「互信息」?
- 自信息和互信息、信息熵
相关文章:

【自信息、信息熵、联合熵、条件熵、互信息】
文章目录 一、自信息 I(X)二、信息熵:衡量系统的混乱程度信息熵 H(X)联合熵 H(X,Y) 三、条件熵H(Y|X) 联合熵H(X,Y) - 信息熵H(X)四、互信息 I(X,Y)五、总结References 一、自信息 I(X) 自信息(Self-information) 是由香农提出的,用来衡量单一事件发生…...
免费资源网站
记录一下 音效 爱给网制片帮素材...

C++--------继承
一、继承的基本概念 继承是 C 中的一个重要特性,它允许一个类(派生类或子类)继承另一个类(基类或父类)的属性和方法。这样可以实现代码的重用和建立类之间的层次关系。 #include <iostream>// 基类 class Base…...

Python PyMupdf 去除PDF文档中Watermark标识水印
通过PDF阅读或编辑工具,可在PDF中加入Watermark标识的PDF水印,如下图: 该类水印特点 这类型的水印,会在文件的字节流中出现/Watermark、EMC等标识,那么,我们可以通过改变文件字节内容,清理掉…...
改进爬山算法之四:概率爬山法(Probabilistic Hill Climbing,PHC)
概率爬山法(Probabilistic Hill Climbing,PHC)是一种局部搜索算法,它结合了随机性和贪婪搜索的特点,是对爬山算法(Hill Climbing Algorithm)的一种变体或扩展。与传统的爬山法不同,PHC不是总是选择最优的邻居作为下一步的移动,而是以一定的概率选择最优邻居,同时以一…...

解读DeepseekV3
本年度还剩几天,Deepseek就发布了这么值得惊喜的产品,我觉得是真正做AI,也喜欢AI同学,对这个魔幻的2024年12月,一定是未来多少年想起都能回忆起这波澜壮阔的岁月。 我见过的最省的GPT4o,Claude,…...
【网络安全 | 漏洞挖掘】如何通过竞态条件发现账户接管漏洞
未经许可,不得转载。 文章目录 背景正文设置竞态条件实现漏洞背景 目标应用允许用户创建项目。这些项目中包含多个用户角色,每个角色权限不同(如所有者、管理员、成员管理者等)。用户可通过接受邀请来加入项目,而只有项目所有者才能通过输入邮箱将项目所有权转移给其他用…...

串口通信标准RS232、RS422、RS485有什么区别和不同
目录 第一个区别:硬件管脚接口定义不同: 第二个区别、工作方式不同 第三个区别、通信方式不同 第四个区别,逻辑特性不同 第五个区别、抗干扰性、传输距离和传输速率也不同 RS-232与RS-485对比 RS-422与RS-485对比 今天给大家分享的是&…...

win版ffmpeg的安装和操作
一、ffmpeg软件安装: ffmpeg是一个通过命令行将视频转化为图片的软件。 在浏览器搜索ffmpeg在官网里找到软件并下载(不过官网很慢),建议用这个下载。 下载的文件是一个zip压缩包,将压缩包解压,有如下文件…...
力扣56. 合并区间
此题在技巧上需要掌握Lambda表达式,在 C 的 Lambda 表达式 中,[] 是 捕获列表(capture list),用于指定 Lambda 表达式如何访问其外部作用域的变量。 [捕获列表](参数列表) -> 返回类型 {函数体 };• 捕获列表&…...

2024基于大模型的智能运维(附实践资料合集)
基于大模型的智能运维是指利用人工智能技术,特别是大模型技术,来提升IT运维的效率和质量。以下是一些关键点和实践案例: AIOps的发展:AIOps(人工智能在IT运维领域的应用)通过大数据分析和机器学习技术&…...
Android Java 版本的 MSAA OpenGL ES 多重采样
最近多次被小伙伴问到 OpenGL 多重采样,其实前面文章里多次讲过了,就是构建2个缓冲区,多重采样缓冲区和目标解析缓冲区。 代码流程 // Framebuffer IDs private int msaaFBO; private int msaaColorBuffer; private int msaaDepthBuffer;pr…...

YOLO11改进-注意力-引入自调制特征聚合模块SMFA
本篇文章将介绍一个新的改进机制——SMFA(自调制特征聚合模块),并阐述如何将其应用于YOLOv11中,显著提升模型性能。随着深度学习在计算机视觉中的不断进展,目标检测任务也在快速发展。YOLO系列模型(You Onl…...

VMware虚拟机安装银河麒麟操作系统KylinOS教程(超详细)
目录 引言1. 下载2. 安装 VMware2. 安装银河麒麟操作系统2.1 新建虚拟机2.2 安装操作系统2.3 网络配置 3. 安装VMTools 创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭…...
Elasticsearch-索引的批量操作
索引的批量操作 批量查询和批量增删改 批量查询 #批量查询 GET product/_search GET /_mget {"docs": [{"_index": "product","_id": 2},{"_index": "product","_id": 3}] }GET product/_mget {"…...
【Android】application@label 属性属性冲突报错
错误记录 What went wrong: Execution failed for task :app:processDebugMainManifest. > Manifest merger failed : Attribute applicationlabel value(string/app_name) from AndroidManifest.xml:8:9-41is also present at [:abslibrary] AndroidManifest.xml:25:9-47 v…...

手机发烫怎么解决?
在当今这个智能手机不离手的时代,手机发烫成了不少人头疼的问题。手机发烫不仅影响使用手感,长期过热还可能损害手机硬件、缩短电池寿命,甚至引发安全隐患。不过别担心,下面这些方法能帮你有效给手机 “降温”。 一、使用习惯方面…...

【Artificial Intelligence篇】AI 携手人类:共铸未来创作新纪元
引言: 随着科技的飞速发展,人工智能已逐渐渗透到各个领域,尤其是在创作领域,其与人类的合作展现出了前所未有的可能性和潜力。从艺术作品的生成到文学作品的创作,从复杂软件的开发到创新设计的构思,AI 正在…...

小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面
文章目录 前言一、开启SSH二、配置阿里云ddns1.准备工作2.创建ddns脚本3.添加定时任务 三、开启外网访问SSH和WEB管理界面1、解除WEB管理页面访问限制2.手动添加防火墙端口转发规则,开启外网访问WEB管理和SSH 前言 例如:随着人工智能的不断发展…...

Go快速开发框架2.6.0版本更新内容快速了解
GoFly企业版框架2.6.0版本更新内容较多,为了大家能够快速了解,本文将把更新内容列出详细讲解。本次更新一段时间以来大伙反馈的问题,并且升级后台安全认证机制,增加了RBAC权限管理及系统操作日志等提升后台数据安全性。 更新明细…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...