概率、泛化与过拟合

1. 贝叶斯定理 (Bayes' Rule)

贝叶斯公式,又称贝叶斯定理、贝叶斯法则,最初是用来描述两个事件的条件概率间的关系的公式,后来被人们发现具有很深刻的实际意义和应用价值。该公式的实际内涵是,支持某项属性的事件发生得愈多,则该属性成立的可能性就愈大。

首先,我po一道例题

问题回顾

  • 袋子 1(B1):2 颗红球,3 颗白球 → (R, R, W, W, W)
  • 袋子 2(B2):3 颗红球,2 颗绿球 → (R, R, R, G, G)
  • 随机选择一个袋子,然后 不放回地抽取 2 颗球,发现它们都是 红球
  • 问题:在已知抽到 2 颗红球的情况下,选中的袋子是 B1 的概率是多少?

 

2.熵与 KL 散度 (Entropy and KL-Divergence) 

2.1. 熵(Entropy):不确定性的度量

  • 是什么? 熵衡量一个事件或概率分布的“不确定性”。不确定性越大,熵越高。

  • 例子:抛硬币时,若硬币公平(正反概率各50%),结果最难预测,此时熵最大;若硬币作弊(如正面90%),结果更容易猜中,熵较低。

 

  • 直观理解:熵是“平均信息量”。比如,天气预报若每天都是晴天(确定性高),熵低;若阴晴不定(不确定性高),熵高。

2.2. KL散度(Kullback-Leibler Divergence):分布差异的衡量

  • 是什么? KL散度衡量两个概率分布 pp(真实分布)和 qq(近似分布)的差异。差异越大,KL散度越大。

 

  • 直观理解:如果用错误的分布 q 描述真实数据 p,KL散度表示“额外信息成本”。例如:

    • 真实分布 p:公平硬币(熵=1比特)。

    • 近似分布 q:作弊硬币(正面70%,反面30%)。

    • 计算 DKL(p∣∣q)≈0.1258 比特,表示用 q 近似 p 时,每个结果平均多出0.1258比特的“误差”。

2.3. 熵与KL散度的关系 

2.4.应用场景

  • :压缩数据(熵越低,越易压缩)、评估系统不确定性。

  • KL散度:模型训练(如变分自编码器VAE)、分布对比(如生成对抗网络GAN)、信息检索。

 2.5.总结

  • :衡量“不确定性”,值越大越难预测。

  • KL散度:衡量“两个分布的差异”,值越大越不相似。

  • 注意:KL散度不对称,使用时需明确方向(如用 q 近似 p,还是反过来)。

还是先po一道例题

 

问题回顾

给定两个离散概率分布 p 和 q:

我们需要计算:

  1. 构建 Huffman 树(用于数据压缩)
  2. 计算熵 H(p)
  3. 计算 KL 散度 ,并比较它们的大小

 

3.二元高斯分布的熵、KL 散度 和 Wasserstein 距离 

3.1. 二元高斯分布的熵

是什么?

熵衡量分布的“不确定性”或“混乱程度”。对于高斯分布,熵由分布的“分散程度”(协方差矩阵)决定:数据越分散,熵越高。

公式

二元高斯分布的熵公式为:

  • ∣Σ∣是协方差矩阵的行列式,代表分布的“面积”(分散程度)。

  • 直观理解:协方差矩阵的行列式越大(数据分布越广),熵越大。例如:

    • 窄而集中的分布(如身高和体重的紧密关联)→ 熵低。

    • 宽而分散的分布(如身高和体重几乎不相关)→ 熵高。

例子

假设一个班级学生的身高和体重服从高斯分布:

  • 若身高和体重高度相关(比如高个子通常更重),协方差矩阵的行列式较小 → 熵低。

  • 若身高和体重几乎无关(比如高个子可能重也可能轻),行列式较大 → 熵高。

3.2. KL散度(Kullback-Leibler Divergence)

是什么?

KL散度衡量两个高斯分布的差异。如果分布 PP 和 QQ 的均值和协方差不同,KL散度会量化它们的“不相似性”。

假设:

  • P 是某地区成年人的身高体重分布(均值170cm/65kg,协方差小)。

  • Q 是另一个地区的分布(均值175cm/70kg,协方差大)。

KL散度会反映这两个分布的差异。但注意:用 Q 近似 P 的误差,和用 P 近似 Q 的误差是不同的(非对称性)。

3.3. Wasserstein距离

是什么?

Wasserstein距离衡量两个分布之间的“最小搬运成本”。直观上,它回答:“把分布 P 的土堆,搬运成分布 Q 的形状,最少需要多少工作量?”

 

例子

假设:

  • P 是一个窄高斯分布(如某品牌手机的用户年龄和收入)。

  • Q 是一个宽高斯分布(如另一品牌手机的用户年龄和收入)。

Wasserstein距离不仅考虑了两者均值的位置差异,还考虑了分布形状的不同(比如一个集中,一个分散)。

3.4.三者的对比

3.5.直观总结

  1. :衡量分布本身的“混乱程度”——协方差矩阵越大,熵越高。

  2. KL散度:衡量两个分布的“信息差异”——均值相差越大或协方差越不匹配,值越大。

  3. Wasserstein距离:衡量两个分布的“几何距离”——既考虑位置差异,也考虑形状差异。


3.6.实际应用

  • :在通信中用于计算信道容量;在数据科学中用于评估特征的不确定性。

  • KL散度:用于变分推断(VAE)、EM算法,衡量模型分布与真实分布的差异。

  • Wasserstein距离:在生成对抗网络(WGAN)中替代KL散度,解决梯度消失问题;在最优运输问题中广泛应用。

现在,我来po一道例题

 

(1) 计算熵 H(p) 和 H(q)

(2) 计算 KL 散度

(3) 计算 Wasserstein 距离

它考虑了两个因素:

  1. 均值 (Mean) 的差距:衡量两个分布中心的偏移。
  2. 协方差 (Covariance) 的差距:衡量分布形状的不同。

解释:

  • 这意味着高斯分布 q 和 p 在几何空间中的“距离”是 1.624
  • 这个值表示:
    • 均值偏移影响了 Wasserstein 距离(均值差异平方是 1)。
    • 协方差矩阵的不同也产生贡献(额外贡献了 1.64)。
  • 相比 KL 散度,Wasserstein 距离更加直观,能够反映分布的几何结构差异

总结

  1. 最终 Wasserstein 距离:W2(q,p)=1.624
  2. 意义
    • 如果 W2W_2W2​ 小,说明两个分布几乎一样。
    • 如果 W2W_2W2​ 大,说明两个分布在均值或形状上差异较大。
    • 这个距离在**生成对抗网络(GANs)**中用于衡量生成数据与真实数据的相似性。

假设有两个村庄 p 和 q:

  • KL 散度 只关注:p 和 q 在同一个位置上食物分布不同,会导致多少信息损失。
  • Wasserstein 距离 关注:如果要把 p 的食物分布变成 q,需要运多少货车,跑多远?

在高斯分布的情况下:

  • 如果均值 μ1 和 μ2​ 相近,W2​ 会小,表示分布很相似。
  • 如果协方差矩阵 Σ1​ 和 Σ2 形状差别大,W2​ 会增大,说明分布形状不同。

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

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

相关文章

基于Python实现的智能旅游推荐系统(Django)

基于Python实现的智能旅游推荐系统(Django) 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat 系统功能实现 总体设计 系统实现 系统首页模块 统首页页面主要包括首页,旅游资讯,景点信息…

php代码审计工具-rips

代码审计 代码审计就是检查所写的代码中是否有漏洞,检查程序的源代码是否有权限从而被黑客攻击,同时也检查了书写的代码是否规范。通过自动化的审查和人工审查的方式,逐行检查源代码,发现源代码中安全缺陷所造成的漏洞&#xff0…

深入剖析分布式事务:原理、方案与实战指南

引言:为什么分布式事务成为架构师的必修课? 在微服务架构大行其道的今天,单体应用被拆分成多个独立服务。当一次业务操作需要跨多个服务/数据库完成时,传统数据库事务的ACID特性不再适用。订单创建需要同时操作订单服务和库存服务…

C语言100天练习题【记录本】

C语言经典100题(手把手 编程) 可以在哔哩哔哩找到(url:C语言经典100题(手把手 编程)_哔哩哔哩_bilibili) 已解决的天数:一,二,五,六,八&#xf…

计算机毕设-基于springboot的物业管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Trae IDE新建C#工程

目录 1 结论 2 项目结构 3 项目代码 1 结论 新建C#工程来说,Trae的Chat比DeepSeek的Coder好用。 2 项目结构 MyWinFormsApp/ │ ├── Program.cs ├── Form1.cs ├── Form1.Designer.cs ├── MyResources/ │ └── MyResources.resx └── MyWin…

Linux 进程管理

一.进程 1.基本介绍 在Linux中每一个执行的程序都称之为进程,每一个进程都会分配一个进程号(PID)。进程以前台和后台两种方式存在,前台进程就是我们可以在屏幕上操作的,后台进程我们无法在屏幕上看到。 程序是静态的…

最新版本TOMCAT+IntelliJ IDEA+MAVEN项目创建(JAVAWEB)

前期所需: 1.apache-tomcat-10.1.18-windows-x64(tomcat 10.1.8版本或者差不多新的版本都可以) 2.IntelliJ idea 24年版本 或更高版本 3.已经配置好MAVEN了(一定先配置MAVEN再搞TOMCAT会事半功倍很多) 如果有没配置…

fiddler everywhere 绿色永久版

目录: 1. 下载并安装 FiddlerEverywhere v5.16.02. 下载并安装 FiddlerEverywherePatcher 补丁3. 修改 FiddlerEverywhere 版本号4. 再打开 FiddlerEverywhere 即可正常使用 亲测有效!!!以 Windows 10 FiddlerEverywhere v5.16.0 …

TypeError: Cannot assign to read only property ‘xxx‘ of object ‘#<Object>‘

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型

一、数据类型分类 二、数值类型 1.bit类型 测试环境ubuntu 基本语法: bit[(M)]:位字段类型,M表示每个值的位数,范围从1~64;如果M被忽略,默认为1举例: create table testBit(id i…

python-leetcode-统计构造好字符串的方案数

2466. 统计构造好字符串的方案数 - 力扣(LeetCode) 这个问题可以用**动态规划(DP)**来解决,思路如下: 思路 1. 定义 DP 数组 设 dp[i] 表示长度为 i 的好字符串的个数。 2. 状态转移方程 我们可以在 dp…

Java为什么是跨平台的

一、Java虚拟机(JVM)的抽象层作用 JVAM是Java跨平台的核心技术。Java代码编译后生成字节码(.class文件),这些字节码并非直接由操作系统执行,而是由JVM解释或编译为特定平台的机器码。 屏蔽底层差异:JVM为不同操作系统提供统一的运行时环境,开…

RuleOS:区块链开发的“破局者”,开启Web3新纪元

RuleOS:区块链开发的“破冰船”,驶向Web3的星辰大海 在区块链技术的浩瀚宇宙中,一群勇敢的探索者正驾驶着一艘名为RuleOS的“破冰船”,冲破传统开发的冰层,驶向Web3的星辰大海。这艘船,正以一种前所未有的姿…

python: DDD+ORM using oracle 21c

sql script: create table GEOVINDU.School --創建表 ( SchoolId char(5) NOT NULL, -- SchoolName nvarchar2(500) NOT NULL, SchoolTelNo varchar(8) NULL, PRIMARY KEY (SchoolId) --#主鍵 );create table GEOVINDU.Teacher ( TeacherId char(5) NOT NULL , TeacherFirstNa…

软考中级_【软件设计师】知识点之【数据库】

一、结构数据模型 结构数据模型是直接面向数据库的逻辑结构包括: 层次模型、网状模型、关系模型(主要学习)、面向对象模型层次模型: 是一个树结构一对多 网状模型: 是图结构多对多 关系模型 是一种二维表格结构 例如&…

【UCB CS 61B SP24】 Lecture 25 26 - Minimum Spanning Trees Directed Acyclic Graphs 学习笔记

本文首先介绍了图论中的另一个经典问题:最小生成树(MST),讲解并用 Java 实现了用于求解 MST 的两个经典算法 Prim 与 Kruskal;接着介绍并实现了有向无环图(DAG)与拓扑排序。 1. 最小生成树 1.…

Java源码:利用jdk的spi载入其他厂商Driver实现源码分析

Java源码:利用jdk的spi载入其他厂商Driver实现源码分析 前言:一、Java中的类加载器类型二、类加载器的作用时机三、类加载的过程四、引导类加载器:一、定义与职责二、实现方式三、加载过程与特性四、与其他类加载器的关系五、作用与意义 隐式…

可视化+图解:轻松搞定链表

链表(Linked list)是一种常用的数据结构,它由一系列节点组成,每个节点包含数据域和指针域。指针域存储了下一个节点的地址,从而建立起各节点之间的线性关系。 1、链表节点 1.1 节点构成 链表节点如下图所示&#xff…

HarmonyOS Next 属性动画和转场动画

HarmonyOS Next 属性动画和转场动画 在鸿蒙应用开发中,动画是提升用户体验的关键要素。通过巧妙运用动画,我们能让应用界面更加生动、交互更加流畅,从而吸引用户的注意力并增强其使用粘性。鸿蒙系统为开发者提供了丰富且强大的动画开发能力&…