通俗理解高斯过程及其应用

本文主要涉及什么是高斯过程以及高斯过程的简单应用。主要参考这个博客

首先简单理解高斯过程,比如你有

通俗理解高斯过程及其应用

个时间点,每个时间点的观测值都是高斯分布的,并且任意k个时间点的观测值的组合都是联合高斯分布。这样的一个过程称为高斯过程。

高斯过程通常可以用来表示一个 函数, 更具体来说是表示一个 函数的分布 (先不急着理解这句话,看到最后就明白了)。通常如果我们要学习一个函数(或者说学习一个映射),首先定义函数的参数,然后根据训练数据来学习这个函数的参数。例如我们做线性回归,学习这样一个函数就相当于训练回归参数(权重、偏置)。这种方法叫做参数化的方法。但是这种做法就把可学习的函数的范围限制死了,无法学习任意类型的函数。而非参数化的方法就没有这个缺点。用高斯过程来建模函数,就是一种非参数方法。

首先看一个简单的例子,假设我们有两个点

通俗理解高斯过程及其应用

通俗理解高斯过程及其应用

,对应这两个点的函数值服从二维高斯分布(高斯过程中“高斯”二字的由来)

通俗理解高斯过程及其应用

然后我们从这个二维高斯分布中采样,两个x对应在x轴上,采样得到的两个y对应在y轴上,我们得到下图(采样10组)

通俗理解高斯过程及其应用

每条直线可以被认为是从一个线性 函数分布 中采样出来的线性函数。

如果我们有20个x点,对应这20个x的函数值符合均值为0,协方差矩阵为单位矩阵的联合高斯分布。和上面一样进行采样10组,得到下图:

通俗理解高斯过程及其应用

每一条线都是一个函数,是从某个 函数分布 中采样得到的。但是这样的函数看上去一点也不平滑,并且显得杂乱无章,距离很近的两个x对应的函数值可以相差很大。

直观来说,两个x离得越近,对应的函数值应该相差越小,也就是说这个函数应该是平滑的,而不是像上图那样是突变的。所以我们应该通过两个x之间的某种距离来定义这两个x对应的函数值之间的协方差。两个x离得越近,对应函数值之间的协方差应该越大,意味着这两个函数值的取值可能越接近。

我们引入核函数(以高斯核为例,也可以用其他核,并不是说我们在讲高斯过程所以这里就一定用高斯核):

通俗理解高斯过程及其应用

它可以用来表示两个x之间的距离。此时,若我们有N个数据点(

通俗理解高斯过程及其应用

),则这个N个数据点对应的N个函数值服从N维高斯分布,这个高斯分布的均值是0,协方差矩阵是K,K里的每一个元素对应:

通俗理解高斯过程及其应用

至于为什么高斯分布的均值是0,为什么用核函数来表示协方差,可以 参考PRML 6.4.1 节(P304-P305)。

此时,再以刚才20个数据点的情况为例,我们采样10组,得到下图,现在看起来函数就平滑多了:

通俗理解高斯过程及其应用

如果数据点再多点,例如100个数据点,则采样10组,得到下图:

通俗理解高斯过程及其应用

上图每条曲线就是一个高斯过程的采样,每个数据点上的函数值都是高斯分布。且任意k个数据点对应的函数值的组合都是联合高斯分布。

然后我们可以用高斯过程作为先验,来学习任意函数,接下来我们将以回归问题为例。所谓的以高斯过程作为先验,意思是在没有观察到任何数据的情况下,我们认为给定x,y服从分布

通俗理解高斯过程及其应用

。其中

通俗理解高斯过程及其应用

接下来我们有训练数据

通俗理解高斯过程及其应用

。回归问题就是希望我们通过

通俗理解高斯过程及其应用

学习一个由

通俗理解高斯过程及其应用

通俗理解高斯过程及其应用

的映射函数 。然后给定一个

通俗理解高斯过程及其应用

,预测

通俗理解高斯过程及其应用

根据我们的高斯过程先验,训练数据

通俗理解高斯过程及其应用

通俗理解高斯过程及其应用

的联合条件分布

通俗理解高斯过程及其应用

服从如下

根据以上

通俗理解高斯过程及其应用

通俗理解高斯过程及其应用

的联合分布,可以得到条件分布


上述就是把高斯过程作为先验的一种非参数方法。可以看到,除了kernel里面的超参数,最后对

通俗理解高斯过程及其应用

的预测里面没有涉及到任何参数的估计。


分享到:


相關文章: