Gaussian Processes Regression

本文记录高斯过程回归的笔记

贝叶斯线性模型(Bayesian linear model)

标准的线性模型如下: $$ f(x) = x^Tw, \ \ \ \ y = f(x) + \varepsilon $$ 我们假定误差符合标准正太分布$\varepsilon \sim N(0, \sigma^2_n)$可得似然概率为: $$ p(\mathbf{y | X, w}) = \prod_{i=1}^n p(y_i | x_i, w) = \frac{1}{(2\pi \sigma^2_n)^{n/2}}\exp(-\frac{1}{2\sigma_n^2} |\mathbf{y-X^Tw}|^2) = N(\mathbf{X^Tw}, \sigma_n^2 \mathbf{I}) $$ 其中$|\dot|$表示欧几里德长度。在贝叶斯方法中,我们还需要假定一个对于参数$w$的先验分布用来表示我们的先验知识。我们假定参数$w$服从高斯分布: $$ \mathbf{w} \sim N(0, \Sigma_p) $$ 根据贝叶斯定理我们可以求出参数$\mathbf{w}$的后验概率为: $$ posterior = \frac{likelihood \times prior}{marginal\ likelihood} $$ $$ p(\mathbf{w| y,}X) = \mathbf{\frac{p(y| X, w)p(w)}{p(y|X)}} $$ 其中$p(y|X)= \int p(y| X, w)p(w)dw$.这个后验概率综合了先验概率和似然概率,完整描述了我们对参数所知道的的一切。

进一步的进行化简,我们可得: $$ p(\mathbf{w|X, y}) \propto \exp(-\frac{1}{2\sigma^2_n}(y-X^Tw)^T(y - X^Tw))\exp(-\frac{1}{2}w^T \Sigma_p^{-1} w) $$ $$ p(\mathbf{w|X, y}) \propto \exp(-\frac{1}{2} (w- \bar{w})^T (\frac{1}{\sigma_n^2} XX^T + \Sigma_p^{-1}) (w-\bar{w})), $$ 其中$\bar{w} = \sigma_n^{-2}(\sigma_n^{-2} XX^T + \Sigma_p^{-1})^{-1} Xy$.可以看出$p(w|X, y)$也是符合一个高斯分布: $$ p(w|X,y) \sim N(\bar{w} = \frac{1}{\sigma_n^2} A^{-1}Xy, A^{-1}) $$ 其中$A = \sigma_{n}^{-2}XX^T + \Sigma_p^{-1}$

在进行预测的时候,贝叶斯线性模型是取所有可能参数$w$乘以他们各自的后验概率,其它非贝叶斯方法的做法是按照一个标准取一个参数$w$。(To make predictions for a test case we average over all possible parameter values, weighted by their posterior probability. This is in contrast to non-Bayesian schemes, where a single parameter in typically chosen by some criterion.) $$ p(f_{\ast} | x_{\ast}, X, y) = \int p(f_\ast | x_\ast , w) p(w| X, y)dw $$ 可以看出这里依旧是一个高斯分布$p(f_\ast | x_\ast, X, y) \sim N(\frac{1}{\sigma_n^2} x_\ast^T A^{-1} Xy, x_\ast^T A^{-1} x_\ast)$.

输入映射至特征空间

贝叶斯线性模型方法受限于其有限的表达能力。为了克服该缺点,很容易的可以想到可以使用基函数(basis functions)将输入映射到更高为的空间,然后再使用线性模型。

当引入基函数进行映射后概率表示为: $$ p(f_\ast | x_\ast, X, y) \sim N(\frac{1}{\sigma_n^2} \phi(x_\ast)^T A^{-1} \Phi y, \phi(x_\ast)^T A^{-1} \phi(x_\ast)) $$ 其中函数$\phi(x)$为基函数,$\Phi = \Phi(X)$, $A = \sigma_n^{-2} \Phi \Phi^T + \Sigma_p^{-1}$. 由于上式求解需要计算矩阵$A$的逆,当矩阵很大的时候将会是很大的计算量。我们可以进一步重写该方程: $$ p(f_\ast | x_\ast , X, y) \sim N(\phi_\ast ^T \Sigma_p \Phi(K + \sigma_n^2 \mathbf{I})^{-1}y, \phi_\ast^T \Sigma_p \phi_\ast - \phi_\ast^T \Sigma_p \Phi (K + \sigma_n^2 \mathbf{I})^{-1} \Phi^T \Sigma_p \phi_\ast) $$ 其中$\phi(x_\ast) = \phi_\ast$, $K = \Phi^T \Sigma_p \Phi$

