参与:Yi Bai、张倩、王淑婷作者:Jochen Görtler、Rebecca Kehlbeck、Oliver Deussen

看得见的高斯过程:这是一份直观的入门解读

高斯过程可以让我们结合先验知识,对数据做出预测,最直观的应用领域是回归问题。本文作者用几个互动图生动地讲解了高斯过程的相关知识,可以让读者直观地了解高斯过程的工作原理以及如何使其适配不同类型的数据。

引言

即使读过一些机器学习相关的书,你也未必听说过高斯过程。当然了,若是听说过也无妨,复习一下基础知识也能帮你唤醒记忆。本文旨在向读者介绍高斯过程,并且把它背后的数学原理讲得更加直观易懂。

高斯过程机器学习工具箱里一种相当有用的工具 [1]。它让我们得以结合先验知识,对数据做出预测。它最直观的应用领域是回归问题,比如在机器人学里会用到。同时,也可以把它拓展到分类和聚类任务里。我们先小小复习一下:回归的目的是为了找到一个函数来尽可能贴近地描述一组给定的数据点。这个过程叫做用函数拟合数据。对于一组既定的训练数据点,或许潜在有无限多个函数可以用来做拟合。高斯过程则为此提供了一个优雅的解决方案——给每个这类函数分配一个概率值 [1]。这个概率分布的均值便代表了这个数据最有可能的表征。而且,概率的方法使我们可以把对预测的置信度结合到回归的结果里去。

首先,我们将探索高斯回归的数学基础。你可以通过文中的互动图,以及上手感受具体的例子来理解这些知识。它们有助于解释每个组件的影响,并展示高斯过程的灵活性。希望你在阅读本文之后,对高斯过程的工作原理以及如何把它适配给不同类型的数据能有一个直观的理解。

多元高斯分布

在探索高斯分布之前,我们需要理解它们的数学基础。从名字我们可以得知,高斯分布(也叫做正态分布)是高斯过程的基础构件。而我们最感兴趣的是多元高斯分布,其每个随机变量都呈正态分布,联合分布也是高斯的。一般来说,多元高斯分布由均值向量 μ 和协方差矩阵 Σ 定义。

均值向量μ 描述了该分布的期望值,它的每个组件描述了对应维度的均值。Σ 对每个维度的方差进行建模,并确定不同随机变量之间的关联。协方差矩阵总是对称且半正定的(positive semi-definite)[4]。Σ 的对角线由第 i 个随机变量的标准差σ_i 组成,而非对角线的元素则描述了每个元素σ_ij 之间的相关性。

我们称 X 符合正态分布。协方差矩阵Σ 描述了该分布的形状,它由期望值 E 所定义:

从图形上来看,该分布以均值为中心,由协方差矩阵决定其形状。下图展示了这些参数对于一个二维高斯分布的影响。每个随机变量的标准差在协方差矩阵的对角线上,而其它的值则显示了它们之间的协方差。

这是一个互动式的图,通过拖动图中的三个点,你可以调节每个维度上的方差,以及两个随机变量之间的关联。紫色的部分指的是分布内高概率的区域。

高斯分布被广泛应用于为真实世界建模,有时在原分布未知的情况下作为替代品,有时用于中心极限定理。接下来我们会进一步讲解如何操纵高斯分布,以及如何从中获得有用的信息。

边缘化和条件作用

高斯分布有一个很赞的代数性质:它在条件作用和边缘化情况下是封闭的。意思是,经过这些运算后,在结果中得到的分布依旧是高斯分布,这就使得很多统计学和机器学习中的问题变得易解。接下来,我们将进一步看看这两个运算,它们是高斯过程的基础。

边缘化和条件作用都作用于原始分布的子集,我们将使用以下符号:

其中 X 和 Y 代表原始随机变量的子集。

通过边缘化,我们可以获取多元概率分布的一部分信息。给定随机变量 X 和 Y 组成的向量的正态概率分布 P(X,Y),我们可以用以下方法确定他们的边缘概率分布: 

这个公式所表达的意思很直接了当:X 和 Y 这两个子集各自只依赖于它们 μ 和 Σ 中对应的值。因此,要从高斯分布中边缘化一个随机变量,我们只需把μ 和Σ 里那些对应的变量丢掉就行。

这个公式的意思是,如果我们只对 X=x 的概率感兴趣,我们要考虑 Y 所有可能的值,它们齐心协力才能得到最终的结果。

高斯过程的另一个重要运算是条件作用,它可以用于得到一个变量在另一个变量条件下的概率分布。和边缘化类似,这个运算也是封闭的,会得到一个不同的高斯分布。条件运算是高斯过程的基石,它使贝叶斯推断成为可能。条件作用如下定义:

要注意的是,新的均值只依赖于作为条件的变量,而协方差矩阵则和这个变量无关。

了解了必要的公式以后,我们要思考的是:如何从视觉层面理解这两个运算。虽然边缘化和条件作用可以用于多维的多元分布,还是用下图中的二维分布作为例子更加好理解。边缘化可以理解为在高斯分布的一个维度上做累加,这也符合边缘分布的一般定义。条件作用也有个很好的几何表达——我们可以把它想象成在多元分布上切下一刀,从而获得一个维数更少的高斯分布

中间是一个二元正态分布。图左是该分布关于 Y 做边缘化的结果,类似于沿着 Y 轴做累加。图右是以给定的 X 为条件的分布,类似于在原始分布上切下一刀。你可以通过拖动图中的点来修改这个高斯分布和作为条件的变量。

高斯过程

复习好了多元高斯分布的基础属性,我们接着就可以把它们组装到一起,来定义高斯过程,并展示怎么用高斯过程来解决回归问题。

首先,我们把视角从连续函数转移到函数的离散表达:相比于找一个隐函数而言,我们对预测具体点的函数值更感兴趣,这些点叫做测试点 X。对应地,我们把训练数据称为 Y。那么,高斯过程背后的关键点在于所有的函数值都来源于多元高斯分布。这意味着联合概率分布 P(X,Y) 跨越了我们想要预测的函数的可能取值空间。这个测试数据和训练数据的联合分布有∣X∣+∣Y∣维。

为了在训练数据上进行回归,我们会用贝叶斯推断来处理这个问题。贝叶斯推断的核心思想就是:在获得新的信息以后,更新当前的假设。对于高斯过程来说,这个信息指的就是训练数据。因此,我们感兴趣的是条件概率 P(X|Y)。最后,还记得高斯分布在条件作用下是封闭的吗?所以 P(X|Y) 也是正态分布的。

好了,我们已经集齐了高斯过程的基本框架,只差一个东西:我们怎么才能建立起这个分布,定义均值μ 和协方差矩阵Σ?方法是:使用核函数 k,具体细节将在下一节具体讨论。但在这之前,我们先回忆一下怎么用多元高斯分布来估算函数值。下图中的例子包含十个测试点,我们将在十个点上预测函数。

这也是一个互动式的图

高斯过程中,我们把每个测试点作为一个随机变量,多元高斯分布的维数和随机变量的数目一致。由于我们想要预测函数在∣X∣=N 个测试点上的取值,对应的多元高斯分布也是 N 维的。用高斯过程做预测最终可以归结为在这个分布上做采样。这样,我们就可以把结果向量上的第 i 个成员作为第 i 个测试点的对应函数值。

核函数

让我们回想一下,为了建立起我们要的分布,首先要定义 μ 和 Σ。在高斯过程中,我们往往假设 μ =0,这样可以简化条件作用所需要的公式。这样做假设总是没错的,就算 μ≠0,我们也可以在预测结束后把μ 加回到结果函数值中。所以配置μ 非常简单,更有意思的是这个分布的另一个参数

高斯过程中巧妙的一步是如何设置协方差矩阵Σ。协方差矩阵不仅仅描述了这个分布的形状,也最终决定了我们想要预测的函数所具有的特性。我们通过求核函数 k 的值来生成协方差矩阵,这个核函数通常也被称为协方差函数,作用在两两成对的所有测试点上。核函数接收到的输入是两个点,,返回的是一个标量,表达了这两个点之间的相似度。

我们将测试点两两配对,在这个函数上求值以获取协方差矩阵,这个步骤在下图中也有所显示。为了对核函数的作用有一个更直观的理解,我们可以想一想协方差矩阵中元素描述的是什么。Σ_ij 描述的是第 i 个点和第 j 个点之间的相互影响,这和多元高斯分布的定义一致。在多元高斯分布的定义中,Σ_ij 定义了第 i 个随机变量和第 j 个随机变量之间的相关性。由于核函数描述的是函数值之间的相似度,它便控制了这个拟合函数可能拥有的形状。注意,当我们选择一个核函数时,我们要确保它生成的矩阵遵循协方差矩阵的属性。

核函数被广泛应用于机器学习,比方说支持向量机。它之所以这么受欢迎,是因为它让我们得以在标准的欧几里得距离(L2 距离)之外衡量相似度。很多核函数会把输入点嵌到更高维的空间里去测量相似度。下图介绍了高斯过程的一些常见核函数。对于每个核函数,我们用 N=25 个呈线性、范围在 [-5,5] 的点生成协方差矩阵。矩阵中的元素显示出点和点之间的协方差,取值在 [0,1] 之间。

上图展示了高斯过程可以使用的各种核函数。每个核函数参数不同,你可以拖动滑块改变这些参数的值。当你点击某个滑块时,可以看到图右侧中当前参数是如何影响核函数的。

核函数可分为平稳和非平稳的类型。平稳核函数,例如径向基函数核(RBF)或者周期核,都具有平移不变性,两点之间的协方差只取决于它们之间的相对位置。非平稳核函数,比如线性核,就没有这个限制且取决于绝对位置。径向基函数核的平稳特性可以从其协方差矩阵的对角线带来观察(如下图)。增加长度参数会使得这个带状区域变得更宽,因为距离较远的点彼此之间的相关性增加了。对于周期核,我们还有个参数 P 来决定周期,从而控制了函数每次重复之间的距离。相比之下,线性核的参数 C 让我们得以改变各个函数交汇的点。

还有很多其它的核函数可以描述不同类别的函数,它们使函数拥有我们所希望的形状。Duvenaud 的《Automatic model construction with Gaussian processes》对不同核函数进行了概览,值得一观。我们还可以把几个核函数结合起来用,不过这个以后再讲。

先验分布

回到我们原来的回归任务,正如我们之前提到过的,高斯过程定义了潜在函数的概率分布。由于这是一个多元高斯分布,这些函数也呈正态分布。我们通常假设μ= 0,姑且先考虑还没有观察到任何训练数据的情况。在贝叶斯推断的框架下,我们称之为先验分布 P(X)。

如果还没观察到任何训练样本,该分布会如我们刚开始所假设的,围绕 μ=0 展开。先验分布的维数和测试点的数目 N=∣X∣一致。我们将用核函数来建立协方差矩阵,维数为 N×N。

我们在上一章看过不同核函数的例子,由于核函数被用于定义协方差矩阵的内容,它也就决定了在这个包含所有可能的函数的空间里,哪些类型的函数可能性更大。先验分布还不包含任何额外的信息,这就给了我们一个绝佳的机会来呈现核函数对于函数分布的影响。下图显示了用不同核函数产生的先验分布可以获取到的潜在函数的一些样本。

点击图片可以得到一系列在高斯过程中使用指定核函数时的连续采样。在每次采样过后,之前的样本会在背景里被淡化。一段时间后,大概可以看到这些函数围绕均值 µ呈正态分布。

通过调节参数,你可以控制所获得的函数的形状,这同时也会改变预测的置信度。方差σ 是一个所有核函数都常见的参数,如果减小它,采样到的函数就会更加紧密地围绕在均值μ 周围。对于线性核而言,设置 σb = 0,我们会得到一组精确地交汇在点 c 的函数,而设置σ_b = 0.2,则会引入一些不确定性,采样到的各个函数会大致经过点 c 附近。

