贝叶斯估计

问题建模:

后验概率公式:

P ( ω i ∣ x , D ) = P ( x ∣ ω i , D i ) P ( ω i ) ∑ j = 1 c P ( x ∣ ω j , D j ) P ( ω j ) P\left(\omega_i \mid \mathbf{x}, \mathcal{D}\right)=\frac{P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right) P\left(\omega_i\right)}{\sum_{j=1}^c P\left(\mathbf{x} \mid \omega_j, \mathcal{D}_j\right) P\left(\omega_j\right)} P(ωix,D)=j=1cP(xωj,Dj)P(ωj)P(xωi,Di)P(ωi)

由于我们在做分类器时,手上其实是有训练数据的,也就是每一类 ω i \omega_i ωi 都有自己对应的训练数据集合 D i \mathcal{D}_i Di。因此,我们真正能估计的是:
P ( x ∣ ω i , D i ) P(\mathbf{x} \mid \omega_i, \mathcal{D}_i) P(xωi,Di)
也就是说,“在知道类别是 ω i \omega_i ωi” 且 “在我们拥有第 i 类的数据 D i \mathcal{D}_i Di” 的情况下,输入 x \mathbf{x} x 出现的概率。我们在每个类别内部进行建模的时候,类别标签已经是已知的固定量。所以:

  • 给定 D i \mathcal{D}_i Di ,我们知道这些数据都是属于 ω i \omega_i ωi 类别的。
  • 那我们就可以只用这些数据来建模"类别 ω i \omega_i ωi 的条件概率分布"。

也就是说,一旦我们知道了 D i \mathcal{D}_i Di 是哪一类的,我们已经隐含地知道了类别标签 ω i \omega_i ωi ,所以再写 ω i \omega_i ωi 就是多余了。于是就可以简写为:

P ( x ∣ ω i , D i ) = P ( x ∣ D i ) P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right)=P\left(\mathbf{x} \mid \mathcal{D}_i\right) P(xωi,Di)=P(xDi)
所以,问题的核心在于**估计 P ( x ∣ D ) P(\mathbf{x} \mid \mathcal{D}) P(xD)。**这里省略下标表示对所有类别通用的求解方式。
p ( x ∣ D ) = ∫ p ( x , θ ∣ D ) d θ = ∫ p ( x ∣ θ , D ) p ( θ ∣ D ) d θ = ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ \begin{aligned} p(\mathbf{x} \mid \mathcal{D}) & =\int p(\mathbf{x}, \boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}, \mathcal{D}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta}\end{aligned} p(xD)=p(x,θD)dθ=p(xθ,D)p(θD)dθ=p(xθ)p(θD)dθ
这是一种对概率密度求积分的思想。因为在贝叶斯方法中,参数 θ \theta θ 不是固定的值,而是一个不确定的变量!

  • 传统频率派做法通常是:
    直接用最大似然估计或MAP估计得出一个具体的 θ ^ \hat{\theta} θ^ ,然后用 p ( x ∣ θ ^ ) p(\mathbf{x} \mid \hat{\theta}) p(xθ^) 来做预测。

  • 而贝叶斯派则认为:

    我们应该考虑所有可能的参数值,不要只依赖一个点估计!要用加权平均 的方式整合所有参数不确定性。所以我们不是用一个固定参数预测 x \mathbf{x} x ,而是用下面这个**"平均版本"**:

