前言:
高斯过程回归(GPR)和贝叶斯线性回归类似,区别在于高斯过程回归中用核函数代替了贝叶斯线性回归中的基函数(其实也是核函数,线性核)。采用核函数可以定义高斯过程回归是一个比贝叶斯线性回归更通用的模型,应用非常广泛。本文参考的资料为视频http://www.youtube.com/playlist?list=PLD0Z06AA0D2E8ZZBA中相关的部分以及论文Gaussian Processes for Regression A Quick Introduction.
基础知识:
首先来看看Bayesian linear regression(贝叶斯线性回归)模型:
其中的D为已知的有监督的训练样本。Yi为样本标签,由可知,yi可以表示为一个高斯过程和一个随机变量的和。公式中的w是一个多维高斯分布。
而 是一个高斯分布,并且它属于线性高斯分布。有上一篇博文机器学习&数据挖掘笔记_10(高斯过程简单理解)可知,如果高斯过程为线性的,即它的sample是在高维空间中的平面,要求它的核函数需满足k(xi,xj)=xi’*xj的形式,且均值函数为0,下面是它的证明过程:
既然已经得知yi的中心是在一个高维空间的平面上,所以当新来的数据后,就可以预测它的均值也在该平面对应的位置上,这就达到了回归的目的。
在将BLR(贝叶斯线性回归)扩展到GPR(高斯过程回归)前,来看看多维高斯分布的一些重要性质,第一个性质为两个相互独立的多维高斯分布A和B的和也是一个多维高斯分布C,且C的均值和方差都为A和B均值方差的和。第二个性质为:两个多维高斯分布之和构成的分布C而言,在已知一部分观察值C1的条件下,另一部分观察值C2的概率分布是一个多维高斯分布,且可以用A和B中对应的信息来表示。这2个性质的介绍如下:
接下来就是要怎样利用高斯过程进行回归运算了。高斯过程回归的模型如下:
其中的ya为需要预测的值,yb为观察到的值,当然了,xa和xb也是观察值。由前面博文机器学习&数据挖掘笔记_10(高斯过程简单理解)中介绍的高斯过程存在性定理可知,一旦我们确定了x上的u和k,就可以得到一个高斯过程Zx,此时的样本值Yi可以写成: 即两个独立的多维高斯变量之和。而利用上面多维高斯变量的性质,可推导出需要预测的ya在yb条件下的概率:
上面的m和D有解析表达式,因此可以直接求,里面的的变量都是已知的。其中的m就是我们回归预测的值,而D就是此时预测的误差,两者表达式和前面类似,如下:
由贝叶斯线性回归和高斯过程回归的对比可知,贝叶斯线性回归是高斯过程回归中的一个子集,只是它用的是线性核而已,通过两者的公式就可以看出它们之间的关系:
上面是贝叶斯线性回归,下面是高斯过程回归。
简单例子:
假设现在已经观察到了6个样本点,x为样本点特征(一维的),y为样本输出值。现在新来了一个样本点,要求是用高斯回归过程来预测新来样本点的输出值。这些样本点显示如下;
第7个点是需要预测的样本,红色的垂直条形线表示观察输出值的误差,绿色的垂直条形线为用高斯过程回归的误差。
用GPR解该问题的流程大概如下(对应前面讲的一些基础知识):
1. 选择适当的u(均值函数)和k(核函数),以及噪声变量σ,其中核函数的选择尤其重要,因为它体现了需处理问题的先验知识,应根据不同的应用而选择不同的核。
2. 计算出训练样本的核矩阵(6*6),如下:
4. 自己和自己的核值为 且此时整个样本的多维高斯分布表达式为:
5. 通过前面m和D的公式,求得m=0.95,D=0.21.
6. 画出最终结果如下:
这个例子来源于论文Gaussian Processes for Regression A Quick Introduction中,它的核函数等参数选择和基础知识部分的不同,但这里主要是对GPR的应用有个简单的宏观上的理解,让大脑对GPR应用有个初步的印象,否则有了那么多的公式推导但不会应用又有什么用呢?
参考资料:
http://www.youtube.com/playlist?list=PLD0Z06AA0D2E8ZZBA
Gaussian Processes for Regression A Quick Introduction, M.Ebden, August 2008.
机器学习&数据挖掘笔记_10(高斯过程简单理解)