后验分布

那么如果我们观察到了训练数据,会发生什么呢?我们来回顾一下贝叶斯推断的模型,它告诉我们可以把这个额外的信息结合到模型里去,从而得到后验分布 P(X|Y)。我们来进一步看看在高斯过程里怎么用上它。

首先,我们得到测试点 X 和训练点 Y 之间的联合分布 P(X,Y),这是一个维数为∣Y∣+∣X∣的多元高斯分布。下图中可以看到,我们把训练点和测试点拼接到一起,计算对应的协方差矩阵

接下来我们要在高斯分布上做一个之前定义过的运算:通过条件作用从 P(X,Y) 得到 P(X|Y)。这个新分布的维数和测试点的数目 N 一致,呈正态分布。要重点注意的是,条件作用以后均值和标准差会相应发生变化:X∣Y∼N(μ′,Σ′),具体的细节可以在讲边缘化和条件作用的章节找到。直观上讲,就是训练点为候选的函数设了一个限定范围:要经过训练点。

增加训练点 (■) 会改变多元高斯分布的维数;通过两两配对核函数的值生成协方差矩阵,结果是一个十二维的分布;在条件作用下,我们会得到一个分布,这个分布可以描述我们对于给定 x 值所预测的函数值。

和先验分布类似,我们可以通过对该分布采样获得一个预测结果。然而,由于采样包含随机性,我们无法保证结果能很好地拟合数据。为了优化预测结果,我们可以用到高斯分布的另一个基础运算。

通过对每个随机变量做边缘化操作,我们可以为第 i 个测试点提取到对应的均值函数的值μ'i,以及标准差σ'i=Σ'ii。和先验分布不同的是,我们做先验分布时会设μ= 0,在那个情况下均值并不太重要。而当我们把条件作用施加在测试数据和训练数据的联合分布上时,得到的分布往往会有个非零的均值,μ′≠ 0。提取μ′ 和 σ′ 不仅会使预测更有意义,还表示出了预测值的置信度。

下图(原图为互动图)展示了一个条件分布的例子。刚开始的时候,没有观察到任何训练点,所以预测的均值保持在 0,标准差对每个测试点来说都是一样的。把光标悬停在协方差矩阵上,你可以看到每个点对当前测试点的影响。只要还没观察到任何训练点,只有相邻的点对彼此有影响。

通过点击可以激活训练点,从而得到一个受到约束的分布。这个变化体现在协方差矩阵的内容里,并且会改变预测到的函数具有的均值和标准差。正如我们所料,在靠近训练数据的区域,预测的不确定性很小,离得越远,不确定性越大。

没激活任何训练数据的时候,图中显示的是一个高斯过程的先验分布,它使用的是径向基函数核。光标悬停在协方差矩阵上时,渐变色上的不透明度显示了一个函数值对它的相邻点的影响。当我们观察到训练数据的时候,这个分布会发生变化。可以通过点击单个点激活它们。然后,高斯过程被约束,倾向于给那些与这些点相交的函数更高的概率。对训练数据的最佳阐释就蕴含在更新过的均值函数里。

在受到约束的协方差矩阵中,我们可以看到相邻点之间的相关性会被训练数据所影响。如果预测的点在训练数据上,它和其他点就不存在相关性,所以,这个函数必须直接经过它。更远的预测值也会受到训练数据的影响,程度和它的距离相关。

结合不同的核函数

正如我们之前介绍的,高斯过程的强大在于它所选的核函数。这一点使得专家可以把某个领域的知识引入到这个过程中,使得高斯过程足够灵活,足以捕捉训练数据中的趋势。比如,一个专家可以通过为径向基函数核选取一个合适的带宽,来控制结果中的函数的平滑度。