p ( x ∣ D ) = E θ ∼ p ( θ ∣ D ) [ p ( x ∣ θ ) ] p(\mathbf{x} \mid \mathcal{D})=\mathbb{E}_{\theta \sim p(\theta \mid \mathcal{D})}[p(\mathbf{x} \mid \theta)] p(xD)=Eθp(θD)[p(xθ)]

  • 举个例子:

    假设我们要预测某人是否患病(1 or 0),你用逻辑回归来建模,参数是 θ \theta θ。现在你已经看到了一些训练数据 D \mathcal{D} D

    • 如果你直接用最大似然:
      θ ^ = argmax θ p ( D ∣ θ ) \hat{\theta} = \text{argmax}_\theta p(\mathcal{D} \mid \theta) θ^=argmaxθp(Dθ),然后预测:
      p ( 患病 ∣ 特征 ) ≈ p ( 患病 ∣ 特征 , θ ^ ) p(\text{患病} \mid \text{特征}) \approx p(\text{患病} \mid \text{特征}, \hat{\theta}) p(患病特征)p(患病特征,θ^)

    • 如果你用贝叶斯预测:
      你承认你对 θ \theta θ 没有那么确定,只能说它服从某个后验分布:
      p ( 患病 ∣ 特征 ) = ∫ p ( 患病 ∣ 特征 , θ ) ⋅ p ( θ ∣ D ) d θ p(\text{患病} \mid \text{特征}) = \int p(\text{患病} \mid \text{特征}, \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(患病特征)=p(患病特征,θ)p(θD)dθ

    这就是贝叶斯方法“把模型参数的不确定性也考虑进来”的精髓。

继续看上面的公式: ∫ p ( x ∣ θ ) p ( θ ∣ D ) d θ \int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} p(xθ)p(θD)dθ

  • p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ):似然函数,形式已知(如高斯分布)。

  • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):参数的后验分布,需通过训练数据计算。计算过程:
    p ( θ ∣ D ) = p ( θ , D ) p ( D ) = p ( θ ) p ( D ∣ θ ) ∫ p ( θ , D ) d θ = p ( θ ) p ( D ∣ θ ) ∫ p ( θ ) p ( D ∣ θ ) d θ p ( D ∣ θ ) = ∏ i = 1 n p ( x k ∣ θ ) \begin{aligned} p(\boldsymbol{\theta} \mid \mathcal{D}) & =\frac{p(\boldsymbol{\theta}, \mathcal{D})}{p(\mathcal{D})} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}, \mathcal{D}) d \boldsymbol{\theta}} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta}) d \boldsymbol{\theta}} \\ p(\mathcal{D} \mid \boldsymbol{\theta}) & =\prod_{i=1}^n p\left(\mathbf{x}_k \mid \boldsymbol{\theta}\right) \end{aligned} p(θD)p(Dθ)=p(D)p(θ,D)=p(θ,D)dθp(θ)p(Dθ)=p(θ)p(Dθ)dθp(θ)p(Dθ)=i=1np(xkθ)

进行贝叶斯参数估计的一般阶段:

  • 阶段 I:训练(后验分布)

    输入:

    • 数据集 D = { x 1 , x 2 , . . . , x n } \mathcal{D} = \{x_1, x_2, ..., x_n\} D={x1,x2,...,xn}
    • 参数的先验分布 p ( θ ) p(\theta) p(θ):比如说你觉得 θ \theta θ 是某个高斯分布。

    核心公式:
    p ( θ ∣ D ) = p ( D ∣ θ ) p ( θ ) p ( D ) p(\theta \mid \mathcal{D}) = \frac{p(\mathcal{D} \mid \theta) p(\theta)}{p(\mathcal{D})} p(θD)=p(D)p(Dθ)p(θ)
    逐项理解:

    • p ( θ ) p(\theta) p(θ):我们对参数的先验认知
    • p ( D ∣ θ ) p(\mathcal{D} \mid \theta) p(Dθ):参数下,数据出现的可能性(似然)
    • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):数据观察之后,对参数的更新信念
    • p ( D ) = ∫ p ( D ∣ θ ) p ( θ ) d θ p(\mathcal{D}) = \int p(\mathcal{D} \mid \theta)p(\theta)d\theta p(D)=p(Dθ)p(θ)dθ归一化项,保证后验是概率分布。

    目标: 求出后验分布 p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD)

  • 阶段 II:估计类条件密度(积分)

    我们要干嘛?
    在数据集下,我们想知道观测到新样本 x \mathbf{x} x的可能性是多少?但我们不能只用某一个 θ \theta θ,因为我们不确定。所以我们把所有可能的 θ \theta θ 都考虑进去,做一个加权平均(加权方式是后验概率):
    p ( x ∣ D ) = ∫ p ( x ∣ θ ) ⋅ p ( θ ∣ D ) d θ p(\mathbf{x} \mid \mathcal{D}) = \int p(\mathbf{x} \mid \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(xD)=p(xθ)p(θD)dθ

    • p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ):在参数 θ \theta θ 下,x 的生成概率(比如说高斯密度);
    • p ( θ ∣ D ) p(\theta \mid \mathcal{D}) p(θD):阶段 I 得到的后验分布;
    • 积分的结果:在参数不确定的前提下, x \mathbf{x} x总体生成可能性

    这一步的意义是: 我们不是像MLE那样说“ θ \theta θ 就是这个”,而是说“我们不知道 θ \theta θ 到底是哪个,所以我们把所有可能的 θ \theta θ 的解释能力都考虑进来”,这叫边际化参数

  • 阶段 III:分类

    现在我们有了每个类 ω i \omega_i ωi 的条件密度估计:
    p ( x ∣ ω i , D i ) p(\mathbf{x} \mid \omega_i, \mathcal{D}_i) p(xωi,Di)
    我们还可以提前给出类的先验概率 P ( ω i ) P(\omega_i) P(ωi),比如所有类是等概率的就是均匀先验。

    最后就可以通过贝叶斯规则,计算某个类的后验概率(重点是“对这个样本来说,它属于哪个类更有可能”):
    P ( ω i ∣ x , D ) = P ( x ∣ ω i , D i ) P ( ω i ) ∑ j = 1 c P ( x ∣ ω j , D j ) P ( ω j ) P(\omega_i \mid \mathbf{x}, \mathcal{D}) = \frac{P(\mathbf{x} \mid \omega_i, \mathcal{D}_i) P(\omega_i)}{\sum_{j=1}^c P(\mathbf{x} \mid \omega_j, \mathcal{D}_j) P(\omega_j)} P(ωix,D)=j=1cP(xωj,Dj)P(ωj)P(xωi,Di)P(ωi)

    • 分子是“这个类解释当前样本的能力 × 这个类本身的先验”;
    • 分母是对所有类的分子求和(归一化);
    • 最后就可以取最大后验的类作为分类结果。

