关于机器学习中贝叶斯学习(Bayesian Learning)计算公式的理解

在这里插入图片描述

一、引言

在《统计学习的分类概述》中介绍了贝叶斯学习的概念和计算公式,可以看到这个公式就是概率统计理论中的贝叶斯公式,但在机器学习中这个公式与概率统计中的理解要复杂得多。

二、贝叶斯学习公式及各组成因子的含义

要理解贝叶斯学习公式,需要对这个公式的每个组成因子结合机器学习的背景进行解释,下面老猿就此展开说明。

2.1、公式及构成

贝叶斯学习的公式如下:
P ( θ ∣ D ) = P ( θ ) ⋅ P ( D ∣ θ ) P ( D ) P(θ|D) = \frac{P(θ) \cdot P(D|θ)}{P(D)} P(θD)=P(D)P(θ)P(Dθ)

其中D表示训练数据,θ表示模型参数,P(θ)是先验概率,P(θ|D)是后验概率,P(D|θ)是似然函数。

2.2、公式组成因子理解

  1. P(D) 表示数据 D出现的边际概率(Marginal Probability,也称为边缘概率,指的是在多个随机变量的联合概率分布中,只考虑单个或部分随机变量的概率分布,而忽略其他变量的影响),也就是数据在所有可能参数值下出现的总概率。在实际应用中,P(D) 通常很难直接计算,因为它涉及到对所有可能参数值的积分。P(D) 在贝叶斯模型比较中非常重要,因为它允许评估不同模型对数据的相对拟合程度;
  2. P(θ) 为 θ 的先验概率,代表了在观测到任何数据 D 之前,对参数 θ 可能取值的信念或知识的量化表达。先验概率是基于以往的经验、历史数据、理论知识或其他信息源得出的,它反映了对参数 θ 的初始不确定性和可能分布的假设。先验概率可以有多种形式,取决于对参数 θ 的了解程度和可用信息。例如,如果对参数没有任何先验知识,可能会选择一个非信息性先验(即与数据和信息无关,如均匀分布),如果有一些关于参数 θ 的先验信息,可以选择一个更具信息性的先验分布,这表明对参数可能值的初始估计和不确定性。先验概率是贝叶斯学习中的一个关键组成部分,它允许将先前的知识与新的观测数据结合起来,进行更加准确和合理的推断。通过这种方式,贝叶斯方法提供了一种强大的框架,用于在不确定性下进行决策和预测。
  3. P(D∣θ) 被称为似然函数(Likelihood),它表示的是在给定参数 θ 的条件下,观测到数据 D 的概率,这个概率反映了参数 θ 对数据 D 的拟合程度。在贝叶斯学习中,通常假设参数θ 是固定的,而数据 D 是随机变量。似然函数表示在特定参数值下,观测到当前数据的可能性有多大;
  4. P(θ∣D)为后验概率,表示在给定观测数据 D 的条件下,模型参数 θ 的概率。它是贝叶斯学习中的核心概念,反映了在考虑了数据 D 之后对参数 θ 的最新认识。这个后验概率不仅考虑了数据对参数的影响,还考虑了对参数的先验知识或信念(因为P(θ)是事件θ的先验概率)。在统计学习中,通常关注的是如何根据观测数据 D来估计模型参数 θ 的分布,以及如何利用这个分布来进行预测或决策。

2.3、使用贝叶斯学习的举例

2.3.1、案例

为了理解贝叶斯学习公式,老猿结合举个抛硬币的例子来说明:
假设有一个简单的硬币投掷实验,硬币有两面:正面(H)和反面(T),想要估计硬币正面出现的概率 p。

