GPR(高斯过程回归)详细推导
GPR来源于线性模型,有两种方式可以推导出GPR,一种是weight space view,另外一种是function space view。两者考察方式假设不同,关注的对象不同,但是最后导出的结果是相同的。其中,function view的推导方式更加简单,GPR最终的为了实现回归,即已知X,y,x*,求y*。最终的推导出的公式如下:
X,y是已知的数据,我们要求未知数据x*处的函数值,K是核函数。我们接下来会从weight space view和function space view两种方式推导出GPR。最后一部分是GPR的算法流程图。
参考资料:
1.《Gaussian Processes for Machine Learning》
2. https://www.bilibili.com/video/BV1aE411o7qd?p=114
3. https://zhuanlan.zhihu.com/p/75589452 (python的代码演示,包含可视化)
4. python的GPy库和MATLAB中的ooDACE里面集成有GPR
我们考虑下面一个问题:
这是一个线性模型,GPR的想法就是把w看做正态分布的随机变量,求出了w的分布,就知道了y的分布。这里的ε是噪声,在推导中是必须的。如果把
ε=0就是一个无噪的预测,考虑到ε的影响就是一个有噪声的预测。
整个推导分成三部分:
1.已知w的先验分布,通过更多的数据(X,y)求得w的后验分布
2.已知w的后验分布,就能求得f*的概率分布(可以简单地理解为用
来代替)
3.将f*概率分布中均值和方差写成核函数的形式,这个形式与function space view推导出的结果一致,完成!
注:本文的所有推导前面是推导的主干部分,细致的证明在后面。
2.1 w的后验分布
如果我们已经知道了w的确定值,要预测xi处的函数值yi可以表达如下:
上述公式写出了某一点的预测值yi,如果有多个点的值需要预测,将每个点的值看作是独立的,可以得到
由于我们不知道w的分布是怎样的,我们可以假设w的先验为,p是代表先验prior的意思。
这里的p(y|X)是marginal likelihood, GPR中的超参数调节就是使得marginal likelihood最大!
由于p(y|X)与w无关,我们把w看作变量,p(y|X)是一个常量,因此
所以即为我们要求的后验概率。随着数据的增多,后验概率会逐渐地逼近w的真实概率。
证明部分:
(2-2)想要求yi的概率密度函数,可以通过概率分布的微分来求得。
所以对概率分布函数求导即可得到概率密度函数:
(2-5)这个公式为贝叶斯公式,用条件概率证明即可。
X为常量,先不看X,根据条件概率,则
(2-7)这个等式的证明不复杂,两边展开对应相等即可。上述等式成立,常数可以不用看,只要指数部分相等即可,因为常数可以通过概率密度积分为1这个条件来得到。上式等价于证明下式
所以等式左边=等式右边,得证!
2.2 f*的概率分布
我们已知了w的后验分布,结合线性关系,就能知道预测点x*的函数值
从可以看出,预测值实际上就是在w的基础上均值乘以x*,方差乘以x*Tx,这有专门的定理可以证明,一步得出,详细推导过程在本节最后。
由于原来是基底是x本身,拟合你能力有限,为了提高模型的描述能力,我们可以选择某种函数把输入的D维空间映射到N维空间,即:
注意到,我们把w看成变量的时候,phi(x)是常数,该模型对于w而言仍然是线性的,以上的结论仍然可以用。因此:
这是我们想要得到的内容:对f*的预测,但还不是最终的形式,因为此时它跟phi(x)还有关系。为了简便,我们还需做转换
证明部分:
(2-9)有一个定理可以直接证明:
2.3 核函数形式
(2-11)和(2-12)完全相同,只是换了一个形式而已,但是这样就能得到我们想要的核函数形式!
定义核函数:
所以上式可以改写为:
因为Σp为正定矩阵,所以
这样就定义了一个内积形式,这种方法被称作kernel trick。
证明部分:
1.对于高斯过程的基本认识
定义:高斯过程是一组随机变量的组合,任意有限个变量都服从联合高斯分布。
为了推导出GPR,我们仍然假设用贝叶斯线性回归模型和w的先验
这样就能求出均值和方差
协方差函数,即核函数,我们经常取squared exponential
2.高斯回归推导
重新整理一下,可得:
这就变成了一个已知联合高斯分布,求条件概率。这个问题有标准解法,直接套用公式即可,详细推导过程在后面(我们假设均值为0 ):
考虑到y是f(x)加上噪声,则分布为
如果噪声为0,即为noise-free的预测:
推导完成!
证明部分:
定理证明:
证明这个定理使用的是构造法,还需要用到上一章提到的一个定理,会用两次,在这里我重新写一遍:
可以根据上面上式来求得xb|a,,因为求的是条件概率,此时和a有关的量都可以看作已知量,所以:
得证!
GPR的算法流程可以从上述公式中做出说明:
在GPR建模中核函数里面的参数称为超参数,调节这些超参数的标准就是最大化marginal likelihood p(y|X)。
五、数学基础