分享

【机器学习】高斯过程

 taotao_2016 2023-04-05 发布于辽宁

    我记得我总是对高斯过程(GPs)有一个模糊的印象,它是一种神奇的算法,能够在函数集上定义概率分布,但我总是拖延阅读细节。这并不完全是我的错!每当我在谈论“高斯过程”时,我都会发现一些写得很好的教程,其中有生动的情节,详细解释了非线性回归之前的所有内容,但在第一眼看到任何类型的信息理论时都会回避。关键是,

高斯过程是拟合一组点的可能函数的概率分布。

    虽然记住这句话确实有帮助,如果某个陌生人在街上遇到你,问你高斯过程的定义——我相信这一直都在发生——它不会让你更进一步。算法在什么范围内搜索“可能的函数”?是什么赋予了它在连续无限空间中建模的能力?

动机:非线性回归

    当然,就像机器学习中的几乎所有事情一样,我们必须从回归开始。让我们重新审视这个问题:有人带着一些数据点(下图中的红色点)来找你,我们想用特定的ImageImage的价值进行一些预测。

Image

在非线性回归中,我们用一些非线性曲线来拟合观测值。你选择的多项式阶越高,它就越适合观测结果。

Image

然而,这种传统的非线性回归通常会为您提供一个它认为最适合这些观察结果的函数。但是其他也不错的呢?如果我们再观察一个点,其中一个最终比“最佳”解决方案更合适怎么办?

Image

为了解决这个问题,我们求助于古老的高斯函数。

高斯世界

    多元高斯分布也被称为联合正态分布,是单变量高斯分布在高维空间的推广。正式的定义是:

如果随机变量的 k 个分量的每个线性组合都服从单变量正态分布,则称该随机变量服从 k 变量正态分布。

    从数学上讲,Image具有多元高斯分布,如果Image正态分布于任何常数向量Image

注意如果所有 k 个分量都是独立的高斯随机变量,那么 X必须是多元高斯的(因为独立的高斯随机变量之和总是高斯的)。另外:随机变量的总和不同于分布的总和——两个高斯分布的总和给你一个高斯混合,除非在特殊情况下它不是高斯的。必须是多元高斯分布的(因为独立高斯随机变量的总和始终是高斯分布的)。另外:随机变量的总和不同于分布的总和——两个高斯分布的总和给你一个高斯混合,除非在特殊情况下它不是高斯的。

Image


二维高斯示例

协方差矩阵

下面是一个均值为0的二维高斯分布的例子,椭圆轮廓表示概率恒定的点。

Image

协方差矩阵表示为Image,它告诉我们 (1)每个随机变量的方差(在对角线上)和 (2) 随机变量之间的协方差(在对角线上)。上图中的协方差矩阵表明ImageImage正相关(具有 0.7协方差),因此轮廓的形状有些“有弹性”。如果我们在保持方差不变的情况下继续降低协方差,则可以观察到以下转变:

Image

Image

Image

注意,当ImageImage独立时(上面最右边的图),等高线是球形的。

条件分布

使用多元高斯,我们可以做的另一件有趣的事情是条件分布。在 2D 中,我们可以用图形方式证明这一点:

Image

我们固定Image的值来计算Image沿红线的密度——因此条件是Image。注意,在这里,由Image,通过条件分布我们得到高斯回归。

Image

我们还可以看到这个条件高斯函数是如何随着相关性下降而变化的——当相关性为0时,Image没有告诉你关于Image的任何信息,因此对于Image,平均值下降到0,方差变得很高。

Image

高维高斯

二维高斯

    高斯的椭圆等高线图虽然提供了关于我们的多元高斯分布的均值和协方差的信息,但并没有真正给我们太多关于随机变量在采样过程中如何相互关联的直觉。

因此,考虑这个新的解释,可以这样绘制:

取二维高斯的椭圆轮廓图(下图左上),在图上随机选择一个点。然后,分别在index = 12时,在新图上绘制该点的ImageImage的值。

Image

在此设置下,我们现在可以以一种新的方式可视化抽样操作,即取多个“随机点”,并多次在索引12处绘制ImageImage。因为ImageImage是相关的(0.9相关性),当我们取多个样本时,指数图上的柱状图只会随着两个端点一起上下移动而轻微地“摆动”。

Image

对于调节,我们可以简单地固定索引图上的一个端点(在下面的图中,将Image固定为1),并从Image取样。

Image

高维高斯

5D高斯

现在我们可以考虑一个高维高斯,从5D开始-所以协方差矩阵现在是5x5。

