【机器学习】近似分布的熵到底是p(x)lnq(x)还是q(x)lnq(x)?

【1】通信的定义

信息量(Information Content)是信息论中的一个核心概念,用于定量描述一个事件发生时所提供的“信息”的多少。它通常用随机变量 𝑥的概率分布来定义。事件 𝑥发生所携带的信息量由公式给出:
I ( x ) = − log ⁡ p ( x ) I(x)=-\log p(x) I(x)=logp(x)
其中, p ( x ) p(x) p(x)表示事件 𝑥发生的概率。

∙ 概率越小,事件越不常见,发生时提供的信息量越大。 ∙ 概率为  1 的事件是确定的,不提供任何信息量( I ( x ) = 0 )。 ∙ 概率接近  0 的事件非常罕见,信息量趋近无穷大。 \begin{aligned}&\bullet\quad\text{概率越小,事件越不常见,发生时提供的信息量越大。}\\&\bullet\quad\text{概率为 }1\text{ 的事件是确定的,不提供任何信息量(}I(x)=0\text{)。}\\&\bullet\quad\text{概率接近 }0\text{ 的事件非常罕见,信息量趋近无穷大。}\end{aligned} 概率越小,事件越不常见,发生时提供的信息量越大。概率为 1 的事件是确定的,不提供任何信息量(I(x)=0)概率接近 0 的事件非常罕见,信息量趋近无穷大。

信息量描述单个事件的信息贡献,而熵(Entropy)是信息量的期望值,用于衡量整个概率分布的不确定性:

对于离散随机变量的熵的定义为:
H [ x ] = − ∑ x p ( x ) log ⁡ 2 p ( x ) \mathrm{H}[x]=-\sum_xp(x)\log_2p(x) H[x]=xp(x)log2p(x)

对于连续随机变量的熵的定义为:

H [ x ] = E [ − ln ⁡ p ( x ) ] = − ∫ p ( x ) ln ⁡ p ( x ) d x \mathrm H[x]=\mathbb E[-\ln p(x)]=-\int p(x)\ln p(x) dx H[x]=E[lnp(x)]=p(x)lnp(x)dx

从通信角度来说,熵的值相当于对随机变量 x x x 的每个可能状态进行编码时,理论上的最短平均编码长度。

熵越大,系统的不确定性越大;熵越小,系统越接近确定性。

【2】机器学习应用

在机器学习中,一般需要构造一个概率分布 q ( x ) q(x) q(x) 来逼近一个未知的目标分布 p ( x ) p(x) p(x)

对于一个给定的连续分布 p ( x ) p(x) p(x),其随机变量 x x x 取特定值所能提供的信息量为 − l n p ( x ) − ln p(x) lnp(x),并且该随机变量 x x x 的平均信息量为 − ∫ p ( x ) l n p ( x ) d x − ∫p(x) ln p(x) dx p(x)lnp(x)dx

当用近似分布 q ( x ) q(x) q(x) 来替代目标分布 p ( x ) p(x) p(x) 时,随机变量 x 取特定值的估计信息量变
− l n q ( x ) − ln q(x) lnq(x),而相应的熵变为 − ∫ p ( x ) l n q ( x ) d x −∫p(x) ln q(x) dx p(x)lnq(x)dx

疑问

问题:这里为什么变成 p ( x ) l n q ( x ) p(x)lnq(x) p(x)lnq(x),而不是 q ( x ) l n q ( x ) q(x)lnq(x) q(x)lnq(x)?

在机器学习中,当使用一个近似分布 ( q ( x ) q(x) q(x) ) 来替代目标分布 ( p ( x ) p(x) p(x) ) 时,出现 ( p ( x ) ln ⁡ q ( x ) p(x) \ln q(x) p(x)lnq(x)) 而不是 ( q ( x ) ln ⁡ q ( x ) q(x) \ln q(x) q(x)lnq(x) ) 的原因主要源于我们关心的是目标分布 ( p ( x ) p(x) p(x) ) 的特性,而不是 ( q ( x ) q(x) q(x) ) 本身。这可以从以下几个方面理解:


