【自信息、信息熵、联合熵、条件熵、互信息】
文章目录
- 一、自信息 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权限管理及系统操作日志等提升后台数据安全性。 更新明细…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
