GPR模型的一些高斯原理介绍

news/2024/11/18 21:18:01/文章来源:https://www.cnblogs.com/kakafa/p/18533114

一、几个概念区分:


高斯的几个概念:


  1. 高斯分布(Gaussian Distribution)

    • 高斯分布是统计学中最常见的概率分布之一,也称为正态分布。它具有钟形曲线的形状,由两个参数决定:均值(mean)和方差(variance)。
    • 高斯分布在自然界和工程应用中经常出现,其形状由均值和方差决定,具有很多重要的性质,如对称性、中心极限定理等。
  2. 高斯过程(Gaussian Process)

    • 高斯过程是一种用于建模随机函数的强大工具,它可以被视为无限维的高斯分布。高斯过程完全由均值函数和协方差函数定义,任意有限维的高斯过程都服从多变量高斯分布。
    • 高斯过程通常用于回归、分类等机器学习任务,能够对未知的函数进行预测,并提供了不确定性估计。
  3. 高斯分布回归(Gaussian Distribution Regression)

    • 高斯分布回归是一种回归方法,其中假设目标变量服从高斯分布。通过拟合一个高斯分布模型来预测目标变量的值,通常使用最大似然估计或贝叶斯推断来估计模型参数。
    • 高斯分布回归常用于连续型数据的回归问题,在预测时会给出目标值的均值及方差估计。
  4. 高斯过程回归(Gaussian Process Regression)

    • 高斯过程回归是利用高斯过程进行回归分析的一种方法。它通过高斯过程来建模目标变量和输入变量之间的关系,给出了输入输出之间的非线性关系模型。
    • 高斯过程回归适用于噪声较小的数据集,并且提供了对预测结果的不确定性估计,具有灵活性、可解释性和良好的泛化能力。
    • 把函数看成是一个随机变量。它不是简单地对目标变量进行高斯分布假设,而是对整个函数空间进行建模

先验与后验:


  1. 先验概率(Prior Probability)

    • 先验概率指的是在观测到新数据之前,根据以往的经验、领域知识或假设对某个事件发生的概率所做出的估计。
    • 通俗例子:假设我们要估计一枚硬币正面朝上的概率,如果没有任何信息,我们可能会选择一个先验概率为0.5,即认为硬币正反面朝上的概率是相等的。
  2. 先验分布(Prior Distribution)

    • 先验分布是对未知参数在观测数据之前的概率分布的假设。它描述了我们对参数可能取值的初始信念。
    • 通俗例子:在贝叶斯线性回归中,我们可能会假定参数的先验分布是高斯分布,即认为参数的真实值可能在均值附近且方差较小。
  3. 后验概率(Posterior Probability)

    • 后验概率指的是在观测到新数据之后,根据先验概率和观测数据来更新对事件发生的概率的估计。
    • 通俗例子:继续以上硬币的例子,当我们投掷硬币多次后,观测到正面朝上的次数,根据贝叶斯定理更新后,得到新的后验概率。
  4. 后验分布(Posterior Distribution)

    • 后验分布是参数在观测数据之后的条件概率分布,是先验分布与似然函数的乘积标准化而得。
    • 通俗例子:在高斯分布拟合中,如果我们有一组观测数据,并且假设参数的先验分布是均值为0,方差为1的高斯分布,通过观测数据更新后可以得到参数的后验分布。