1. 核心目标:逼近目标分布 ( p(x) )

  • 我们的目标是构造一个 ( q ( x ) q(x) q(x) ) 来逼近 ( p ( x ) p(x) p(x) )。因此,我们需要使用 ( p ( x ) p(x) p(x) ) 来评估 ( q ( x ) q(x) q(x) ) 的好坏。
  • 如果直接使用 ( q ( x ) ln ⁡ q ( x ) q(x) \ln q(x) q(x)lnq(x) ),我们只是在描述 ( q ( x ) q(x) q(x) ) 本身的性质,而没有体现它与 ( p ( x ) p(x) p(x) ) 的关系。

2. 期望的计算权重由 ( p(x) ) 决定

  • 在概率分布中,期望的计算权重应该反映目标分布 ( p ( x ) p(x) p(x) ) 的实际情况。
  • 通过积分 − ∫ p ( x ) ln ⁡ q ( x ) d x - \int p(x) \ln q(x) dx p(x)lnq(x)dx我们是用目标分布 ( p ( x ) p(x) p(x) ) 的概率来加权评估 ( q ( x ) q(x) q(x) ) 的表现。
    这意味着我们关注的是目标分布下的“真实情况”,而不是 ( q ( x ) q(x) q(x) ) 自己的特性。

3. 解释:信息论中的编码思想

信息论中,我们希望用 ( q ( x ) q(x) q(x) ) 来编码目标分布 ( p ( x ) p(x) p(x) ) 中的数据。如果 ( p ( x ) p(x) p(x) ) 是真实分布, ( q ( x ) q(x) q(x) ) 是我们的近似分布:

  • ( − ln ⁡ p ( x ) -\ln p(x) lnp(x) ):真实分布下的理想编码长度。
  • ( − ln ⁡ q ( x ) -\ln q(x) lnq(x) ):用近似分布编码时的实际长度。

用 ( q ( x ) q(x) q(x) ) 来编码 ( p ( x ) p(x) p(x) ) 时,随机变量 ( x x x ) 的取值是依据 ( p ( x ) p(x) p(x) ) 来产生的,因此应该以 ( p ( x ) p(x) p(x) ) 为权重来衡量编码的平均长度,即 ( − ∫ p ( x ) ln ⁡ q ( x ) d x -\int p(x) \ln q(x) dx p(x)lnq(x)dx)。


4. 直观理解:错误代价的衡量

如果我们直接使用 ( q ( x ) ln ⁡ q ( x ) q(x) \ln q(x) q(x)lnq(x) ),那相当于仅关注 ( q ( x ) q(x) q(x) ) 自己的内部一致性,但我们真正关心的是 ( q ( x ) q(x) q(x) ) 与 ( p ( x ) p(x) p(x) ) 的差异。这种差异需要通过目标分布 ( p ( x ) p(x) p(x) ) 来衡量:

  • ( p ( x ) ln ⁡ q ( x ) p(x) \ln q(x) p(x)lnq(x) ):用 ( q ( x ) q(x) q(x) ) 来描述 ( p ( x ) p(x) p(x) ) 时的估计误差。
  • 它是对真实分布 ( p ( x ) p(x) p(x) ) 的状态进行编码的平均代价,而非对 ( q ( x ) q(x) q(x) ) 自身的特性描述。

5. 与 KL 散度的关系