核函数的一大优势是,它们可以被结合起来,形成一个更加专精的核函数。这使得某个领域的专家可以加入更多的信息,使预测更加精确。通常我们结合不同核函数的方法是把它们相乘。我们可以考虑一下两个核函数的情况,比如说一个径向基函数核 k_rbf 和一个周期核 k_per。我们是这样把它们结合起来的:

在下图(原图为互动图)中,原始的训练数据呈上升趋势并有周期性偏离。如果只用一个线性核,可能会得到这些点的一个普通线性回归。乍一看,径向基函数核可以准确地逼近这些点。但由于径向基函数核是平稳的,在远离观察到的训练数据的地方,它总是会回到均值μ= 0。这就使得预测特别早或者特别晚的时间点时,结果不太准确。只有通过结合几个核函数,才能同时保持数据的周期特性和均值非零的趋势。比如,这个方法可以用于分析天气数据。

通过点击复选框,我们可以把不同的核函数结合成一个新的高斯过程。只有结合了多个核函数,我们才可能捕捉到更复杂的训练数据的特性。

结论

读过本文以后,你应该对高斯过程有了一个整体的印象,更加了解它们是如何运作的。正如我们所见,高斯过程为回归问题提供了一个灵活的框架,并且拥有一些拓展功能使它更加通用。如果要处理真实世界的数据,我们经常会发现测量值受到不确定性和误差的影响。利用高斯过程可以定义一个核函数来拟合我们的数据,并为预测结果增加不确定性。比如,McHutchon 等人 [7] 对高斯过程进行了一个特殊的拓展,使其可以兼容包含噪音的输入。

虽然我们大都在回归问题的语境下讨论高斯过程,它也可以用在其它的任务上,比如模型剥离和假设检验。通过比较不同核函数在数据集上的效果,某个领域的专家可以借由恰当地结合核函数或是为其选择参数,来嵌入额外的知识。由于在很多情况下我们无法拥有这样的专家,人们也在研究如何使用深度学习 [8, 9] 从给定数据中学得专用的核函数。此外,也有多篇论文 [10, 11] 探讨了贝叶斯推断高斯过程深度学习之间的联系。

原文地址:https://www.jgoertler.com/visual-exploration-gaussian-processes/


入门高斯过程可视化回归
5
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

概率分布技术

概率分布(probability distribution)或简称分布,是概率论的一个概念。广义地,它指称随机变量的概率性质--当我们说概率空间中的两个随机变量具有同样的分布(或同分布)时,我们是无法用概率来区别它们的。

贝叶斯推断技术

贝叶斯推断(英语:Bayesian inference)是推论统计的一种方法。这种方法使用贝叶斯定理,在有更多证据及信息时,更新特定假设的概率。贝叶斯推断是统计学(特别是数理统计学)中很重要的技巧之一。贝叶斯更新(Bayesian updating)在序列分析中格外的重要。贝叶斯推断应用在许多的领域中,包括科学、工程学、哲学、医学、体育运动、法律等。在决策论的哲学中,贝叶斯推断和主观概率有密切关系,常常称为贝叶斯概率。

边缘概率技术

边缘概率又称边缘分布,指在多维随机变量中,只包含部分变量的概率分布,边缘分布中实际上进行了降维操作。

机器人学技术

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

假设检验技术

假设检验是推论统计中用于检验统计假设的一种方法。而“统计假设”是可通过观察一组随机变量的模型进行检验的科学假说。一旦能估计未知参数,就会希望根据结果对未知的真正参数值做出适当的推论。

高斯过程技术

协方差矩阵技术

在统计学与概率论中,协方差矩阵(也称离差矩阵、方差-协方差矩阵)是一个矩阵,其 i, j 位置的元素是第 i 个与第 j 个随机向量(即随机变量构成的向量)之间的协方差。这是从标量随机变量到高维度随机向量的自然推广。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

欧几里得距离技术

在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。 使用这个距离,欧氏空间成为度量空间。

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

中心极限定理技术

中心极限定理是概率论中的一组定理。中心极限定理说明,在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布。这组定理是数理统计学和误差分析的理论基础,指出了大量随机变量之和近似服从正态分布的条件。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~