比较最大似然估计和贝叶斯估计的哲学思想

为什么最大似然估计认为能让似然函数最大的参数值即为所求?

最大似然估计的基本假设是:

现实中观测到的数据是由某个“真实参数”控制的概率模型生成的,而我们不知道这个参数是多少。

所以我们要“反过来推”,从数据出发,倒推出这个参数。这就是最大似然的直觉: “哪个参数让我们实际观测到的数据最可能发生?”

  • 似然函数是对“模型如何解释数据”的度量

    似然函数 L ( θ ) = p ( D ∣ θ ) L(\theta) = p(D \mid \theta) L(θ)=p(Dθ)
    它表示在参数为 θ \theta θ 的前提下,我们实际看到数据 D D D 的概率。

    MLE 就是选择那个让这件事发生得最自然、最不意外的 θ \theta θ

  • 和频率学派的统计思想一致

    频率学派认为:

    • 参数是“固定不变”的(虽然我们不知道它是多少);
    • 数据是“可重复的随机样本”。

    那么,从一堆样本中,我们就用 MLE 来寻找最有可能产生这堆样本的参数值,这是频率学派最常见的估计方法之一。

  • 从极大化联合概率来看

    假设数据是独立同分布的:
    D = { x 1 , x 2 , … , x n } D = \{x_1, x_2, \ldots, x_n\} D={x1,x2,,xn},则似然函数是:
    L ( θ ) = ∏ i = 1 n p ( x i ∣ θ ) L(\theta) = \prod_{i=1}^n p(x_i \mid \theta) L(θ)=i=1np(xiθ)
    你会发现:MLE 寻找的是哪个 θ \theta θ,能让这些样本的联合概率最大

    这等价于:

    选择一个最能“复现”这些样本的参数值。

  • 和“最大后验估计”也有关联

    当你加上先验知识 p ( θ ) p(\theta) p(θ) 的时候,你得到的是最大后验估计(MAP)
    θ MAP = arg ⁡ max ⁡ θ p ( θ ∣ D ) = arg ⁡ max ⁡ θ p ( D ∣ θ ) p ( θ ) \theta_{\text{MAP}} = \arg\max_\theta p(\theta \mid D) = \arg\max_\theta p(D \mid \theta)p(\theta) θMAP=argθmaxp(θD)=argθmaxp(Dθ)p(θ)
    当先验是均匀分布(对所有参数值一视同仁)时:
    θ MAP = θ MLE \theta_{\text{MAP}} = \theta_{\text{MLE}} θMAP=θMLE
    所以 MLE 可以被看作一种“没有先验信息时的贝叶斯估计”。

贝叶斯学派认为:“参数本身也是不确定的,是一个概率分布。”我们根据数据不断地更新我们对参数的信念

频率学派贝叶斯学派
参数是固定的,数据是随机的数据是确定的,参数是不确定的
用样本来推断固定参数用数据来更新我们对参数的信念
不谈“参数的概率”,只谈样本概率参数也有概率分布