我们定义$k(x, x') = \phi(x)^T \Sigma_p \phi(x')$, $k(\cdot, \cdot)$被称为方差函数或者核(covariance function or kernel). 定义$\varphi(x) = \Sigma_p^{1/2} \phi(x)$,我们可以得到$k(x, x') = \varphi(x)^T \varphi(x')$. 得到了$k(x, x')$的形式之后,我们就可以使用核方法了(kernel trick).

直观理解

我们进行回归的目地是根据现有的训练数据$D$来预测测试数据$X$的回归值$Y$: $$ P(Y| D, X) = \int_w P(Y, w | D, X)dw = \int_w P(Y | D, X) P(w | D)dw $$ 本来上式并不可解的,但是在特殊情况下似然概率和先验概率都为高斯分布时,上式即也是高斯分布,并且可以得到其均值和方差: $$ P(y_\ast | D, x) \sim N(u_{y_\ast | D}, \Sigma_{y_\ast | D}), $$ 其中 $$ u_{y_\ast | D} = K_\ast^T (K + \sigma^2I)^{-1}y, $$ $$ \Sigma_{y_\ast | D} = K_{\ast \ast} - K_{\ast}^T (K + \sigma^2 I)^{-1} K_\ast. $$ 所以我们可以直接忽略模型参数$w$直接计算出分布函数。

高斯过程回归(Gaussian Process Regression, GPR)

有上小节,我们可知基于假设,我们可以得到回归值$y$满足于高斯分布:

$$ \left [ \begin{array}{c} y_1\\ y_2 \\ \vdots \\ y_n \\ y_t \end{array} \right ] \sim N(0, \Sigma) $$

此处的均值为0是默认了预处理将y减去它的均值。所有的训练和测试标签都是基于一个(n+m)维的高斯分布采样得到的,其中n代表训练样本数量,m代表测试样本数量。

对于这个高斯分布能否给予我们有意义的解,关键在于我们选择的协方差矩阵$\Sigma$,通常认为协方差矩阵需要满足以下性质:

  1. $\Sigma_{ij} = E(Y_i - u_i)(Y_j - u_j)$
  2. $\Sigma$总是半正定
  3. $\Sigma_{ii} = Variance(Y_i)$, 即$\Sigma_{ii} \geq 0$.
  4. 如果$Y_i$ 与$Y_j$相互独立(比如, $x_i$与$x_j$差别很大),则$\Sigma_{ij} = \Sigma_{ji} = 0$
  5. 如果$x_i$和$x_j$很类似,则$\Sigma_{ij} = \Sigma_{ji} > 0$.

可以核函数可满足以上性质,所以我们可以使用核函数$\Sigma_{ij} = K(x_i, x_j)$. 如此协方差矩阵可以表示为:

$$ \left [ \begin{array}{c} K, K_\ast \\ k_\ast^T , K_{\ast \ast} \end{array} \right ] $$

其中$K$是训练核矩阵(training kernel matrix), $K_\ast$是训练-测试核矩阵(training-testing kernel matrix), $K_{\ast \ast}$是测试核矩阵(testing kernel matrix). 所以条件概率分布(noise-free)可以标识为: $$ f_\ast | (Y_1 = y_1, \cdots , Y_n = y_n, x_1, \cdots , x_n , x_t) \sim N(K_{\ast}^T K^{-1}y , K_{\ast \ast} - K_{\ast}^T K^{-1} K_{\ast}). $$

添加高斯噪声

在实际中我们所观察的数据$y$其实是带有噪声的$\hat{Y}_i = f_i + \epsilon_i$,我们假设该噪声是一个独立的符合高斯分布的变量$\epsilon \sim N(0, \sigma^2)$, 在这种情况下,协方差矩阵为$\hat{\Sigma} = \Sigma + \sigma^2 I$, 将其带入到高斯过程后验分布概率中得到:

$$ f_\ast | (Y_1 = y_1, \cdots , Y_n = y_n, x_1, \cdots , x_n , x_t) \sim N(K_{\ast}^T (K + \sigma^2 I)^{-1}y , K_{\ast \ast} + \sigma^2 I- K_{\ast}^T (K + \sigma^2 I)^{-1} K_{\ast}). $$

参考

  1. Lecture 15: Gaussian Processes
  2. A Visual Exploration of Gaussian Processes
  3. Kernel Cookbook
updatedupdated2021-11-062021-11-06