对应贝叶斯学习公式的各个组成因子如下:

  • θ:θ是模型的参数,对于基于随机事件出现的概率分布表示的模型,参数就是其概率分布函数中非固定常数部分,如对于正态分布,模型参数是均值μ 和标准差σ,对于白努力分布,模型参数是成功概率 p。抛掷硬币的概率公式符合白努力分布,因此在这个例子中,θ 就是硬币正面出现的概率,比如 θ 可以是 0.5(表示公平的硬币)
  • 数据 D:假设进行了 10 次投掷,观察到的数据集 D 是 6 次正面(H),4 次反面(T)
  • 先验概率 P(θ):假设没有投掷硬币正反面出现的概率的先验知识,可以选择一个均匀分布作为先验概率, θ 在区间 [0, 1] 的所有值P(θ)=1 (均匀分布意味着在没有任何额外信息的情况下,认为 p 取区间 [0, 1] 内任何值的可能性都是相同的,其概率密度函数(对于连续均匀分布)可以表示为: P ( θ ) = 1 b − a P(\theta) = \frac{1}{b - a} P(θ)=ba1,其中 a 和 b 是 θ 的取值范围的下界和上界。对于硬币正面出现的概率 p,这个范围是 [0, 1],因此: P ( p ) = 1 1 − 0 = 1 P(p) = \frac{1}{1 - 0} = 1 P(p)=101=1,对于 p 在区间 [0, 1] 上的任何值,这个概率密度函数都是 1
  • 似然函数 P(D∣θ):假设每次投掷是独立的,那么在参数 θ 给定的情况下,观测到特定数据集 D 的概率是 θ 的成功次数乘以 1−θ 的失败次数。在这个例子中,似然函数为 P ( D ∣ θ ) = θ 6 ( 1 − θ ) 4 P(D|\theta) = \theta^6 (1-\theta)^4 P(Dθ)=θ6(1θ)4
  • 后验概率 P(θ∣D):在使用贝叶斯定理来更新对 θ 的认识,由于 θ 是一个概率值,可以假设它的范围是 [0, 1],并且 P(D) 是所有可能 θ 值下 D 出现概率的总和。在实际操作中,P(D) 可以通过对所有可能 θ 值的似然函数乘以先验概率后求和来计算。
    P ( θ ∣ D ) = P ( θ ) ⋅ P ( D ∣ θ ) P ( D ) P(\theta|D) = \frac{P(\theta) \cdot P(D|\theta)}{P(D)} P(θD)=P(D)P(θ)P(Dθ)
    在这个简单的例子中,由于先验概率是均匀分布,P(θ)=1,因此后验概率主要由似然函数 P(D∣θ)决定。在例子中,后验概率 P(θ∣D) 将会在θ 接近 0.6 时达到最大值,这表示根据观测到的数据,硬币正面出现的概率大约是 0.6。
  • 预测新数据 P(x∣D):要预测下一次投掷的结果,可以计算新样本 x(正面或反面)在给定数据 D 的条件下的概率。由于硬币的每次投掷是独立的,可以直接使用后验概率 P(θ∣D) 来预测下一次正面出现的概率,即 P ( x = H ∣ D ) = θ M A P ,其中 θ M A P P(x=H|D) = \theta_{MAP} ,其中 \theta_{MAP} P(x=HD)=θMAP,其中θMAP 是后验概率的模式(最大值所在的位置),在这个例子中, θ M A P \theta_{MAP} θMAP 接近 0.6。

这个简单的例子展示了如何使用贝叶斯学习来更新对参数 θ 的认识,并如何利用这个认识来进行预测。在实际应用中,参数 θ 和数据 D 可能更加复杂,但基本原理是相同的。

2.3.2、后验概率 P(θ∣D) 将会在θ 接近 0.6 时达到最大值的推导说明

对于硬币投掷的例子,似然函数 P ( D ∣ θ ) = θ 6 ( 1 − θ ) 4 P(D|\theta) = \theta^6 (1-\theta)^4 P(Dθ)=θ6(1θ)4 是基于观测到的数据 D来计算在给定参数 θ 下观测到这一系列结果的概率。

要进行最大似然估计,首先需要对似然函数取对数,然后求导使得函数取值为0,相关知识请参考《人工智能基础概念4:似然函数、最大似然估计案例详解》。

对数似然函数 ℓ(θ) 定义为:
ℓ ( θ ) = log ⁡ P ( D ∣ θ ) \ell(\theta) = \log P(D|\theta) (θ)=logP(Dθ)

对于 P ( D ∣ θ ) = θ 6 ( 1 − θ ) 4 P P(D|\theta) = \theta^6 (1-\theta)^4P P(Dθ)=θ6(1θ)4P ,对数似然函数为:
ℓ ( θ ) = log ⁡ ( θ 6 ( 1 − θ ) 4 ) = 6 log ⁡ ( θ ) + 4 log ⁡ ( 1 − θ ) \ell(\theta) = \log(\theta^6 (1-\theta)^4)= 6 \log(\theta) + 4 \log(1-\theta) (θ)=log(θ6(1θ)4)=6log(θ)+4log(1θ)

接下来,我们对ℓ(θ) 关于 θ 求导,并找到导数等于零的点,这个点就是 θ 的最大似然估计值 θ ^ M L E \hat{\theta}_{MLE} θ^MLE,对 ℓ(θ) 求导得:
d ℓ ( θ ) d θ = 6 θ − 4 1 − θ \frac{d\ell(\theta)}{d\theta} = \frac{6}{\theta} - \frac{4}{1-\theta} dθd(θ)=θ61θ4
令导数等于零,解方程:
0 = 6 θ − 4 1 − θ 0 = \frac{6}{\theta} - \frac{4}{1-\theta} 0=θ61θ4

解这个方程可以得到 \thetaθ 的最大似然估计值 θ ^ M L E \hat{\theta}_{MLE} θ^MLE
6 ( 1 − θ ) θ = 4 θ 1 − θ \frac{6(1-\theta)}{\theta} = \frac{4\theta}{1-\theta} θ6(1θ)=1θ4θ
​所以,根据最大似然估计,硬币正面出现的概率 θ ^ M L E \hat{\theta}_{MLE} θ^MLE 是 0.6。

三、关于贝叶斯学习的预测

使用贝叶斯学习预测新数据点 x 的概率 P(x∣D) 时,实际上是在计算所有可能的 θ 值对新数据点 x出现概率的贡献。每个 θ 值都会根据其后验概率 P(θ∣D) 来加权这个贡献。这就需要使用积分形式的后验概率期望值来计算 P(x∣D):
P ( x ∣ D ) = ∫ P ( x ∣ θ , D ) P ( θ ∣ D ) d θ P(x|D)=∫P(x|θ,D)P(θ|D)dθ P(xD)=P(xθ,D)P(θD)dθ
这里x是新样本,P(x∣D) 表示在给定训练数据 D 的条件下,新样本 x 出现的概率。这是对新数据点的预测概率,它反映了基于已有数据对新观测结果的不确定性的量化。

公式相关组成部分进一步解释如下:

  1. P(x|D)表示在给定数据 D的条件下,新样本 x 出现的概率,这个概率是关于模型参数θ 的函数,但在贝叶斯推断中,通常不对 θ 进行明确的估计,而是考虑其整个后验分布P(θ∣D)。由于后验分布 P(θ∣D) 描述了在观测到数据 D 后,参数 θ 的概率分布,因此需要对这个分布进行积分,以计算在所有可能的 θ 值下 x 出现的概率。在这个积分过程中,每个参数值 θ 对最终结果的贡献是不同的,这个贡献就是由其在后验分布中的相对概率决定的,因此可看做是权重;
  2. P(x∣θ,D) 是在给定 θ 和 D 的条件下,新样本 x 出现的概率,这通常被称为条件概率密度函数(对于连续随机变量),这个函数描述了在特定参数值下观测到新数据的概率。然而,由于不知道真实的θ 值,不能直接计算P(x∣D),因此需要考虑所有可能的 θ 值, 对于每一个参数值 θ,计算在该参数值下观测到新样本 x 的条件概率 P(x∣θ,D)。然后将这个条件概率乘以该参数值的后验概率 P(θ∣D),这样就得到了该参数值对新样本 x 出现概率的贡献。最后,将所有可能的 θ 值的贡献加总起来(计算时是求积分),得到整个后验分布对 x 出现概率的总贡献,即P(x∣D)

通过这种积分,我们实际上是在计算所有可能的参数值对新样本 x出现概率的贡献,并将这些贡献加总起来,得到一个总体的预测概率。这个预测概率 P(x∣D) 不依赖于任何特定的参数值,而是考虑了参数的整个后验分布,从而提供了一种在参数不确定性下进行预测的方法。

三、小结

本文详细介绍了贝叶斯学习(Bayesian Learning)计算公式的各个组成因子的含义及所代表的意义,贝叶斯学习基于贝叶斯定理和概率论的原理计算在给定数据条件下模型的后验概率,并应用这个原理进行模型的估计以及对数据的预测。

在这里插入图片描述

更多统计学习基础知识请参考专栏《统计学习基础知识》。

更多人工智能基础知识请参考专栏《人工智能基础知识》。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Security】1.Spring Security介绍 功能介绍

文章目录 一、Spring Security介绍二、功能介绍 一、Spring Security介绍 官方文档:https://docs.spring.io/spring-security/reference/index.html 官网解释:Spring Security 是一个提供 身份验证、授权 和 针对常见攻击的保护 的框架。 它为 保护命令…

运放噪声评估的来龙去脉

运放噪声评估的来龙去脉 友情提示,运放电路的噪声分析还是比较复杂的,不论是基础理论还是对应的推导过程,都不是特别容易。考虑到兄弟们的基础参差不齐,所以我还是尽量说清楚点,这样导致看起来就有点罗里吧嗦&#xff…

刷题之动态规划-回文串

前言 大家好,我是jiantaoyab,开始刷动态规划的回文串类型相关的题目 动态规划5个步骤 状态表示 :dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程: dp[i] 等于什么1 和 2 是动态规划的核心步骤,…

市场复盘总结 20240412

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率 50% 最常用的二…

iOS开发之为什么需要引用计数

iOS开发之为什么需要引用计数 在iOS开发中,Objective-C与Swift语言都是通过引用计数进行内存管理,实际上Python、Ruby、C等语言也提供了基于引用计数的内存管理方式,它们有一个共同点,那就是都是面向对象的编程语言。 引用计数可…

响应式布局(其次)

响应式布局 一.响应式开发二.bootstrap前端开发框架1.原理2.优点3.版本问题4.使用(1)创建文件夹结构(2)创建html骨架结构(3)引入相关样式(4)书写内容 5.布局容器(已经划分…

Cascader 级联选择器 - 选择器最后一级数据为空

原因:将扁平数据转化为树形数据时,给每个项都添加了 children export const transList2Tree (list, rootPid) > {const result []list.forEach(item > {if (item.pid rootPid) {const children transList2Tree(list, item.id)item.children …

c语言多功能计算软件170

定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…

【Godot4.2】CanvasItem绘图函数全解析 - 3.绘制纹理

概述 前两节我们讲述了常见几何图形绘制以及对几何图形应用变换的基础知识。 本节我们来讲如何在CanvasItem中绘制纹理。 系列目录 0.概述1.绘制简单图形2.设定绘图变换3.绘制纹理4.绘制样式盒5.绘制字符和字符串6.TextLine和TextParagraph详解7.自定义节点TextBoard8.绘制点…

C语言 函数——函数封装与程序的健壮性

目录 函数封装(Encapsulation) 如何增强程序的健壮性? 如何保证不会传入负数实参? 函数设计的基本原则 函数封装(Encapsulation) 外界对函数的影响——仅限于入口参数 函数对外界的影响——仅限于一个…

MySQL前缀索引(3/16)

前缀索引 前缀索引:MySQL支持前缀索引,允许定义字符串的一部分作为索引。如果不指定前缀长度,索引将包含整个字符串。前缀索引可以节省空间,但可能会增加查询时的记录扫描次数(因为会查询到多个前缀相同的数据&#x…

MySQL数据库的增删改查(进阶)

1.新增 将一个表中的内容插入到另一个表中. 这里需要确保查询集合的列数,类型,顺序要和插入表的列数,类型,顺序一致,这里列的名称可以不一样. values 替换成了select 查询的临时表. 2. 查询 2.1 聚合查询 2.1.1 聚合查询 函数 说明COUNT([DISTINCT] expr)返回…

python爬虫--------Beautiful Soup 案列(二十一天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

同城O2O系统搭建实战:外卖跑腿APP发全攻略

在同城服务领域,外卖和跑腿服务成为了人们生活中不可或缺的一部分。接下来小编将带领读者进入同城O2O系统搭建的实战领域,详细介绍如何打造一款外卖跑腿APP。 第一步:需求分析 这包括对目标用户群体的调研,明确用户的需求和痛点。…

FreeFileSync|本地自动备份设置教程,终于可以不用手动同步了

前言 昨天小白给各位小伙伴分享了FreeFileSync软件,由于篇幅过长,所以整个教程中并没有教小伙伴们如何设置自动同步的办法。 今天小白就来唠唠:如何让FreeFileSync自动同步。 教程分为几种: 开机自动同步 开机之后自动执行一次…

OpenHarmony南向嵌入式:【XR806开发板指导文档】

一. 简介 芯片介绍 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony轻量设置系统。具有集成度高、硬件设计简单、BOM成本低、安全可靠等优点。可广泛满足 智能家居、智慧楼宇、工业互联、儿童玩具、电子竞…

【uniapp】省市区下拉列表组件

1. 效果图 2. 组件完整代码 <template><view class="custom-area-picker"><view

C语言函数指针应用——计算器(转移表)的使用

对与上一节&#xff0c;我们对指针函数已经有了深刻意识了&#xff1b;练一练吧 如果还没有学习到&#xff0c;也是没有关系的&#xff0c;可以看一看这一篇 C语言详解指针-CSDN博客https://blog.csdn.net/Asuku_/article/details/137690083希望能提高你对指针的理解 计算器的实…

在Windows下面的vscode配置cmake使用vcpkg包管理器

安装 vscode下载地址 cmake下载地址 vcpkg下载地址 创建CMake项目 // main.cpp #include <fmt/core.h>int main() {fmt::print("Hello World!\n");return 0; }// CMakeLists.txtcmake_minimum_required(VERSION 3.10)project(HelloWorld)find_package(fmt…

详解“国九条3.0版”重磅落地:A股这些方向或有新气象

围绕资本市场下一阶段的重大改革举措&#xff0c;正在从更高层面赫然开启。 4月12日&#xff0c;国务院发布《关于加强监管防范风险推动资本市场高质量发展的若干意见》&#xff08;以下简称“意见”&#xff09;&#xff0c;全文围绕新股上市发行、上市公司监管、退市机制、强…