p ( θ ∣ D ) ⏟ 后验  = p ( D ∣ θ ) ⏟ 似然  ⋅ p ( θ ) ⏟ 先验  p ( D ) ⏟ 边际似然  \underbrace{p(\theta \mid D)}_{\text {后验 }}=\frac{\underbrace{p(D \mid \theta)}_{\text {似然 }} \cdot \underbrace{p(\theta)}_{\text {先验 }}}{\underbrace{p(D)}_{\text {边际似然 }}} 后验  p(θD)=边际似然  p(D)似然  p(Dθ)先验  p(θ)

这表达了:

我们通过观察数据 D,把原先对参数 θ \theta θ 的“信念” p ( θ ) p(\theta) p(θ),更新为一个新的“信念” p ( θ ∣ D ) p(\theta \mid D) p(θD)

类比为“科学实验”

  1. 我们对一个理论(参数)有一个初步的信念(先验);
  2. 我们进行实验,收集数据(似然);
  3. 我们更新我们的信念,得到一个更加可信的理论(后验). “新信念的比例 = 旧信念的比例 × 数据支持程度的比例”。。

分母实际上是一个归一化常数, p ( D ) = ∫ p ( D ∣ θ ) ⋅ p ( θ ) d θ p(D)=\int p(D \mid \theta) \cdot p(\theta) d \theta p(D)=p(Dθ)p(θ)dθ

它的作用是对所有可能的 θ \theta θ 情况归一化,让后验 p ( θ ∣ D ) p(\theta \mid D) p(θD) 的积分为 1。来保证这个式子符合概率的形式. 核心思想体现在分子.

  • 主观信念更新是核心:我们不是问“谁生成了数据”,而是“在看到数据后我们应该相信谁?”
  • 信念更新的比例逻辑:比例推理形式强调的是“相对可信度”的更新,而不是绝对频率。
  • 概率的可解释性来自先验:先验并不等于胡说,而是代表我们对问题背景的理解,是模型的一部分。
  • 贝叶斯定理并不是从频率定义出发的数学技巧,而是从“主观信念更新的理性原则”出发,用似然函数衡量数据的支持程度,用先验表示我们原有的信念,再通过归一化得到后验信念。

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

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

相关文章

【C++】命令模式

目录 一、模式核心概念与结构二、C 实现示例:遥控器与家电控制三、命令模式的关键特性四、应用场景五、命令模式与其他设计模式的关系六、C 标准库中的命令模式应用七、优缺点分析八、实战案例:数据库事务命令九、实现注意事项如果这篇文章对你有所帮助&…

基于librdkafka开发的C++客户端,生产者生产发送数据失败问题处理