GPR模型训练超参数的一些输入值输出值:


  1. 输入值

    • 训练数据:主要的输入是训练数据集,包含输入特征X(例如一系列样本的属性值,像房屋面积、房龄等)和对应的目标值Y(如房屋价格)。
    • 超参数初始值:还需要输入超参数的初始值。超参数包括像核函数(例如径向基函数RBF核)的参数,如长度尺度(它决定了函数的平滑程度,长度尺度小意味着函数变化快,长度尺度大意味着函数变化平缓)和幅值(控制函数的整体幅度),以及噪声参数(用于考虑观测数据中的噪声)、学习率(用于优化算法调整模型参数)等。这些超参数初始值用于初始化模型,在训练过程中会不断被调整。
  2. 训练中得到的值

    • 调整后的超参数
    • 拟合后的模型参数(如果有):除了超参数,一些模型可能还有其他参数。在训练过程中,这些参数也会被更新,使得模型能够更好地拟合训练数据。例如,模型可能会学习到一个合适的均值函数参数(如果均值函数不是简单的固定常数),以更好地匹配数据的分布。
    • 预测分布相关参数(均值和协方差):训练过程也是在学习如何根据输入特征预测目标值的分布。通过学习训练数据,模型可以得到对于新输入点的预测分布的均值和协方差的估计这些估计会随着训练过程不断优化,使得预测分布更符合数据的实际情况。
  3. 损失函数

    • 负对数似然损失(NLL Loss):这是高斯过程回归中常用的损失函数。它基于概率分布来衡量模型预测的分布与实际观察到的数据分布之间的差异。从概率角度理解,对于给定的训练数据xi,yi,模型预测了一个目标值(yi)的分布(p(yi|xi))。负对数似然损失计算了观察到实际数据(yi)在这个预测分布下的负对数概率。如果模型预测的分布与实际数据分布很匹配,那么负对数似然损失就会比较小;反之,如果模型预测的分布与实际数据相差较大,损失就会比较大。
    • 均方误差(MSE)或平均绝对误差(MAE)等(在某些近似方法或验证阶段):在一些情况下,特别是在验证模型性能或者在某些近似的训练方法中,也可能会使用像均方误差或平均绝对误差这样的损失函数。例如,在验证阶段,通过计算模型预测的均值(从预测分布中得到)与实际目标值之间的MSE或MAE,来评估模型在训练过程中的性能变化,帮助判断模型是否过拟合或者是否需要调整超参数等。


GPR模型训练预测值模型的过程:


  • 首先,它会假设数据背后有一个潜在的函数,这个函数符合高斯分布(可以理解为正态分布的概率密度函数)。

  • 然后,通过已知的数据点来估计这个潜在函数的一些参数。这些参数可以帮助确定这个函数大概长什么样,像是估计这个函数的高低起伏的情况。(即从这些数据对里获取信息,比如数据的均值和方差等统计特征。假设这些数据是符合高斯过程的,也就是在这个过程里任意一组输入对应的输出都具有联合高斯分布的性质。)

  • 注意:对于输入的每一个x值,都会生成一个对应的正态分布函数

  • 当要预测新的数据点的时候,它会根据已经知道的数据点的分布情况,以及估计出来的函数参数,计算出这个新数据点可能出现的位置和对应的概率。用比较直观的话讲,就是看看新的数据最有可能在什么范围出现。



二、机器学习中GPR模型例子


# 定义高斯过程回归模型
class GPModel(ApproximateGP):# 继承自ApproximateGP类,这表明该模型使用变分推断方法近似高斯过程,相比精确高斯过程可以在大规模数据上更高效地进行计算def __init__(self, inducing_points): # 诱导点是从原始数据中抽取出的一小部分样本点,它们被用来近似描述整个数据集的特性。通过在较少的诱导点上执行高斯过程的训练和推断,可以显著降低计算复杂度,特别适用于大规模数据集的情况variational_distribution = CholeskyVariationalDistribution(inducing_points.size(0))variational_strategy = VariationalStrategy(self, inducing_points, variational_distribution, learn_inducing_locations=True)# 这个对象定义了如何在近似高斯过程中使用变分推理super(GPModel, self).__init__(variational_strategy)self.mean_module = gpytorch.means.ConstantMean()# 定义一个均值模块为常数均值,这意味着在高斯过程中,均值是一个常数。self.covar_module = gpytorch.kernels.ScaleKernel(gpytorch.kernels.RBFKernel())# 定义一个协方差模块。这通常用于描述数据之间的相似性和相关性。def forward(self, x):mean_x = self.mean_module(x)covar_x = self.covar_module(x) # 协方差(covariance):两个随机变量 X 和 Y 的协方差公式:cov(X, Y) = E[(X - E[X])(Y - E[Y])] return gpytorch.distributions.MultivariateNormal(mean_x, covar_x)

  • 变分推断方法:当使用高斯过程进行建模时,由于其计算复杂性,尤其是在大数据集的情况下,我们可以利用变分推断来简化计算。具体做法是将高斯过程的后验分布用一个变分分布来近似。例如,我们可以假设一个简单的变分高斯分布来近似高斯过程的后验分布

  • 中心极限定理:在适当的条件下,大量相互独立的随机变量的均值经适当标准化后分布收敛于正态分布

    • 相互独立:比如在预测产品的销售量时,受到消费者的收入水平、市场竞争程度、广告投入、季节因素等多个因素的影响。如果这些因素在一定程度上是相互独立的,那么预测值就可能趋近于正态分布。又比如在时间序列中,相邻数据点存在很强相关性时(这种情况下,这些数据点即影响因素不是独立的),中心极限定理不能直接应用于原始数据。
  • 正态分布横纵坐标的含义:




















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

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