花点时间好好看看协方差矩阵,并注意:

  1. 所有方差(对角线)都等于1;

  2. 两个点的指数距离越远,它们之间的相关性就越小。例如,ImageImage的相关性较高,ImageImage的相关性较低,ImageImage的相关性最低)。

Image

我们也可以以Image为条件对所有其他点进行采样。注意,Image相对于Image - Image移动得更少,因为它与Image更相关。

Image

20D高斯

为了让事情更直观,对于20D高斯,我们将数值协方差矩阵替换为颜色图,用温暖的颜色表示更高的相关性:

Image

我们得到的样本是这样的:

Image

现在看看以ImageImage为条件的20D高斯函数会发生什么:

Image

希望你现在可能会想:“啊,这看起来和我们开始时的非线性回归问题一模一样!” 是的,确实,这就像一个非线性回归问题,其中ImageImage作为观察值给出。将此索引图与 20D 高斯一起使用,我们现在可以生成一组符合这些观察结果的曲线。更好的是,如果我们生成许多这样的曲线,我们可以使用这些随机生成的曲线来计算拟合的均值和方差。我们在下图中将其可视化。

Image

从上图中我们可以看到,由于协方差矩阵的结构(即越近的点相关性越高),离观测值越近的点不确定度非常低,且均值非零,而离观测值越远的点不确定度很高,均值为零。(注:在现实中,我们实际上并没有采取样本来估计平均值和标准差:它们完全是分析性的。)

这里我们还提供了一个稍微令人兴奋的例子,我们以20D高斯分布的4个点为条件(你还在想为什么每个人都讨厌统计学家吗?)

Image

变得“真实”

这种非线性回归方法的问题似乎很明显——感觉 x 轴上的所有点都必须是整数,因为它们是指数,而实际上,我们想用实数值对观察结果建模。一个显而易见的解决方案是,我们可以不断增加高斯的维数并计算许多接近观察点的点,但这有点笨拙。

解决方法在于协方差矩阵是如何生成的。通常,Σ使用以下两步过程计算:

Image

上述所有例子中的协方差矩阵都是使用径向基函数(RBF)核Image计算的——所有这些都是通过对Image, Image取整数值来计算的。这个RBF核通过为相互接近Image, Image输入生成较大的输出值,为距离较远的输入生成较小的输出值,从而确保协方差矩阵的“平滑性”。注意,如果Image=Image, K(Image,Image)=Image。然后,我们取K,并为最终的协方差矩阵添加Image,以将噪声考虑在内——后面会详细介绍。

这意味着原则上,我们可以计算任何实值ImageImage的协方差矩阵,只需将它们代入即可。实值xs有效地导致协方差矩阵定义的无限维高斯。

Image

这是一个高斯过程(丢麦)

高斯过程

教科书定义

由上述推导,可以将高斯过程看作是多元高斯分布对无限多变量的推广。这里我们还提供了GP的教科书定义:

高斯过程是随机变量的集合,其中任何有限数量的随机变量都具有一致的高斯分布。

就像高斯分布由其均值和方差指定一样,高斯过程完全由 (1) 均值函数Image

