最近几天在整理高斯过程回归(Gaussian Process Regression, GPR)部分的知识,虽然还有很多问题没有搞懂,但是有一点进展还是决定总结下来,防止遗忘。
在整理之前,先列出我参考的几个资料吧,一方面方便大家参考,另一方面也防止自己以后找不到了。
- 哔哩哔哩视频:https://space.bilibili.com/97068901/video。里面有很多推导,其中一个就是GPR,个人感觉推导的很详细,弹幕也都这么说,哈哈。
- 是一本书:《PRML:模式识别与机器学习(中文版)》,当然看英文的更好啦。
- 也是一本书:《Gaussian Processes for Machine Learning》,这个就直接是英文的了。
GPR部分一共有两种理解角度:权重空间(Weight-Space View)与函数空间(Function-Space View)。这里先说Weight-Space View。先描述一下问题,现有一个未知的模型,可以确性的信息是:这个模型是线性的,并且输出端还带有零均值且服从高斯分布的噪声。通过数据采集得到了一些输入-输出数据,现在需要做的是利用GPR部分的原理,求出原线性模型中的未知参数的概率分布,并且这个概率分布要使用高斯分布去描述。下边将用公式表示以上文字:
现有N组可以被视为独立同分布的训练数据:
。其中,
为列向量,
为一实数。现该线性模型可以被如下表示:
![\left\{\begin{matrix} f(x)=x^{T}\omega \\ y=f(x)+\varepsilon \\ \varepsilon \sim N(0, \sigma ^{2}) \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20f%28x%29%3Dx%5E%7BT%7D%5Comega%20%5C%5C%20y%3Df%28x%29+%5Cvarepsilon%20%5C%5C%20%5Cvarepsilon%20%5Csim%20N%280%2C%20%5Csigma%20%5E%7B2%7D%29%20%5Cend%7Bmatrix%7D%5Cright.)
其中,
为列向量,
服从零均值高斯分布。为表示方便,将输入数据和输出数据分别用一个符号表示:
![\left\{\begin{matrix} X=\begin{bmatrix} x_{1} & x_{2} & \cdots & x_{n} \end{bmatrix}_{p\times n}\\ Y=\begin{bmatrix} y_{1} & y_{2} & \cdots & y_{n} \end{bmatrix}_{n\times 1} \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20X%3D%5Cbegin%7Bbmatrix%7D%20x_%7B1%7D%20%26%20x_%7B2%7D%20%26%20%5Ccdots%20%26%20x_%7Bn%7D%20%5Cend%7Bbmatrix%7D_%7Bp%5Ctimes%20n%7D%5C%5C%20Y%3D%5Cbegin%7Bbmatrix%7D%20y_%7B1%7D%20%26%20y_%7B2%7D%20%26%20%5Ccdots%20%26%20y_%7Bn%7D%20%5Cend%7Bbmatrix%7D_%7Bn%5Ctimes%201%7D%20%5Cend%7Bmatrix%7D%5Cright.)
贝叶斯估计就是求出在已知训练数据时,参数
的概率分布。即“最大后验概率”。不严格地,也可以理解为中学阶段的“条件概率”。这里需要引入一个概念:贝叶斯学派与频率学派。
经典的频率学派认为:一个随机事件发生的概率是固定的,属于这个事件本身的属性,并不会随着采集样本的变化而发生改变。因此,频率学派的“估计”指的是,在已知概率分布参数的条件下,去计算我们采集的样本是如何分布。是一种“这个参数的数值就是不变的,我们看看这个随机事件的样本该如何分布吧!”的感觉。
但是贝叶学派正好与之相反,贝叶斯学派认为随机事件发生的概率是一个非常主观的数值,并且这个数值还会随着采集样本的不同而发生改变。因此,贝叶斯学派的“估计”指的是,在样本已知的条件下,反推这个随机事件的参数是如何分布的。有一种“随着认知的深入,我们对事物的评价就更加准确啦!”的感觉。
言归正传,求参数
的后验概率就是在求表达式
的表达形式。这里简单推导一下:
![\left\{\begin{matrix} p(\omega ,X,Y) = p(\omega |X,Y)\times p(X,Y) = p(\omega |X,Y)\times p(Y|X)\times p(X)\\ p(\omega ,X,Y) =p(Y|\omega ,X)\times p(X,\omega ) = p(Y|\omega ,X)\times p(X|\omega ) \times p(\omega ) \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20p%28%5Comega%20%2CX%2CY%29%20%3D%20p%28%5Comega%20%7CX%2CY%29%5Ctimes%20p%28X%2CY%29%20%3D%20p%28%5Comega%20%7CX%2CY%29%5Ctimes%20p%28Y%7CX%29%5Ctimes%20p%28X%29%5C%5C%20p%28%5Comega%20%2CX%2CY%29%20%3Dp%28Y%7C%5Comega%20%2CX%29%5Ctimes%20p%28X%2C%5Comega%20%29%20%3D%20p%28Y%7C%5Comega%20%2CX%29%5Ctimes%20p%28X%7C%5Comega%20%29%20%5Ctimes%20p%28%5Comega%20%29%20%5Cend%7Bmatrix%7D%5Cright.)
利用两个等式最右端彼此相等可以得到:
![p(\omega |X,Y) = \frac{p(Y|\omega ,X) \times p(X|\omega ) \times p(\omega )}{p(Y|X)\times p(X)}=\frac{p(Y|\omega ,X) \times p(\omega )}{\int _{\omega }p(Y|\omega ,X) \times p(\omega )d\omega }](https://private.codecogs.com/gif.latex?p%28%5Comega%20%7CX%2CY%29%20%3D%20%5Cfrac%7Bp%28Y%7C%5Comega%20%2CX%29%20%5Ctimes%20p%28X%7C%5Comega%20%29%20%5Ctimes%20p%28%5Comega%20%29%7D%7Bp%28Y%7CX%29%5Ctimes%20p%28X%29%7D%3D%5Cfrac%7Bp%28Y%7C%5Comega%20%2CX%29%20%5Ctimes%20p%28%5Comega%20%29%7D%7B%5Cint%20_%7B%5Comega%20%7Dp%28Y%7C%5Comega%20%2CX%29%20%5Ctimes%20p%28%5Comega%20%29d%5Comega%20%7D)
这里个人理解是:贝叶斯理论认为采样数据是客观存在的,并不会因为
如何如何就发生改变,因此
。得到这个式子之后,就可以用本科和硕士研究生阶段学习的概率论和引用数理统计的知识了。其中
被称为似然函数(likelihood),
被称为
的先验概率(prior),
被称为边缘化似然函数(marginal likelihood)。上式的分布是一个与
无关的常数,因此,后验概率也可以如下表示:
![p(\omega |X,Y) \propto p(Y|\omega ,X) \times p(\omega )](https://private.codecogs.com/gif.latex?p%28%5Comega%20%7CX%2CY%29%20%5Cpropto%20p%28Y%7C%5Comega%20%2CX%29%20%5Ctimes%20p%28%5Comega%20%29)
似然函数可以表示为n个独立同分布的乘积形式:
。根据文章前边的线性模型的表达式和中学阶段学过的正态分布的性质可以知道,每一个输出样本的概率分布均为:
。因此,可以推导出似然函数的表达式:
![p(Y|\omega ,X) = \prod _{i=1}^{n}\frac{1}{\sqrt{2\pi\sigma ^{2}}}\exp [-\frac{(y_{i}-x_{i}^{T}\omega )^{2}}{2\sigma ^{2}}] = \frac{1}{(2\pi\sigma^{2})^{n/2}}\exp[-\frac{1}{2\sigma^{2}}A]](https://private.codecogs.com/gif.latex?p%28Y%7C%5Comega%20%2CX%29%20%3D%20%5Cprod%20_%7Bi%3D1%7D%5E%7Bn%7D%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%20%5E%7B2%7D%7D%7D%5Cexp%20%5B-%5Cfrac%7B%28y_%7Bi%7D-x_%7Bi%7D%5E%7BT%7D%5Comega%20%29%5E%7B2%7D%7D%7B2%5Csigma%20%5E%7B2%7D%7D%5D%20%3D%20%5Cfrac%7B1%7D%7B%282%5Cpi%5Csigma%5E%7B2%7D%29%5E%7Bn/2%7D%7D%5Cexp%5B-%5Cfrac%7B1%7D%7B2%5Csigma%5E%7B2%7D%7DA%5D)
其中,
为一个数量。A的化简如下:
![\small \small A=\begin{bmatrix} y_{1}-x_{1}^{T}\omega & y_{2}-x_{2}^{T}\omega & \cdots & y_{n}-x_{n}^{T}\omega \end{bmatrix}\times \begin{bmatrix} y_{1}-x_{1}^{T}\omega\\ y_{2}-x_{2}^{T}\omega\\ \vdots \\ y_{n}-x_{n}^{T}\omega \end{bmatrix}\\ =\begin{bmatrix} Y^{T}-\omega ^{T}X \end{bmatrix}\times \begin{bmatrix} Y-X^{T}\omega \end{bmatrix}\\ =\begin{bmatrix} Y-X^{T}\omega \end{bmatrix}^{T}\times \begin{bmatrix} Y-X^{T}\omega \end{bmatrix}](https://private.codecogs.com/gif.latex?%5Csmall%20%5Csmall%20A%3D%5Cbegin%7Bbmatrix%7D%20y_%7B1%7D-x_%7B1%7D%5E%7BT%7D%5Comega%20%26%20y_%7B2%7D-x_%7B2%7D%5E%7BT%7D%5Comega%20%26%20%5Ccdots%20%26%20y_%7Bn%7D-x_%7Bn%7D%5E%7BT%7D%5Comega%20%5Cend%7Bbmatrix%7D%5Ctimes%20%5Cbegin%7Bbmatrix%7D%20y_%7B1%7D-x_%7B1%7D%5E%7BT%7D%5Comega%5C%5C%20y_%7B2%7D-x_%7B2%7D%5E%7BT%7D%5Comega%5C%5C%20%5Cvdots%20%5C%5C%20y_%7Bn%7D-x_%7Bn%7D%5E%7BT%7D%5Comega%20%5Cend%7Bbmatrix%7D%5C%5C%20%3D%5Cbegin%7Bbmatrix%7D%20Y%5E%7BT%7D-%5Comega%20%5E%7BT%7DX%20%5Cend%7Bbmatrix%7D%5Ctimes%20%5Cbegin%7Bbmatrix%7D%20Y-X%5E%7BT%7D%5Comega%20%5Cend%7Bbmatrix%7D%5C%5C%20%3D%5Cbegin%7Bbmatrix%7D%20Y-X%5E%7BT%7D%5Comega%20%5Cend%7Bbmatrix%7D%5E%7BT%7D%5Ctimes%20%5Cbegin%7Bbmatrix%7D%20Y-X%5E%7BT%7D%5Comega%20%5Cend%7Bbmatrix%7D)
因此,似然函数就可以被表达成如下形式:
![p(Y|\omega ,X)=\frac{1}{(2\pi\sigma)^{n/2}}\exp[-\frac{1}{2\sigma ^{2}}\begin{Vmatrix} Y-X^{T}\omega \end{Vmatrix}^{2}]](https://private.codecogs.com/gif.latex?p%28Y%7C%5Comega%20%2CX%29%3D%5Cfrac%7B1%7D%7B%282%5Cpi%5Csigma%29%5E%7Bn/2%7D%7D%5Cexp%5B-%5Cfrac%7B1%7D%7B2%5Csigma%20%5E%7B2%7D%7D%5Cbegin%7BVmatrix%7D%20Y-X%5E%7BT%7D%5Comega%20%5Cend%7BVmatrix%7D%5E%7B2%7D%5D)
对比多元高斯分布的标准公式,我们可以看出这个服从高斯分布的似然函数可以被如下表示:
![p(Y|\omega ,X) = N(X^{T}\omega , \sigma ^{2}I)](https://private.codecogs.com/gif.latex?p%28Y%7C%5Comega%20%2CX%29%20%3D%20N%28X%5E%7BT%7D%5Comega%20%2C%20%5Csigma%20%5E%7B2%7DI%29)
根据
的后验概率正比于似然函数和先验概率的乘积这一事实。在这里我们假设
的先验分布已知:
![p(\omega) = N(0,\Sigma_{p})](https://private.codecogs.com/gif.latex?p%28%5Comega%29%20%3D%20N%280%2C%5CSigma_%7Bp%7D%29)
因此,将两个表达式代入,可以得到:
![p(\omega|X,Y) \propto N(X^{T}\omega , \sigma ^{2}I)\times N(0, \Sigma_{p})\sim N(\mu_{\omega}, \Sigma_{\omega})](https://private.codecogs.com/gif.latex?p%28%5Comega%7CX%2CY%29%20%5Cpropto%20N%28X%5E%7BT%7D%5Comega%20%2C%20%5Csigma%20%5E%7B2%7DI%29%5Ctimes%20N%280%2C%20%5CSigma_%7Bp%7D%29%5Csim%20N%28%5Cmu_%7B%5Comega%7D%2C%20%5CSigma_%7B%5Comega%7D%29)
根据高斯分布的特征参数可以直接从指数项中提炼出来,而不需要看前边增益系数的特点,我们可以对上式进行化简:
![p(\omega|X,Y) \propto \exp[-\frac{1}{2\sigma^{2}}(Y-X^{T}\omega)^{T}(Y-X^{T}\omega)]\times \exp[-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp[-\frac{1}{2}(Y-X^{T}\omega)^{T}\sigma ^{-2}I(Y-X^{T}\omega)-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp[-\frac{1}{2\sigma ^{2}}(Y^{T}Y-2Y^{T}X^{T}\omega +\omega ^{T}XX^{T}\omega)-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp\{ -\frac{1}{2}[\omega ^{T}(\Sigma _{p}^{-1}+\sigma ^{-2}XX^{T})\omega -2\sigma ^{-2}Y^{T}X^{T}\omega +\sigma ^{-2}Y^{T}Y]\}](https://private.codecogs.com/gif.latex?p%28%5Comega%7CX%2CY%29%20%5Cpropto%20%5Cexp%5B-%5Cfrac%7B1%7D%7B2%5Csigma%5E%7B2%7D%7D%28Y-X%5E%7BT%7D%5Comega%29%5E%7BT%7D%28Y-X%5E%7BT%7D%5Comega%29%5D%5Ctimes%20%5Cexp%5B-%5Cfrac%7B1%7D%7B2%7D%5Comega%20%5E%7BT%7D%5CSigma_%7Bp%7D%5E%7B-1%7D%5Comega%5D%5C%5C%20%3D%5Cexp%5B-%5Cfrac%7B1%7D%7B2%7D%28Y-X%5E%7BT%7D%5Comega%29%5E%7BT%7D%5Csigma%20%5E%7B-2%7DI%28Y-X%5E%7BT%7D%5Comega%29-%5Cfrac%7B1%7D%7B2%7D%5Comega%20%5E%7BT%7D%5CSigma_%7Bp%7D%5E%7B-1%7D%5Comega%5D%5C%5C%20%3D%5Cexp%5B-%5Cfrac%7B1%7D%7B2%5Csigma%20%5E%7B2%7D%7D%28Y%5E%7BT%7DY-2Y%5E%7BT%7DX%5E%7BT%7D%5Comega%20+%5Comega%20%5E%7BT%7DXX%5E%7BT%7D%5Comega%29-%5Cfrac%7B1%7D%7B2%7D%5Comega%20%5E%7BT%7D%5CSigma_%7Bp%7D%5E%7B-1%7D%5Comega%5D%5C%5C%20%3D%5Cexp%5C%7B%20-%5Cfrac%7B1%7D%7B2%7D%5B%5Comega%20%5E%7BT%7D%28%5CSigma%20_%7Bp%7D%5E%7B-1%7D+%5Csigma%20%5E%7B-2%7DXX%5E%7BT%7D%29%5Comega%20-2%5Csigma%20%5E%7B-2%7DY%5E%7BT%7DX%5E%7BT%7D%5Comega%20+%5Csigma%20%5E%7B-2%7DY%5E%7BT%7DY%5D%5C%7D)
乍一看这个公式没有规律可言。我们先整理一下标准的多元高斯分布的概率密度表达式:
![\small p(x)=N(\mu ,\Sigma )\propto \exp[-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)]\\ =\exp[-\frac{1}{2}(x^{T}\Sigma^{-1} x-2\mu\Sigma^{-1}x+\mu^{T}\Sigma^{-1}\mu)]](https://private.codecogs.com/gif.latex?%5Csmall%20p%28x%29%3DN%28%5Cmu%20%2C%5CSigma%20%29%5Cpropto%20%5Cexp%5B-%5Cfrac%7B1%7D%7B2%7D%28x-%5Cmu%29%5E%7BT%7D%5CSigma%5E%7B-1%7D%28x-%5Cmu%29%5D%5C%5C%20%3D%5Cexp%5B-%5Cfrac%7B1%7D%7B2%7D%28x%5E%7BT%7D%5CSigma%5E%7B-1%7D%20x-2%5Cmu%5CSigma%5E%7B-1%7Dx+%5Cmu%5E%7BT%7D%5CSigma%5E%7B-1%7D%5Cmu%29%5D)
从这个公式,我们可以看到。多元高斯分布的概率密度表达式的指数项中有二次项、一次项和常数项。我们只需要将相同项的系数对应起来即可。通过观察,可以发现:
![\left\{\begin{matrix} \Sigma_{\omega}^{-1}=\Sigma_{p}^{-1}+\sigma^{-2}XX^{T}\\ \mu_{\omega}^{T}\Sigma_{\omega}^{-1}=\sigma^{-2}Y^{T}X^{T} \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20%5CSigma_%7B%5Comega%7D%5E%7B-1%7D%3D%5CSigma_%7Bp%7D%5E%7B-1%7D+%5Csigma%5E%7B-2%7DXX%5E%7BT%7D%5C%5C%20%5Cmu_%7B%5Comega%7D%5E%7BT%7D%5CSigma_%7B%5Comega%7D%5E%7B-1%7D%3D%5Csigma%5E%7B-2%7DY%5E%7BT%7DX%5E%7BT%7D%20%5Cend%7Bmatrix%7D%5Cright.)
进一步地,可以求出参数
的后验概率分布为(
为对称矩阵):
![\left\{\begin{matrix} \Sigma_{\omega}^{-1}=\Sigma_{p}^{-1}+\sigma^{-2}XX^{T}\\ \mu_{\omega}=\sigma^{-2}A^{-1}XY\\ A=\Sigma_{\omega}^{-1} \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20%5CSigma_%7B%5Comega%7D%5E%7B-1%7D%3D%5CSigma_%7Bp%7D%5E%7B-1%7D+%5Csigma%5E%7B-2%7DXX%5E%7BT%7D%5C%5C%20%5Cmu_%7B%5Comega%7D%3D%5Csigma%5E%7B-2%7DA%5E%7B-1%7DXY%5C%5C%20A%3D%5CSigma_%7B%5Comega%7D%5E%7B-1%7D%20%5Cend%7Bmatrix%7D%5Cright.)
至此,参数
的后验概率求解完成。利用得到的参数分布去估计在测试点x*时的y值,只需要将模型代入即可:
![\left\{\begin{matrix} f(x^{*})=x^{*^{T}}\omega \sim N(x^{*^{T}}\mu_{\omega}, x^{*^{T}}\Sigma_{\omega}x^{*})\\ y=f(x^{*})+\varepsilon \sim N(x^{*^{T}}\mu_{\omega}, x^{*^{T}}\Sigma_{\omega}x^{*} + \sigma ^{2}) \end{matrix}\right.](https://private.codecogs.com/gif.latex?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20f%28x%5E%7B*%7D%29%3Dx%5E%7B*%5E%7BT%7D%7D%5Comega%20%5Csim%20N%28x%5E%7B*%5E%7BT%7D%7D%5Cmu_%7B%5Comega%7D%2C%20x%5E%7B*%5E%7BT%7D%7D%5CSigma_%7B%5Comega%7Dx%5E%7B*%7D%29%5C%5C%20y%3Df%28x%5E%7B*%7D%29+%5Cvarepsilon%20%5Csim%20N%28x%5E%7B*%5E%7BT%7D%7D%5Cmu_%7B%5Comega%7D%2C%20x%5E%7B*%5E%7BT%7D%7D%5CSigma_%7B%5Comega%7Dx%5E%7B*%7D%20+%20%5Csigma%20%5E%7B2%7D%29%20%5Cend%7Bmatrix%7D%5Cright.)
本文只是GPR部分的推导,并不涉及GPR在具体问题中应该如何设计程序和迭代。个人感觉还是理解不够深入,如果哪里有错误还烦请各位指导纠正!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)