我记得我总是对高斯过程(GPs)有一个模糊的印象,它是一种神奇的算法,能够在函数集上定义概率分布,但我总是拖延阅读细节。这并不完全是我的错!每当我在谈论“高斯过程”时,我都会发现一些写得很好的教程,其中有生动的情节,详细解释了非线性回归之前的所有内容,但在第一眼看到任何类型的信息理论时都会回避。关键是,
虽然记住这句话确实有帮助,如果某个陌生人在街上遇到你,问你高斯过程的定义——我相信这一直都在发生——它不会让你更进一步。算法在什么范围内搜索“可能的函数”?是什么赋予了它在连续无限空间中建模的能力? 动机:非线性回归当然,就像机器学习中的几乎所有事情一样,我们必须从回归开始。让我们重新审视这个问题:有人带着一些数据点(下图中的红色点)来找你,我们想用特定的对的价值进行一些预测。 在非线性回归中,我们用一些非线性曲线来拟合观测值。你选择的多项式阶越高,它就越适合观测结果。 然而,这种传统的非线性回归通常会为您提供一个它认为最适合这些观察结果的函数。但是其他也不错的呢?如果我们再观察一个点,其中一个最终比“最佳”解决方案更合适怎么办? 为了解决这个问题,我们求助于古老的高斯函数。 高斯世界多元高斯分布也被称为联合正态分布,是单变量高斯分布在高维空间的推广。正式的定义是:
从数学上讲,具有多元高斯分布,如果正态分布于任何常数向量 。 注意:如果所有 k 个分量都是独立的高斯随机变量,那么 X必须是多元高斯的(因为独立的高斯随机变量之和总是高斯的)。另外:随机变量的总和不同于分布的总和——两个高斯分布的总和给你一个高斯混合,除非在特殊情况下它不是高斯的。必须是多元高斯分布的(因为独立高斯随机变量的总和始终是高斯分布的)。另外:随机变量的总和不同于分布的总和——两个高斯分布的总和给你一个高斯混合,除非在特殊情况下它不是高斯的。 二维高斯示例协方差矩阵下面是一个均值为0的二维高斯分布的例子,椭圆轮廓表示概率恒定的点。 协方差矩阵表示为,它告诉我们 (1)每个随机变量的方差(在对角线上)和 (2) 随机变量之间的协方差(在对角线上)。上图中的协方差矩阵表明和正相关(具有 0.7协方差),因此轮廓的形状有些“有弹性”。如果我们在保持方差不变的情况下继续降低协方差,则可以观察到以下转变: 注意,当与独立时(上面最右边的图),等高线是球形的。 条件分布 使用多元高斯,我们可以做的另一件有趣的事情是条件分布。在 2D 中,我们可以用图形方式证明这一点: 我们固定的值来计算沿红线的密度——因此条件是。注意,在这里,由,通过条件分布我们得到高斯回归。 我们还可以看到这个条件高斯函数是如何随着相关性下降而变化的——当相关性为 高维高斯二维高斯高斯的椭圆等高线图虽然提供了关于我们的多元高斯分布的均值和协方差的信息,但并没有真正给我们太多关于随机变量在采样过程中如何相互关联的直觉。 因此,考虑这个新的解释,可以这样绘制: 取二维高斯的椭圆轮廓图(下图左上),在图上随机选择一个点。然后,分别在index = 在此设置下,我们现在可以以一种新的方式可视化抽样操作,即取多个“随机点”,并多次在索引 对于调节,我们可以简单地固定索引图上的一个端点(在下面的图中,将固定为1),并从取样。 高维高斯5D高斯现在我们可以考虑一个高维高斯,从5D开始-所以协方差矩阵现在是5x5。 花点时间好好看看协方差矩阵,并注意:
我们也可以以为条件对所有其他点进行采样。注意,相对于 - 移动得更少,因为它与更相关。 20D高斯为了让事情更直观,对于20D高斯,我们将数值协方差矩阵替换为颜色图,用温暖的颜色表示更高的相关性: 我们得到的样本是这样的: 现在看看以和为条件的20D高斯函数会发生什么: 希望你现在可能会想:“啊,这看起来和我们开始时的非线性回归问题一模一样!” 是的,确实,这就像一个非线性回归问题,其中和作为观察值给出。将此索引图与 20D 高斯一起使用,我们现在可以生成一组符合这些观察结果的曲线。更好的是,如果我们生成许多这样的曲线,我们可以使用这些随机生成的曲线来计算拟合的均值和方差。我们在下图中将其可视化。 从上图中我们可以看到,由于协方差矩阵的结构(即越近的点相关性越高),离观测值越近的点不确定度非常低,且均值非零,而离观测值越远的点不确定度很高,均值为零。(注:在现实中,我们实际上并没有采取样本来估计平均值和标准差:它们完全是分析性的。) 这里我们还提供了一个稍微令人兴奋的例子,我们以20D高斯分布的4个点为条件(你还在想为什么每个人都讨厌统计学家吗?) 变得“真实”这种非线性回归方法的问题似乎很明显——感觉 x 轴上的所有点都必须是整数,因为它们是指数,而实际上,我们想用实数值对观察结果建模。一个显而易见的解决方案是,我们可以不断增加高斯的维数并计算许多接近观察点的点,但这有点笨拙。 解决方法在于协方差矩阵是如何生成的。通常, 上述所有例子中的协方差矩阵都是使用径向基函数(RBF)核计算的——所有这些都是通过对, 取整数值来计算的。这个RBF核通过为相互接近, 输入生成较大的输出值,为距离较远的输入生成较小的输出值,从而确保协方差矩阵的“平滑性”。注意,如果 这意味着原则上,我们可以计算任何实值和的协方差矩阵,只需将它们代入即可。实值xs有效地导致协方差矩阵定义的无限维高斯。 这是一个高斯过程(丢麦) 高斯过程教科书定义由上述推导,可以将高斯过程看作是多元高斯分布对无限多变量的推广。这里我们还提供了GP的教科书定义:
就像高斯分布由其均值和方差指定一样,高斯过程完全由 (1) 均值函数 告诉您输入空间任意点的均值和 (2) 协方差函数定义K(x, x') 设置点之间的协方差。均值可以是任何值,协方差矩阵应该是正定的。 参数与非参数注意,我们的高斯过程是非参数的,而非线性回归模型是参数的。这里有一个秘密: 非参数模型 = 具有无限数量参数的模型在参数化模型中,我们用一些参数显式地定义函数: 其中是高斯噪声,描述了对实际观测的拟合噪声有多大(图形化地表示数据直接位于拟合曲线上的频率)。我们可以将高斯过程置于非线性函数之上——这意味着,我们假设上述参数函数来自定义如下的高斯过程: 这个GP现在将生成许多平滑/摆动函数,如果你认为你的参数函数属于GP生成的函数族,这是一种执行非线性回归的明智方法。 我们也可以直接在模型中添加高斯噪声,因为高斯变量的和也是高斯的: 总而言之,GP回归与参数化模型回归完全相同,除了你在你想要为这个数据集考虑的函数集上加上一个先验。你所考虑的这个“函数集”的特征是由选择的核(K(x, x') )定义的。注意,通常先验的均值为0。 超参数这里有2个超参数:
幸运的是,由于是高斯分布,我们可以用近似形式计算它的可能性。这意味着我们可以使用梯度优化器在这些超参数下最大化的可能性: 实施细则计算希望在这一点上你想知道:这个具有无限维协方差矩阵的平滑函数听起来不错,但我们实际上如何用无限乘无限矩阵进行计算? 边缘化!假设你有一个多元高斯分布,覆盖两个向量变量和,其中: 在这里,我们将均值划分为的均值 和的均值b;类似地,对于协方差矩阵,我们有A作为的协方差,B是和的协方差,是和的协方差,C是的协方差。所以现在,我们可以很容易地计算出的概率使用边缘化性质: 这种形式是非常强大的-它允许我们计算在的联合分布下的可能性,而完全忽略!现在,我们可以将和的定义更改为:
预测以上面的, 为例,但这一次,假设所有的观测值都在分区中,而我们想要预测的所有点都在中(同样,无限个点仍然在背景中,让我们假设我们已经把它们塞到这里省略的y 为了在给定的观测值的情况下对进行预测,我们可以使用贝叶斯规则计算P 因为P
为了更直观地了解该方法,我们可以写出预测均值和预测协方差: 因此,P 高维数据对于高维数据也可以这样做(当然,这需要更大的计算成本)。这里我们扩展协方差函数,将RBF核合并到2D数据中: 协方差矩阵选择作为最后一个细节,让我们讨论一下用于GP的不同协方差矩阵。对于如何为GP选择内核,我没有任何权威的建议,我相信在实践中,大多数人会尝试一些流行的内核,并选择最适合他们的数据/问题的内核。因此,在这里我们只介绍一些最常见的内核的形式,用一些情节来感受它们,而不是太详细。(我强烈建议实现其中的一些,并尝试一下!这是一个很好的编码实践,也是了解这些内核的最佳方式。) 拉普拉斯函数这个函数是连续的但不可微的。它是这样的: 如果对所有样本求平均值,就会得到连接数据点的直线,这些直线被称为布朗桥。 理性的二次所有样本的平均值是这样的: 周期函数所有样本的平均值是这样的: 总结对于你的特定问题,你可以在一些书籍中找到协方差函数的适当内核,以及可以遵循的规则来生成更复杂的协方差函数(例如,两个协方差函数的乘积是一个有效的协方差函数)。它们会给你非常不同的结果: 找到合适的协方差函数是很棘手的,但也有适当的方法来选择模型。其中一种方法是贝叶斯模型比较,定义如下: 然而,它确实涉及到GP超参数上的一个非常困难的积分(或离散情况下的和,如上所示),这使得它不切实际,而且对超参数上的先验也非常敏感。在实践中,更常见的是使用深度高斯过程进行自动内核设计,它通过训练优化适合您的数据的协方差函数的选择。 结束希望这对高斯过程有帮助。为了使这里的内容相对简短,我没有深入研究在实践中使用gp的复杂性。在现实中,GPs在大型数据集中会遇到缩放问题,并且对内核的选择非常敏感。一些最近的方法可以解决这些问题(参见深度GP和稀疏GP),但由于我不是这方面的专家,所以我将把探索留给您。 |
|
来自: taotao_2016 > 《AI》