高斯过程是定义在y上的高斯分布。高斯过程与核函数紧密相连,定义在y上的高斯分布正是通过核函数表示出来的。与线性回归相比,高斯过程没有建立y和x的直接关系,而是通过核函数的方式直接建立y之间的关系。在线性回归模型中,我们假设某个y的取值服从一个高斯分布,即y的均值是参数w的一个线性关系,和之间的关系通过w的协方差表现出来。如果给定一个先验,那么可以计算出y的协方差矩阵,如下:
(1)
注意到上面的矩阵是一个N×M的设计矩阵,矩阵的每一行表示训练集中的一个特征向量,令,是一个N×N的矩阵,K矩阵的第m行第n列的元素是表示一个核函数。因此y的协方差矩阵可以通过核函数表示出来。那么什么是核函数呢?核函数是一个二元函数,定义为两个向量的内积:
可以理解为两个点之间的相似关系。我们可以从核函数的角度重新理解线性回归。在线性回归中,我们认为,是一个特征向量,用最小二乘法的损失函数如下所示:
(2)
对其进行求导,并令导数等于0,我们可以得到如下等式:
(3)
其中:
现在我们将公式(3)代入线性模型,得到
(4)
是一个核函数向量,它的每个元素,上述过程可以认为是由特征向量向核向量转化的过程,也可以看作一个新的特征向量。区别在于,原来的特征向量是一个有穷维的,而新的核向量是一个无穷维的。我们称公式(4)是原来线性模型的对偶形式,特点在于可以通过核函数的方法把y之间的关系表示出来,而没有引入额外的参数w,这种特性天然的和高斯过程联系在一起,高斯过程的优点也正在于我们可以定义各种各样的核函数表示y之间的协方差,而不必明确指定出x的特征向量。高斯过程摒弃了线性模型参数的思想,直接通过核函数建立y之间的关系,从一个有参模型过度到无参模型。
上面讨论了高斯过程的定义以及高斯过程中用到的核函数,如何用高斯过程进行回归呢。这就要利用高斯分布的特点。如何y是一个服从高斯分布的M维向量,和分别是y的两部分,那么它们各自的边缘分布和也都是高斯分布,并且条件分布也服从高斯分布。现在我们假设有N个训练集,并且要预测第N+1个数据x对于的y。我们的做法是,假设这N+1个数据服务高斯分布,并给定一个核函数,那么我们就可以计算出N+1个数据的协方差矩阵记作。并且将该矩阵分解为两部分
我们已知分布,因为协方差矩阵是由核函数给出的,当我们给定一个核,协方差就可以根据x得到。这样根据高斯分布的性质很容易得到:
用核函数的方法表示协方差矩阵是高斯过程的重要的一部分,它避免了直接建立x和y的关系,从而解决了那些不能用确定特征向量表示的问题,如文本长度。高斯过程可以用于回归和分类并且可以用来进行特征提取,如ARD。
1 Pattern recognition and machine learning (第六章)作者:Christopher M.Bishop
2 machine learning a probabilistic perspective (第十四章、第十五章)作者: Kevin P. Murphy