KL 散度(Kullback-Leibler divergence)用于衡量两个分布的差异,其定义为:
D K L ( p ∣ ∣ q ) = ∫ p ( x ) ln ⁡ p ( x ) q ( x ) d x = − ∫ p ( x ) ln ⁡ q ( x ) d x + ∫ p ( x ) ln ⁡ p ( x ) d x D_{KL}(p || q) = \int p(x) \ln \frac{p(x)}{q(x)} dx = - \int p(x) \ln q(x) dx + \int p(x) \ln p(x) dx DKL(p∣∣q)=p(x)lnq(x)p(x)dx=p(x)lnq(x)dx+p(x)lnp(x)dx
可以看出, ( − ∫ p ( x ) ln ⁡ q ( x ) d x -\int p(x) \ln q(x) dx p(x)lnq(x)dx) 是 KL 散度的一部分,用来描述 ( q ( x ) q(x) q(x) ) 对 ( p ( x ) p(x) p(x) ) 的拟合质量。


总结

变成 ( − ∫ p ( x ) ln ⁡ q ( x ) d x -\int p(x) \ln q(x) dx p(x)lnq(x)dx) 是因为我们关心的是 ( q ( x ) q(x) q(x) ) 对目标分布 ( p ( x ) p(x) p(x) ) 的拟合情况,而不是 ( q ( x ) q(x) q(x) ) 自己的特性。通过以 ( p ( x ) p(x) p(x) ) 作为权重来计算期望,我们能够更准确地反映目标分布下的编码代价和近似质量。

后记

2024年11月21日21点00分于上海。基于GPT4o大模型生成。

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

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

相关文章

Excel如何批量导入图片

这篇文章将介绍在Excel中如何根据某列数据,批量的导入与之匹配的图片。 准备工作 如图,我们准备了一张员工信息表以及几张员工的照片 可以看到,照片名称是每个人的名字,与Excel表中的B列(姓名)对应 的卢易…

【操作系统】操作系统的特征

操作系统的七个基本特征 并发性(Concurrence) 并发性是指操作系统在同一时间间隔内执行和调度多个程序的能力,提高资源利用率和系统效率。尽管多个任务可能在同一时刻看似同时进行,但实际上,CPU在多个任务之间快速切…

iPhone 17 Air看点汇总:薄至6mm 刷新苹果轻薄纪录

我们姑且将这款iPhone 17序列的超薄SKU称为“iPhone 17 Air”,Jeff Pu在报告中提到,我同意最近关于 iPhone 17超薄机型采用6 毫米厚度超薄设计的传言。 如果这一测量结果被证明是准确的,那么将有几个值得注意的方面。 首先,iPhone…

springboot嗨玩旅游网站

摘 要 嗨玩旅游网站是一个专为旅行爱好者打造的在线平台。我们提供丰富多样的旅游目的地信息,包括景点信息、旅游线路、商品信息、社区信息、活动推广等,帮助用户轻松规划行程。嗨玩旅游网站致力于为用户提供便捷、实用的旅行服务,让每一次旅…

LLM学习笔记(2)会话补全Chat Completions、什么是JSON?

什么是会话补全Chat Completions? 功能目标:处理多轮对话。 它模拟对话的逻辑,比如聊天机器人对用户消息的回应。使用的模型主要是针对对话型应用优化的模型,例如gpt-3.5-turbo或gpt-4。 什么是JSON? JSON 本质上是…

C++和js对比

1. 变量定义 C&#xff1a; #include <iostream> int main() {// 定义整型变量int num 10;// 定义浮点型变量double pi 3.14159;// 定义字符型变量char ch A;std::cout << "num: " << num << ", pi: " << pi << &…

SpringBoot与MongoDB深度整合及应用案例

SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域&#xff0c;NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB&#xff0c;作为一款领先的NoSQL数据库&#xff0c;以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…

潜水打捞系统的功能概率和使用方法_深圳鼎跃

潜水打捞系统是用于帮助打捞沉物&#xff0c;提供足够的浮力支持&#xff0c;确保沉物从水底浮升到水面。它是一种高强度的袋状结构&#xff0c;能够在水下提供调节浮力的功能&#xff0c;广泛应用于水下打捞、海上救援、沉船打捞等领域。 一、功能概述 潜水打捞系统主要功能为…

网络互助在中国 共筑健康保障新生态

