高斯过程与岭回归

高斯过程配上kernal后可以演绎出包罗万象的机器学习技法。本文说说高斯过程到岭回归的推导过程。如果今后有时间,我还会说说岭回归、PCA、Kmeans、SOM之间的关系。

高斯过程回归的假设是: 给定一些$x$的值(特征值),我们对$y$建模(预测值),并假设对应的这些$y$值服从 联合正态分布

具体来说,假设我们现在目前拥有一个训练集包含3个样本,$(x_1,y_1),(x_2,y_2),(x_3,y_3)$。这三个$y$可以存在噪声,也可以没有。这里先假设没有,因此$y$的分布可以写为:

$$\begin{bmatrix} y_1\\ y_2\\ y_3 \end{bmatrix} \sim N\left( \begin{bmatrix} 0\\ 0\\ 0 \end{bmatrix} , \begin{bmatrix} K_{11} & K_{12} & K_{13}\\ K_{21} & K_{22} & K_{23}\\ K_{31} & K_{32} & K_{33} \end{bmatrix}\right)$$

这个公式关键是协方差矩阵$K$。在这里引出了高斯过程的另一个重要假设: 如果两个$x$比较相似(eg,空间中离得比较近),那么对应的$y$值的相关性也就较高。具体地说,针对上面的例子,如果$x_1$离$x_2$要比$x_3$更近,那么依据假设 $y_3$和$y_2$ 的correlation 要比 $y_3$和$y_1$的correlation 高。也就是说,协方差矩阵中的每个元素$K_{ij}$为对应的两个$x$值$x_i, x_j$之间的相似性度量。说到相似性度量,本文不准备引出metric learning,仅提及矩阵$K$的一个重要性质:

合法的协方差矩阵是半正定矩阵 (symmetric) Positive Semi-definite Matrix。

So far so good. 在矩阵$K$中,可以使用kernal来计算相似性(根据Mercer Theorem)。支持向量机SVM中的RBF就是一种常用的kernal。在RBF的定义下,矩阵$K$中元素的计算如下:

$$K_{ij} = e^{-\lambda \|x_i - x_j\|^2}$$

当两个$x$空间中距离无穷远时,那么对应的$y$值的相关性为0,当两个$x$空间中距离为0时,那么对应的$y$值的相关性为1。在3个已知训练样本的基础上,对新来的样本$x_*$的$y_*$求解之前需要具备一个条件,那就是: $y_*$ 和 训练集里的$y_1$, $y_2$, $y_3$ 同属于一个(4维的)联合正态分布。用数学语言来表达就是:

$$\begin{bmatrix} y_1\\ y_2\\ y_3\\ y_* \end{bmatrix} \sim N\left( \begin{bmatrix} 0\\ 0\\ 0\\ 0 \end{bmatrix} , \begin{bmatrix} K_{11} & K_{12} & K_{13} & K_{1*}\\ K_{21} & K_{22} & K_{23} & K_{2*}\\ K_{31} & K_{32} & K_{33} & K_{3*}\\ K_{*1} & K_{*2} & K_{*3} & K_{**} \end{bmatrix}\right)$$

其中,$ \begin{bmatrix}K_{11} & K_{12} & K_{13}\\ K_{21} & K_{22} & K_{23}\\ K_{31} & K_{32} & K_{33} \end{bmatrix} $ 是原先的矩阵$K$,$ \begin{bmatrix}K_{1*}\\ K_{2*}\\ K_{3*} \end{bmatrix} $ = $ \begin{bmatrix}K_{*1} & K_{*2} & K_{*3} \end{bmatrix} ^T $ 作为矩阵$K_{*}$。直接利用边缘分布性质可以求出$y_*$的后验分布: $$ y_*(x,y,x_{*}) \sim N \left( \mu*, \sigma* \right) $$

$$\mu^* = K_{*}^{T} K^{-1} \begin{bmatrix}y_1\\ y_2\\ y_3 \end{bmatrix}$$

$$\sigma^* = -K_{*}^{T} K^{-1} K_{*} + K_{**} = -K_{*}^{T} K^{-1} K_{*} + 1$$

至此,无噪声条件下的高斯过程基本就是以上。下面开始推导存在噪声的高斯过程与岭回归之间的关系。存在噪声的预测值的分布: $$y = f(x) + \epsilon \ \ \ \ \ \ \ \ \epsilon \sim N(0,\sigma^2)$$

$$\begin{bmatrix} y_1\\ y_2\\ y_3\\ y_* \end{bmatrix} \sim N\left( \begin{bmatrix} 0\\ 0\\ 0\\ 0 \end{bmatrix} , \begin{bmatrix} K' & K_{*}\\ K_{*}^T & K_{**} \end{bmatrix}\right)\ \ \ \ \ K' = K + \sigma^2I$$

因此,

$$ y_{*}(x,y,x_{*}) \sim N \left( \mu*, \sigma* \right) $$

$$\mu^* = K_{*}^{T} K'^{-1} \begin{bmatrix}y_1\\ y_2\\ y_3 \end{bmatrix}$$

$$\sigma^* = -K_{*}^{T} K'^{-1} K_{*} + K_{**} = -K_{*}^{T} K'^{-1} K_{*} + 1$$

其中,$K_*$是一个3维向量,$K_{**} = 1$,令$K'^{-1} \begin{bmatrix}y_1 & y_2 & y_3 \end{bmatrix}^T$为$\vec \alpha$,那么$\mu^*$就可以改写为: $$E(y_*) = \mu^* = \sum_{i = 1}^3 {\alpha_i \cdot K(x_i,x_*)}$$ 从这个角度看,测试样本预测值的期望是其与现有样本特征Kernal距离的线性组合。与岭回归的目标函数与算式相比: $$目标函数:\ \ \ \ \hat{\theta} = argmin_{\theta}\|y-x\theta\|_2^2 + \delta^2\|\theta\|^2$$ $$预测函数(加入正则项后变为凸优化):\ \ \ \ y_{*} = x_*\theta = x_*x^T[xx^T+\delta I]^{-1}y$$ 把向量的点积看做是最简单的核函数即:$K(x,x_{*}) = xx_{*}^T$ 又有:$K'' = K + \delta^2I = xx^T + \delta^2I$ 那么岭回归的预测函数可以改写成: $$y_{*} = x_*\theta = K(x,x_{*})K''^{-1}y$$ 可以看出,当高斯过程的核函数为点积形式时就是岭回归。 尽管岭回归在regression中的重要性不言而喻,但是其仅仅是高斯过程的一个特殊情形。