告诉您输入空间任意点的均值和 (2) 协方差函数定义K(x, x') 设置点之间的协方差。均值可以是任何值,协方差矩阵应该是正定的。

Image

参数与非参数

注意,我们的高斯过程是非参数的,而非线性回归模型是参数的。这里有一个秘密:

                               

非参数模型 = 具有无限数量参数的模型

Image

在参数化模型中,我们用一些参数显式地定义函数:

Image

其中Image是高斯噪声,描述了对实际观测的拟合噪声有多大(图形化地表示数据直接位于拟合曲线上的频率)。我们可以将高斯过程置于非线性函数之上——这意味着,我们假设上述参数函数来自定义如下的高斯过程:

Image

这个GP现在将生成许多平滑/摆动函数,如果你认为你的参数函数属于GP生成的函数族,这是一种执行非线性回归的明智方法。

我们也可以直接在模型中添加高斯噪声Image,因为高斯变量的和也是高斯的:

Image

总而言之,GP回归与参数化模型回归完全相同,除了你在你想要为这个数据集考虑的函数集上加上一个先验。你所考虑的这个“函数集”的特征是由选择的核(K(x, x') )定义的。注意,通常先验的均值为0。


超参数

这里有2个超参数:

Image

  • 垂直刻度Image:描述函数在垂直方向上的跨度;

  • 水平扩展Image:描述了两点之间的相关性随着它们之间距离的增加而下降的速度——高Image会给你一个光滑的函数,而较低的Image结果为a左右摇摆的函数。

Image

幸运的是,由于Image是高斯分布,我们可以用近似形式计算它的可能性。这意味着我们可以使用梯度优化器在这些超参数下最大化Image的可能性:

Image

实施细则

计算

希望在这一点上你想知道:这个具有无限维协方差矩阵的平滑函数听起来不错,但我们实际上如何用无限乘无限矩阵进行计算?

边缘化!假设你有一个多元高斯分布,覆盖两个向量变量ImageImage,其中:

Image

在这里,我们将均值划分为Image的均值 ImageImage的均值b;类似地,对于协方差矩阵,我们有A作为Image的协方差,B是ImageImage的协方差,ImageImageImage的协方差,C是Image的协方差。所以现在,我们可以很容易地计算出Image的概率使用边缘化性质:

Image

这种形式是非常强大的-它允许我们计算ImageImage的联合分布下的可能性,而完全忽略Image!现在,我们可以将ImageImage的定义更改为:

  • Image:包含我们感兴趣的有限个变量;

  • Image:包含所有我们不关心的变量,有无穷多个;然后类似于2变量的情况,我们可以计算Image分区的平均值和协方差,而不必担心Image的无限东西。这个性质让我们可以考虑无限对象在电脑上的有限维投影。我们可以忘记在引擎盖下发生的无限事物。


预测

以上面的Image, Image为例,但这一次,假设所有的观测值都在Image分区中,而我们想要预测的所有点都在Image中(同样,无限个点仍然在背景中,让我们假设我们已经把它们塞到这里省略的y3中)。

Image

为了在给定Image的观测值的情况下对Image进行预测,我们可以使用贝叶斯规则计算P(y1∣y2):

Image

因为P(y1), P(y2)和P(y1,y2)都是高斯函数,P(y1∣y2)也是高斯函数。因此,我们可以解析地计算P(y1∣y2):

Image

注意:在这里我们瞥见了GP的瓶颈:我们可以看到这个解析解涉及到计算我们观测值Image的协方差矩阵的逆,给定n观测值,这是一个Image操作。这就是为什么我们要使用Cholesky分解——稍后会详细介绍。

为了更直观地了解该方法,我们可以写出预测均值和预测协方差:

Image

因此,P(y1∣y2)的平均值与y2线性相关,预测协方差是先验不确定性减去观测后不确定性的减少。因此,我们看到的数据越多,我们就越确定。


高维数据

对于高维数据也可以这样做(当然,这需要更大的计算成本)。这里我们扩展协方差函数,将RBF核合并到2D数据中:

Image

协方差矩阵选择

作为最后一个细节,让我们讨论一下用于GP的不同协方差矩阵。对于如何为GP选择内核,我没有任何权威的建议,我相信在实践中,大多数人会尝试一些流行的内核,并选择最适合他们的数据/问题的内核。因此,在这里我们只介绍一些最常见的内核的形式,用一些情节来感受它们,而不是太详细。(我强烈建议实现其中的一些,并尝试一下!这是一个很好的编码实践,也是了解这些内核的最佳方式。)


拉普拉斯函数

这个函数是连续的但不可微的。它是这样的:

Image

如果对所有样本求平均值,就会得到连接数据点的直线,这些直线被称为布朗桥。

ImageImage

理性的二次

Image

所有样本的平均值是这样的:

ImageImage

周期函数

Image

所有样本的平均值是这样的:

Image

Image

总结

对于你的特定问题,你可以在一些书籍中找到协方差函数的适当内核,以及可以遵循的规则来生成更复杂的协方差函数(例如,两个协方差函数的乘积是一个有效的协方差函数)。它们会给你非常不同的结果:

Image

找到合适的协方差函数是很棘手的,但也有适当的方法来选择模型。其中一种方法是贝叶斯模型比较,定义如下:

Image

然而,它确实涉及到GP超参数上的一个非常困难的积分(或离散情况下的和,如上所示),这使得它不切实际,而且对超参数上的先验也非常敏感。在实践中,更常见的是使用深度高斯过程进行自动内核设计,它通过训练优化适合您的数据的协方差函数的选择。

结束

希望这对高斯过程有帮助。为了使这里的内容相对简短,我没有深入研究在实践中使用gp的复杂性。在现实中,GPs在大型数据集中会遇到缩放问题,并且对内核的选择非常敏感。一些最近的方法可以解决这些问题(参见深度GP和稀疏GP),但由于我不是这方面的专家,所以我将把探索留给您。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多