一、几个概念区分:
高斯的几个概念:
-
高斯分布(Gaussian Distribution):
- 高斯分布是统计学中最常见的概率分布之一,也称为正态分布。它具有钟形曲线的形状,由两个参数决定:均值(mean)和方差(variance)。
- 高斯分布在自然界和工程应用中经常出现,其形状由均值和方差决定,具有很多重要的性质,如对称性、中心极限定理等。
-
高斯过程(Gaussian Process):
- 高斯过程是一种用于建模随机函数的强大工具,它可以被视为无限维的高斯分布。高斯过程完全由均值函数和协方差函数定义,任意有限维的高斯过程都服从多变量高斯分布。
- 高斯过程通常用于回归、分类等机器学习任务,能够对未知的函数进行预测,并提供了不确定性估计。
-
高斯分布回归(Gaussian Distribution Regression):
- 高斯分布回归是一种回归方法,其中假设目标变量服从高斯分布。通过拟合一个高斯分布模型来预测目标变量的值,通常使用最大似然估计或贝叶斯推断来估计模型参数。
- 高斯分布回归常用于连续型数据的回归问题,在预测时会给出目标值的均值及方差估计。
-
高斯过程回归(Gaussian Process Regression):
- 高斯过程回归是利用高斯过程进行回归分析的一种方法。它通过高斯过程来建模目标变量和输入变量之间的关系,给出了输入输出之间的非线性关系模型。
- 高斯过程回归适用于噪声较小的数据集,并且提供了对预测结果的不确定性估计,具有灵活性、可解释性和良好的泛化能力。
- 把函数看成是一个随机变量。它不是简单地对目标变量进行高斯分布假设,而是对整个函数空间进行建模。
先验与后验:
-
先验概率(Prior Probability):
- 先验概率指的是在观测到新数据之前,根据以往的经验、领域知识或假设对某个事件发生的概率所做出的估计。
- 通俗例子:假设我们要估计一枚硬币正面朝上的概率,如果没有任何信息,我们可能会选择一个先验概率为0.5,即认为硬币正反面朝上的概率是相等的。
-
先验分布(Prior Distribution):
- 先验分布是对未知参数在观测数据之前的概率分布的假设。它描述了我们对参数可能取值的初始信念。
- 通俗例子:在贝叶斯线性回归中,我们可能会假定参数的先验分布是高斯分布,即认为参数的真实值可能在均值附近且方差较小。
-
后验概率(Posterior Probability):
- 后验概率指的是在观测到新数据之后,根据先验概率和观测数据来更新对事件发生的概率的估计。
- 通俗例子:继续以上硬币的例子,当我们投掷硬币多次后,观测到正面朝上的次数,根据贝叶斯定理更新后,得到新的后验概率。
-
后验分布(Posterior Distribution):
- 后验分布是参数在观测数据之后的条件概率分布,是先验分布与似然函数的乘积标准化而得。
- 通俗例子:在高斯分布拟合中,如果我们有一组观测数据,并且假设参数的先验分布是均值为0,方差为1的高斯分布,通过观测数据更新后可以得到参数的后验分布。
GPR模型训练超参数的一些输入值输出值:
-
输入值
- 训练数据:主要的输入是训练数据集,包含输入特征X(例如一系列样本的属性值,像房屋面积、房龄等)和对应的目标值Y(如房屋价格)。
- 超参数初始值:还需要输入超参数的初始值。超参数包括像核函数(例如径向基函数RBF核)的参数,如长度尺度(它决定了函数的平滑程度,长度尺度小意味着函数变化快,长度尺度大意味着函数变化平缓)和幅值(控制函数的整体幅度),以及噪声参数(用于考虑观测数据中的噪声)、学习率(用于优化算法调整模型参数)等。这些超参数初始值用于初始化模型,在训练过程中会不断被调整。
-
训练中得到的值
- 调整后的超参数
- 拟合后的模型参数(如果有):除了超参数,一些模型可能还有其他参数。在训练过程中,这些参数也会被更新,使得模型能够更好地拟合训练数据。例如,模型可能会学习到一个合适的均值函数参数(如果均值函数不是简单的固定常数),以更好地匹配数据的分布。
- 预测分布相关参数(均值和协方差):训练过程也是在学习如何根据输入特征预测目标值的分布。通过学习训练数据,模型可以得到对于新输入点的预测分布的均值和协方差的估计。这些估计会随着训练过程不断优化,使得预测分布更符合数据的实际情况。
-
损失函数
- 负对数似然损失(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)
-
变分推断方法:当使用高斯过程进行建模时,由于其计算复杂性,尤其是在大数据集的情况下,我们可以利用变分推断来简化计算。具体做法是将高斯过程的后验分布用一个变分分布来近似。例如,我们可以假设一个简单的变分高斯分布来近似高斯过程的后验分布
-
中心极限定理:在适当的条件下,大量相互独立的随机变量的均值经适当标准化后依分布收敛于正态分布
- 相互独立:比如在预测产品的销售量时,受到消费者的收入水平、市场竞争程度、广告投入、季节因素等多个因素的影响。如果这些因素在一定程度上是相互独立的,那么预测值就可能趋近于正态分布。又比如在时间序列中,相邻数据点存在很强相关性时(这种情况下,这些数据点即影响因素不是独立的),中心极限定理不能直接应用于原始数据。
-
正态分布横纵坐标的含义: