- 本文参考《PRML》,并加入了一些自己的理解,如有错误恳请指出。
1 前言
1.1 怎么理解高斯过程?高斯过程和随机过程的关系是什么?
- 高斯分布:随机变量服从高斯分布,意味着在当前时刻,该随机变量可能取的值服从高斯分布,但它只能从分布中取一个!
- 随机过程:在一条时间线上,或一个数据集中,随机变量在每个位置上服从一定的分布,但在每一个位置只能取一个值,假设共有m个时间点(或数据集容量为m),则一共会产生m个取值结果,这m个取值结果便称为一个过程,因为在每一个点的取值是随机的,因此称为随机过程。我们用联合概率分布来描述随机过程:
p(x1=t1?,x2=t2?,...,xm=tm?)=p(x1=t1?)p(x2=t2?)...p(xm=tm?)
- 高斯过程:对于一个随机过程,如果随机变量在每个位置服从的分布是高斯分布,那该随机过程就称为高斯过程;但在高斯过程中,对于m个随机变量产生的结果
x={x1,x2,...,xm},我们不再使用联合概率分布来描述,而是使用多维高斯分布的二阶统计量来描述:
E[x]∈Rm 和
cov[x]∈Rm×m;
1.2 贝叶斯线性回归与高斯过程
-
在贝叶斯线性回归问题中,我们建立了如下模型:
y(x)=wTΦ(x),Φ(x)∈Rn,w∈Rn(1.2.1)
参数w服从一个高斯先验分布:
p(w)=N(w∣0,α?1In×n)(1.2.2)
-
因此对于一个数据集
x={x1,x2,...,xm},模型的输出
y=[y1,y2,...,ym]T (注意这里的模型的输出不是数据集中的标签或目标值,这里只描述了一个线性高斯模型的输出,并没有描述噪声)服从
m维高斯分布:
y=Φw=???Φ(x1)T...Φ(xm)T????m×n?????w1?...wn?????n×1?=???y1...ym????m×1?~N(E[y],cov[y])(1.2.3)
其中:E[y]=ΦE[w]=0∈Rm
cov[y]=α1?ΦΦT=K∈Rm×m
其中K是Gram矩阵:
Kij?=k(xi,xj)=α1?Φ(xi)TΦ(xj),i,j∈[1,m]
k(xi,xj)称为核函数;
-
因此,模型的输出
y=[y1,y2,...,ym]T 可以看作一个高斯过程;
1.3 贝叶斯线性回归与高斯过程:二维场景举例 (看懂了可以跳过这一节)
-
考虑简单的二维场景:
x={x1,x2,x3}={1,2,3},Φ=???Φ(1)TΦ(2)TΦ(3)T????3×2?=???111?123????3×2?
-
假设参数
w服从高斯先验分布
N(E[w],cov[w]):
E[w]=[01?]
cov[w]=α?1I=[0.50?00.5?]
-
根据公式
(1.2.3),可以直接计算得到模型输出
y=[y1,y2,y3]T 的多元高斯分布的均值和协方差矩阵:
E[y]=ΦE[w]=???123????
cov[y]=21?ΦΦT=21????1+x1x11+x1x21+x1x3?1+x1x21+x2x21+x2x3?1+x1x31+x2x31+x3x3????=???11.52?1.52.53.5?23.55????
-
根据多元高斯分布的均值和协方差矩阵,可以得出高斯过程在三个位置上的概率分布如图所示(三条红色曲线),可以看出,
y3的方差大于
y2的方差大于
y1的方差;且由于三个变量的协方差都为正,因此三个变量之间成正相关,即当
y1小于均值的时候,
y2,y3都会大概率小于各自的均值(当然这取决于相关性的强弱),如图中
y1,y2,y3所示为一组可能的采样点。
1.4 高斯过程:直接定义核函数
- 回顾一下前面对模型输出的分布建模的思路:选择basis function
Φ(x),确定参数
w的先验分布,然后使用线性回归模型
(1.2.1)定义一个高斯过程;然后得到模型输出
y=[y1,y2,...,ym]T 的多元高斯分布。
- 我们也可以不定义basis function,而是直接定义核函数,得到输出的多元高斯分布;
- 常用核函数:
- 高斯核:
k(x,x′)=exp(2σ2?∣∣x?x′∣∣2?)
- 指数核:
k(x,x′)=exp(?θ∣x?x′∣)
- 高斯核:
- 高斯核描述了数据点之间的相关性强弱,
- 使用高斯核和指数核的模型输出的采样结果如下
2 高斯过程采样的定性分析
- 下面来说说上图的曲线是怎么得到的。仍然考虑简单的场景,假设数据是一维的,仍然假设参数
w服从
N(0,α?1In×n)的先验分布,且不考虑噪声(noise-free);
- 当数据集只有一个数据
x={x1}时,根据高斯核函数可以直接得到输出的分布:
E[y(x)]=0cov[y(x)]=k(x1,x1)
然后对输出y1 进行采样,如图所示:
- 然后数据集中加入第二个点
x={x1,x2},根据高斯核函数可以直接得到输出的联合分布:
E[y(x)]=0cov[y(x)]=[k(x1,x1)k(x2,x1)?k(x1,x2)k(x2,x2)?]
我们得到了输出
y(x1)和
y(x2)的联合概率分布,该分布取决于高斯核函数的计算结果,即如果
x1,x2相距较近,则
y(x1)和
y(x2)的相关性更强,则可能得到如下左图的联合分布,如果
x1,x2相距较远,则
y(x1)和
y(x2)的相关性较弱,则可能得到如下右图的联合分布(值得注意的是,由于高斯核函数计算的对角线元素均为1,因此
y(x1)和
y(x2)各自的方差是相同的,对应下图的阴影部分在横纵坐标上跨度相同):
由于目前已经有了
y1 的采样结果,再对
y2 进行采样的时候,就要按照条件高斯分布进行采样,如下图所示:
如果
x2和
x1距离很近,则会出现上图左图中的情况,相关性很强,即此时的
y(x2)极其依赖于
y(x1),进行采样得到
y2 几乎和
y1大小相同;如果
x2和
x1距离较远,则会出现上图右图中的情况,相关性较弱,即此时的
y(x2)不太依赖于
y(x1),进行采样得到
y2 和
y1也会有一定差别。反映到输入输出坐标轴上,如下图所示:(注意!!下图中看起来采样点
y1似乎等于
y2的采样均值,但实际上两者并不相等!具体计算见3.2节,这里是为了展示方便)
- 假设我们已经采样完成了如上图左图中的两个点
y1 和
y2,现在我们加入第三个数据,
x={x1,x2,x3},根据高斯核函数可以直接得到输出的联合分布:
E[y(x)]=0cov[y(x)]=???k(x1,x1)k(x2,x1)k(x3,x1)?k(x1,x2)k(x2,x2)k(x3,x2)?k(x1,x3)k(x2,x3)k(x3,x3)????
如下图所示,黄色椭球代表三个变量的联合分布,根据已有的采样点y1 和
y2,可以求出
y3的采样范围(图中绿色范围所示):条件高斯分布
p(y(x3)∣y1,y2)
根据协方差矩阵,x3 和
x1,x2的距离决定了
y(x3)和
y(x1),y(x2)的相关性,在输出输出坐标轴上表示(定性表示)如下图所示,左图中,
x3与
x1,
x2的距离都较远,因此相关性较弱,采样范围较大;右图中,
x3与
x1的距离较远,与
x2的距离较近,因此
y(x3)和
y(x1)相关性弱,与
y(x2)相关性强,因此采样范围主要取决于
y2的位置;(这里同样的,样本点
y2并不等于
y3的采样均值,只是为了展示方便)
- 目前我们已经得到了三个采样点
{y1,y2,y3},如果数据集中继续加入元素,将无法用图像直观描述,但是我们可以以此类推,来分析下图(左边的高斯核采样曲线):(1)当新加入的点
xnew 和已有的点
xold 无限接近的时候,则
y(xnew)和
y(xold)也将无限接近,这就是为什么我们在采样图(如下图)中看到的采样曲线是连续的平滑的;(2)下图的曲线实际上是在x轴上无限采样的结果,实际上是离散的,而不是连续的;(3)新加入的点与离其最近的点集相关性最强,例如如果最近的点集的输出是单调递增,则新加入的点的输出也大概率满足单调递增;
3 高斯回归
3.1 对模型输出添加噪声
- 在前面的定性分析中,我们描述了模型输出
y=[y1,y2,...,ym]T的联合概率分布,没有考虑噪声,而在回归问题中,训练集中的标签值
t 都是带有固定噪声的,因此我们需要将噪声
? 加入到模型的输出
y 中:
ti=y(xi)+?ifori∈{1,2,...,m}
其中:?i~N(0,β?1)
因此,可以得到:p(t∣y)=N(t∣y,β?1Im?)
又根据模型高斯过程的定义:p(y)=N(y∣0,Km?)
因此,标签值t的联合概率分布为:
p(t)=∫p(t∣y)p(y)dy=N(t∣0,Cm?)
其中:C(xi,xj)=k(xi,xj)+β?1δij?,即:
Cm?=???k(x1,x1)...k(xm,x1)?.........?k(x1,xm)...k(xm,xm)????+???β?1...0?.........?0...β?1????
这样我们就得到了数据集中的标签值t的联合概率分布;
- 下图蓝色的曲线为高斯过程采样的结果,红色的点为数据集中的点
x 对应的模型输出
y,绿色的点为加入独立噪声
?的结果
t:
3.2 高斯回归
- 问题定义:给定数据集
x={x1,x2,...,xm},
t={t1,t2,...,tm}和新的测试数据
xm+1,预测
tm+1的分布,即计算
p(tm+1∣x,t,xm+1);
- 高斯回归过程:
- 计算目标值
{t1,t2,...,tm,tm+1}的联合概率分布:
?????t1...tmtm+1??????~N(0,Cm+1?)
协方差矩阵Cm+1?可分解为如下部分:
Cm+1?=[Cm?kT?kc?]
- 条件高斯分布
p(tm+1∣x,t,xm+1)便可以由下式计算:
p(tm+1∣x,t,xm+1)=N(tm+1∣μm+1?,σm+1?)
其中输出的均值和方差可由下式给出:μm+1?=kTCm?1?t
σm+1?=c?kTCm?1?k
- 上式放在二维场景下,就是计算下图中的绿色曲线的过程。(可以看出
t2的采样均值并不等于
t1)
- 在贝叶斯线性回归中,我们曾经提到“预测分布的均值是训练集中每个标签值的线性组合”,高斯过程预测的均值
μm+1?,也是标签值
{t1,t2,...,tm}的线性组合:
μm+1?=kTCm?1?t=[k(x1,xm+1)?...?k(xm,xm+1)?]???k(x1,x1)...k(xm,x1)?.........?k(x1,xm)...k(xm,xm)?????1????t1...tm????
其中各项组合的权重是由核函数计算的,且该权重是新输入测试数据xm+1的函数,即
μm+1?还可以写成如下形式:
μm+1?=f(xm+1)=i=1∑m?ai?k(xi?,xm+1?)
其中ai?是
Cm?1?t 中的第
i 个元素;
3.3 超参数的选择
- 高斯过程的超参数包括噪声误差精度
β,还有核函数中的参数,这些参数的选择方法是通过极大似然估计,具体过程省略。
4 极大似然线性回归、贝叶斯线性回归、高斯回归的区别和联系
极大似然线性回归 | 贝叶斯线性回归 | 高斯回归 | |
---|---|---|---|
研究空间 | 参数空间 | 参数空间 | 函数空间 |
使用方法 | 极大似然估计 | 极大后验估计 | 高斯过程 |
4.1 极大似然线性回归
- 我们之前最熟悉的是极大似然线性回归,代表频率学派的观点,其目的是在参数空间中寻找一组能拟合当前训练集的最优参数,学习到参数之后,使用判别式模型,预测新数据;但是当拿来一组新的训练集时,就要重新学习参数;
4.2 贝叶斯线性回归
- 贝叶斯线性回归代表贝叶斯学派的观点,其目的并不是寻找能拟合训练集的最优参数,而是认为,参数没有“最优”,只有“更优”;贝叶斯线性回归认为参数存在先验,学习的过程就是不断计算参数的后验分布,然后把计算得到的后验分布作为下一次学习的先验分布的过程,每次拿到一组新的训练集,都能在原来的基础上继续学习,有一种“学习永不停止”的意思;与极大似然回归相比,其学习的结果不是一组确定的参数,而是参数的(后验)分布,用这组不确定的参数对新数据进行预测时,得到的预测结果也是不确定的,即得到的预测结果也是一组分布,而不是某个确定的预测值。
4.3 高斯回归
- 前两种回归方法都是在参数空间中对参数进行估计,这样的弊端在于必须自己选择模型(basis-function),有时模型的选择会对预测结果产生较大的影响,而如何选择模型则完全靠经验。高斯回归直接放弃对模型的选择,而是相信一个“真理”:我只要用和新数据相近的训练集数据预测输出,结果肯定大差不差。即使用核方法对训练集中的目标值的联合概率分布进行建模,当输入新的数据时,使用贝叶斯公式得出预测值的条件高斯分布。预测结果中除了核函数的超参数外不包含任何需要学习的参数。