什么是Gaussian process? —— 说说高斯过程与高斯分布的关系

什么是Gaussian process? —— 说说高斯过程与高斯分布的关系

之前说了那么多关于分布的基础,下面我们要开始进入正题啦!

高斯过程:Gaussian process (GP) !

首先GP是一个概率统计学上的概念,更确切的说应该是随机过程(Stochastic process)中一个特殊例子。先看看wiki上的定义:

概率论统计学中,高斯过程(英语:Gaussian process)是观测值出现在一个连续域(例如时间或空间)的统计模型。在高斯过程中,连续输入空间中每个点都是与一个正态分布随机变量相关联。此外,这些随机变量的每个有限集合都有一个多元正态分布。高斯过程的分布是所有那些(无限多个)随机变量的联合分布,正因如此,它是连续域(例如时间或空间)的分布。
关键词:连续域,正态分布,多元正态分布。

什么是高斯过程?简单的说,就是一系列关于连续域(时间或空间)的随机变量的联合,而且针对每一个时间或是空间点上的随机变量都是服从高斯分布的。

或许这个解释还是不够明确,下面来看个图,直观的来解释一下这个概念:

这个一共有5条不同颜色的线,每一条曲线代表了一个GP的样本(这里的kernel是GP的一个重要概念,之后会详细介绍,现在先知道有这个东西就好)。首先我们来看看其中的那个橘黄色的线,对应x轴上找一个点,比如x=2大概对应的的y轴约为2.6左右。可是这真的是一个确定点么?不,它所代表的是对应x=2时的一个随机变量X_{x=2}"正好"出现的点罢了,本质上对应x=2的是一个随机变量而不是一个确定的点。另外对应于任一时刻的随机变量还需要服从一个确定的高斯分布(并不是说所有时刻对应的随机变量需要服从同一个高斯,只是服从的高斯分布的具体参数只跟时刻有关)。除此之外,若是GP的样本,还需要满足的是,任意个点(对应不同时刻的随机变量)联合需要服从多元高斯分布。因此GP的分布就是对于时间域上所有随机变量的联合分布。

仔细观察上面的图,或许聪明的你还会发现一个问题,既然每一个时刻对应的点都是随机变量,那就是为什么在x=2,x=4处的值会是一样的呢?或者更确切的说,似乎所有的时间差为2的的点对应的值都是一样的呢?另外,再看这个图中样本虽然很多,但是,是不是似乎有一个中心轴,以y=0为中心上下震荡?这一切是巧合还是?

没错,这不是巧合,而是另有深意,前一个规律是由之前我们提到的一个词语kernel function(核函数),或者covariance function(协方差函数)所决定的,后一个是有mean function所决定的。回头想想,我们刚才说的GP还需要满足什么?对,任意个点(对应不同时刻的随机变量)联合需要服从多元高斯分布!既然是满足多元高斯分布,那么必定需要一个确定的mean和确定的covariance 吧。反过来说,若是给定一个mean和covariance,那么自然不同时刻的随机变量的出现的整体位置和相关情况也就被限定住啦!

因此,一个GP可以被mean和covariance function共同唯一决定!其实这一点应该不难理解吧,因为我们知道一个高斯分布可以被mean和variance共同唯一决定,一个多元高斯分布可以对mean vector和covariance matrix共同唯一决定。当然这个所谓的唯一是指的是表达形式,而不是样本唯一,比如上面的图片就是来自同一个GP的不同样本。

那么整体来说,mean和covariance function分别在画出来的样本中扮演着什么样的角色呢?

正如之前描述的,事实上,mean function决定的样本出现的整体位置,即基准线,若是0的话就是在y=0就是基准线。当然这也是常用的的mean function,其中原因就是它强调于刻画出现样本的整体的位置。另一个原因是在之后我们要说的GP在机器学习中的应用中,一般数据需要进行预处理,而归零中心常常是必须做的。不过,除了0以外,一些线性的mean function也是可以被考虑的。

至于covariance function么,这个才是之后在machine learning的应用中被广为探讨的部分,因而就被称为了核函数kernel,原因就是它捕捉了不同输入点之间的关系,并且反映在了之后样本的位置上。这样的话,就可以做到,利用点与点之间关系,以从输入的训练数据预测未知点的值。下面从wiki上找了一些常用的kernel:

其中.d = x -x'。从上面我们可以找到最开始的我们所画的图中用的kernel就是周期核,periodic(PER). 下面再给大家看看基于其他核的GP sample.

  • Squared exponential (SE)

  • Rational quadratic (RQ)
  • Matern 5/2

可能你会感觉,那么多的kernel,似乎看上去也没有什么差别呀!其实并不然,各中差别巨大,比如SE的光滑性,比如PER的严格周期性,等等。如果有机会之后专门写一篇这个哈,这里先不讨论这个啦!当然其实zhihu上也已经有不少不错的回答啦!机器学习里的 kernel 是指什么?


好,现在闭上眼睛,忘掉刚才所有的具体的东西,直观的想想GP到底是个什么东西。

3,2,1!睁开眼睛,看看星空,这个是什么?刀刀说:星星不过是颗足够远的石头!看着星星,你是不是会想到一些问题?

1. 高斯分布与高斯过程,推广与拓展

回忆一下之前的东西,做做比对,我们从高斯分布开始,到多元(multvariate)高斯分布,再到矩阵(matrix-variate)高斯分布。这一步一步,的的确确的在拓展,但是这样的扩展还是停留在同一个量,一个随机变量,一个随机向量,一个随机矩阵,这样的提升就好像下面的这个

而从高斯分布到高斯过程,就像手里抓着大把满足高斯分布的随机变量,而这些随机变量是按照时间或者空间这种连续性变量排列的,本质上它是一族随机变量的整体。

举个并不太恰当的例子,倘若你人生的每一个时刻看做一个随机变量,且都是满足高斯分布,那么你的人生就可以看做一个高斯过程,既有很多确定的东西,确定的是mean和kernel,如你的人生中你起点决定的你人生的大致范围,又有极大地不确定性,本质还是随机变量的整体,就像你可以凭借自身的努力改变很多东西,这就是属于你的高斯过程。

2. 高斯过程这东西有什么用?

什么?这个问题其实很大,答案可以简单也可以复杂!简单的说,由于它性质完美,计算简单,形式漂亮,所以可以被广泛应用在各种统计建模中,包括一些非线性的预测推断问题哦。复杂的说嘛,就是之后这个专栏想要详细讨论的啦!

3.高斯过程有没有也严谨的定义以及学习轨迹呢?

有么肯定是有的,只有不是所有人都有兴趣看的哦,由于目标科普的话。不过还是推荐几个链接,

math.iisc.ernet.in/~man
math.utah.edu/~davar/ma

顺一下逻辑,其实定义高斯过程前,需要先定义一个高斯测度(measure),然后需要给出高斯过程的存在性证明,当然这个的关键是其实要证明这个给定的空间下,高斯测度的存在。中间还要用到Daniell-Kolmogorov theorem (more familiar as Kolmogorov’s existence/consistency theorem),反正好多的测度论的东西哦!高能预警哈!另外下面这个链接也有介绍,

youtube.com/watch?

同时这个链接的课程也是非常棒的哦!


叮铃铃!!!!一觉醒来,是不是大致还记得什么是高斯过程呢?

编辑于 2017-12-03

文章被以下专栏收录