在数字化的浪潮中,网络互助行业以其独特的普惠价值和发展潜力,迅速在中国的健康保障领域崭露头角。网络互助行业以其低门槛、普惠性特点,有效缓解了中低收入人群大病医疗资金的压力,避免了因病致贫的风险。据艾媒咨询数据显示,2019年中国网络互助行业救助总人数超过3万人,救助总…

linux:python2.7.x升级至3.13.0详细记录(含踩坑内容)

部署linux系统默认2.7.x环境&#xff0c;但是有些项目部署需3.x以上&#xff0c;由于低版本也存在高风险漏洞&#xff0c; 查看openSSL版本信息 高于1.1.1 直接安装即可 [rootlocalhost ~]# openssl version OpenSSL 1.1.1f 31 Mar 2020 [rootlocalhost ~]#直接安装python3…

SpringMVC接收请求参数

&#xff08;5&#xff09;请求参数》五种普通参数 1.普通参数 代码块 RequestMapping("/commonParam") ResponseBody public String commonParam(String name,int age){System.out.println("普通参数传递 name > "name);System.out.println("普通…

洛谷P1597

语句解析 - 洛谷 语句解析 题目背景 木有背景…… 题目描述 一串长度不超过255的 PASCAL 语言代码&#xff0c;只有 a,b,c 三个变量&#xff0c;而且只有赋值语句&#xff0c;赋值只能是一个一位的数字或一个变量&#xff0c;每条赋值语句的格式是 [变量]:[变量或一位整数…

CPU 内存加压工具 stress-ng 介绍

01 文章背景介绍 在实车测试时&#xff0c;除了感知算法外&#xff0c;往往还会有别的 APP 在同时运行&#xff0c;从而挤压算法的资源占用&#xff0c;影响模型性能&#xff0c;降低部署效果。因此在项目早期做板端验证的时候&#xff0c;我们就可以使用一些工具对 CPU 和内存…

(C语言)文件操作

目录 文件 程序文件 数据文件 文件名 ​编辑数据文件的分类 文件的打开和关闭 流 标准流 1&#xff09;stdin 2&#xff09;stdout 3&#xff09;stderr 文件指针 文件的打开和关闭 对文件内容操作的函数 1&#xff09;fgetc&#xff0c;fputc 2&#xff09;fp…

低代码开发平台搭建思考与实战

什么是低代码开发平台&#xff1f; 低代码开发平台是一种平台软件&#xff0c;人们能通过它提供的图形化配置功能&#xff0c;快速配置出满足各种特定业务需求的功能软件。 具有以下特点&#xff1a; 提供可视化界面进行程序开发0代码或少量代码快速生成应用 什么是低代码产…

Axure设计之日期时间范围选择器

在产品设计和原型制作过程中&#xff0c;日期时间范围选择器是一个常见的需求。Axure作为一个强大的原型设计工具&#xff0c;能够帮助我们快速实现这一功能。通过利用Axure的动态面板、中继器、文本框、按钮以及时间函数&#xff0c;我们可以轻松制作一个功能完备的日期时间范…

汽车资讯新趋势:Spring Boot技术解读

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 汽车资讯网站的系统管理员可以管理用户&#xff0c;可以对用户信息修改删除审核以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 汽车品牌管理 系统管理员可以汽车品牌信息进行添加&#xf…

代码随想录第三十七天

52.携带研究材料 题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等&#xff0c;它们各自占据不同…

[开源] 告别黑苹果!用docker安装MacOS体验苹果系统

没用过苹果电脑的朋友可能会对苹果系统好奇&#xff0c;有人甚至会为了尝鲜MacOS去折腾黑苹果。如果你只是想体验一下MacOS&#xff0c;这里有个更简单更优雅的解决方案&#xff0c;用docker安装MacOS来体验苹果系统。 一、项目简介 项目描述 Docker 容器内的 OSX&#xff08…

redis延时队列

引入 <redisson.version>3.15.5</redisson.version><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>${redisson.version}</version></dependency>…