相关文章

20222411 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 1.1 实践内容 (1)前期渗透 ①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。 ③选做:也可以扫系统版本、漏洞等。 (2)Vsftpd源码包后门漏洞(21端口) 漏洞原理:在特定版本的vsftpd服务…

如何控制java虚拟线程的并发度?

jdk 21中的虚拟线程已经推出好一段时间了,确实很轻量,先来一段示例: 假如有一段提交订单的业务代码:1 public void submitOrder(Integer orderId) { 2 sleep(1000); 3 System.out.println("order:" + orderId + " is submitted");…

保险行业客户服务优化:客户运营知识库的实战应用

在保险行业,客户服务优化是提升客户满意度、增强企业竞争力的关键。客户运营知识库作为客户服务的重要支撑,其实战应用对于提升客户服务质量具有重要意义。本文将探讨保险行业客户服务优化的重要性、客户运营知识库的实战应用以及如何利用“HelpLook”工具实现客户服务优化。…

2024-11-18纯碱行情的解浪

图中蓝色线为调整浪ABC线 黄色线为5浪线 纯碱现在走的是ABC-C---->C-5---------5-4 总体来说是大级别的C浪,C浪的5浪,5浪的4浪回调,由于5浪的子2浪是都直的简单调整,5浪的一浪是启动三角形,趋势非常丝滑。这个5浪的子4浪会是大概率 的ABC调整,现在在走B浪还未完成,还…

2024-11-18 PVC分析

5182将是相当长时间的历史大底,这波不会破新低,以后N年也大概率不会破了。多头网格的好品种

ESP32蓝牙学习--蓝牙概念学习

前言 ESP32 是一款同时包含WIFI 蓝牙两者通信方式的芯片,之前学习过WIFI,这次学习一下其蓝牙功能,虽然之前有使用过其他的蓝牙芯片,但大多数都是使用应用层,很少去了解底层协议相关的知识,这一次从概念入手,细致了解一下蓝牙的相关概念,及ESP32相关的工程说明。 蓝牙的…

网络配置及进程-系统性能和计划任务

目录虚拟机联网 shell脚本实例 索引数组和关联数组,字符串处理,高级变量 进程管理 计划任务虚拟机联网 查看IP地址 #centos系列![root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.93.200 netmask 255.255.255.…

2024-11-18 大盘分析

牛市已经开始 首先上证季线级别4浪已经完美完成 本次上涨预计最高点位突破11000点再看商品市场 季线级别的3浪已经走完了前4浪,3-5已经启动,3浪的5浪 5of3 与3of3同样的强.3浪的上涨空间是100多一些,5浪可能 会更长。

【Project 2024软件下载与安装教程-亲测好用】

‌Project 2024的操作系统要求是Windows 10及以上版本‌。这意味着用户需要在Windows 10或更高版本的操作系统上安装和使用Project 2024‌1。 Project 2024是由Microsoft开发的一款高效实用的项目管理工具,旨在帮助项目经理发展计划、为任务分配资源、跟踪进度、管理预算和分析…

20222420 2024-2025-1 《网络与系统攻防技术》实验六实验报告

20222420 2024-2025-1 《网络与系统攻防技术》实验六实验报告 1.实验内容 (1)前期渗透①主机发现(可用Aux中的arp_sweep,search一下就可以use) ②端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等 ③选做:也可以扫系统版本、漏洞等。(2)Vsftpd源码包后门漏洞(…

Wincc 7.5SP2下VBA编程批量设置变量线性标定

继续学习wincc下面VBA编程,这个练习实现变量线性标定。 在前面练习基础上做,有REAL1至REAL10共10个变量,通过VBA脚本对Real1至Real5设置线性标定。 写下面的VBA脚本: Sub SetTagScaleParameter()Dim hmigo As hmigoDim strTagName As StringDim i As IntegerSet hmigo = N…