我们的项目使用了开源的librdkafka库,实现向kafka服务器生产发送数据的功能。使用的librdkafka的版本是1.9.0。 作为客户端程序,在开发时和客户协商确认后,支持了SASL_PLAINTEXT认证。以下概念解释引用自通义千问AI SASL (Simple Authentic…

OpenGL之yaw、pitch、fov 和 lookAt

在 3D 图形学中,yaw、pitch、fov 和 lookAt 都是控制摄像机(Camera)行为的关键参数,但它们的 作用层级 和 使用场景 不同。 1. yaw、pitch、fov 的作用 (1) yaw(偏航角) 作用:控制摄像机 左右…

STM32-第一节-新建工程,GPIO,点亮LED,蜂鸣器

一、新建工程: 1.Keil中新建工程,选择开发板型号。 2.工程文件夹建立Start,Library等分类,复制模版工程中的文件到工程文件夹中。 3.在Keil中添加分组,添加文件。 4.工程选项设置: c/c中:Inc…

Rust标量、复合类型与自定义类型、第三方并发结构

以下是 Rust 中标量类型、对象类型(含结构体、复合类型、堆分配类型)以及常用第三方并发数据结构的完整分类、示例和区别对比,帮助你系统掌握它们的本质异同: 🟢 一、标量类型(Scalar Types,存储…

基于STM32温湿度检测—串口显示

基于STM32温湿度检测 (仿真+程序) 功能介绍 具体功能: 1.使用DHT11检测温湿度; 2.单片机处理完控制LCD1602显示温湿度; 3.单片机也通过串口显示检测到的温湿度; 添加图片注释,不…

Windows 10 查询 Nginx 进程教程

1. 打开命令提示符(CMD) 按 Win R,输入 cmd,回车。或者在开始菜单搜索栏输入“cmd”,选择“命令提示符”。 2. 查看是否有正在运行的 Nginx 进程 输入命令: tasklist | findstr nginx这个命令会列出所有…

使用 Kafka 优化物流系统的实践与思考

使用 Kafka 优化物流系统的实践与思考 在现代物流系统中,订单处理、仓储管理、运输调度等环节复杂且实时性要求高。为了满足异步解耦、高吞吐、高可用、事件驱动和数据可靠性等需求,Kafka 作为分布式消息队列和流处理平台,成为了我们的首选。…

Rust中模式匹配let Some(gas_price) = tx.gas_price用法

你问得非常好,let Some(gas_price) tx.gas_price 是 Rust 中的一种模式匹配写法,它用于从 Option 类型中提取值。 ✅ 背景知识:什么是 Option? 在 Rust 中,如果一个值可能存在也可能不存在,就会用 Option…

什么是LLM大语言模型

什么是LLM大语言模型 LLM的全称是,Large Language Model,简称LLM,翻译为大语言模型,其核心是模拟人类语言的复杂规律,实现语义理解、推理分析、文本生成等任务,主要目的是实现能读懂和说出人类语言的模型。…

杂谈-架构时代演进

关于未来 5-10 年软件系统演化方向 1. 云原生 ➝ 超云原生(Post Cloud Native) Kubernetes 平台自治化: K8s Operator 日益强大,逐步具备自愈、自动扩缩容、自动调优能力。 云厂商与企业私有云逐步融合为一体…

如何查看服务器的运行日志?

🟢 一、Linux服务器 Linux日志都在**/var/log**目录下,最常用的有: 📂 常用日志文件 文件内容/var/log/messages大部分系统日志(CentOS常见)/var/log/syslog系统消息日志(Ubuntu/Debian常见&a…

在幸狐RV1106开发板上用gcc14.2本地编译安装postgresql 17.5数据库

在幸狐RV1106开发板上用gcc14.2本地编译安装postgresql 17.5数据库 编译环境: RV1106G3 Linux luckfox-rv1106 5.10.160 #3 Fri Jun 27 14:16:20 AWST 2025 armv7l GNU/Linux BusyBox v1.36.1 gcc version 14.2.0 (GCC) GNU ld (GNU Binutils) 2.44 GNU Make 4.4 n…

Go语言中map[string]interface{} 和 map[string]string的区别

在 Go 语言中,map[string]interface{} 和 map[string]string 是两种不同类型的 map,它们的主要区别在于值的类型以及这种差异带来的使用场景和灵活性的不同。 1. 值的类型 map[string]interface{}:这里的 interface{} 表示 Go 中的空接口类型…

AdGuard Home 安装及使用

AdGuard Home 是 AdGuard 开源的一个私人 DNS 服务端,只需在网关部署,即可实现全局域网的广告拦截与隐私反追踪。在 DNS 解析的过程中,匹配规则库内的 URL 进行拦截,同时在客户端中,还可以通过自定义过滤规则实现网页 DOM 的拦截。 基于 Golang 编写的 AdGuard Home,官方…

绕过 GraphQL 暴力破解保护

题目要求: 本实验的用户登录机制由 GraphQL API 提供支持。API 终端节点有一个速率限制器,如果它在短时间内收到来自同一源的太多请求,则会返回错误。 要解决实验问题,请暴力破解登录机制以 .使用身份验证实验室密码列表作为密码…

C/C++ 使用rapidjson库 操作Json格式文件(创建、插入、解析、修改、删除)

目录 一、前言 1.简介 2.兼容性 3.下载 4.安装 5.官方文档 6.自述 二、封装Json 1. 创建一个 Document 对象 2. "key":"value" 3. { } 4. [ ] 5. [ { }, { } ] 6. [ [ ], [ ] ] 7. { [ ], [ ] } 8. { { }, { } } 9. 将Document转换为字符串…

免安装一键修复网络诊断 + 权限修复!打印机共享错误工具适配 Win7/10/11

各位打印小能手们!你们有没有遇到过共享打印机出问题,搞得自己焦头烂额的情况?比如系统一更新,打印机就连不上,打印任务失败,真的是让人崩溃啊!别慌,今天就给大家全面介绍一款打印机…

电脑分屏快捷键5

按window右箭头: 按window左箭头:

nt!CcFlushCache函数分析之nt!CcFindBcb

nt!CcFindBcb函数分析 第一部分: 1: kd> p nt!CcAcquireByteRangeForWrite0x377: 80a13c49 e866e4ffff call nt!CcFindBcb (80a120b4) 1: kd> t nt!CcFindBcb: 80a120b4 55 push ebp 1: kd> kc # 00 nt!CcFindBcb 01 nt!CcAcqu…