# 0x02 前置基础 高斯过程回归

## 引入

对于实际问题, 假设我们有$$n$$个的实际的样本点, 对应的**指示变量**(训练集)的值为$$x\_1,x\_2,\cdots,x\_n$$, 在这些点上的观测值分别为$$y\_1,y\_2,\cdots,y\_n$$. 假设这些样本都来自于**高斯过程**$$f(x)$$.

我们认为$$x\_1,x\_2,\cdots,x\_n$$就是系统所对应的**高斯过程**$$f(x)$$的采样, 在这$$n$$个点抽样组成了一个$$n$$维的**多维高斯分布**. 而观测值$$y\_1,y\_2,\cdots,y\_n$$是这个$$n$$维的**多维高斯分布**中采样得到的一个点.

注意上面两个采样的区别:

* 前者是对随机过程的采样, 组成一个多维随机变量的分布, 是在指示变量维度上进行的采样
* 后者是对多维随机变量的采样, 得到的是具体的观测值

我们把$$y$$看为是一个$$n$$维的的**多维高斯分布**, $$y\_1,y\_2,\cdots,y\_n$$是这个多维高斯分布的观测值. 由于观测通常是带噪声的, 所以$$y$$的表示如下:

$$y=f(x)+N(0,\sigma\_n^2)$$

其中, $$y=y(x)$$, $$f(x)$$是随机过程在$$n$$个样本点上采样得到的$$n$$维的多维高斯分布, $$N(0,\sigma\_n^2)$$是一个$$n$$维的**高斯噪声**.

准确来说, $$f(x)$$本身就是一个**随机过程**, 表示为$$f\sim{GP(0,K)}$$, 上式中的$$f(x)$$其实是它自身在指示变量上的采样得到的多维高斯分布. 其中, **协方差函数**$$K(x,x^{'})$$一般是某个**核函数**. 核函数可以有多种选择. 由于均值函数为零函数, 因此高斯过程完全由协方差函数决定, 这样简化了我们分析计算的过程, 而模型结果最后的好坏完全取决于协方差函数即核函数的选择, 不同的核函数对应于不同的高斯过程.

由此可见, 观测值的分布完全是由协方差函数即核函数决定的, 更准确的说, 是由选择的核函数的形式以及这个核函数的参数决定的.

**高斯回归过程**就是根据训练样本集确定核函数参数从而确定模型的. 对于新的样本(指示变量)$$x$$, 到对应的观测值得分布. 注意与其他的回归预测不同, 此处的预测得到的不是一个具体值, 而是一个分布.

## 本质

高斯过程回归的本质就是: 把低维空间(训练样本数量决定的多维高斯分布)映射到高维空间(高斯过程对应的无限维空间). 用若干样本推测整个空间上分布的情况.

## 高斯过程定义

通过一个**一元**的**均值函数**以及一个**二元**的**核函数**(协方差函数), 我们就能定义一个高斯过程. 常见的核函数如下图:

![](https://images2017.cnblogs.com/blog/1303172/201801/1303172-20180104104413065-324397649.png)

## 学习方法

这里的学习指的是**高斯过程回归**, 即根据训练集确定高斯过程的**参数**.

我们假定训练集和测试集(预测样本集合)来自于同一高斯随机过程, 因此可以得到训练集合测试集组成的联合多维高斯分布. 只需要根据条件分布$$P(y^*|y)$$就可以得到测试集$$y^*$$的分布, 可以使用$$y^\*$$分布的均值作为回归结果.

结合一个例子解释高斯过程回归的学习过程:

未知函数$$f: R\to{R}$$, 就是我们最后要估计的高斯过程(当然这里还是一个分布).

如下图所示, 我们知道3个样本点$$x\_1,x\_2,x\_3$$及其观测值$$f\_1,f\_2,f\_3$$

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian1.png)

根据$$y=f(x)+N(0,\sigma\_n^2)$$及$$f\sim{GP(0,K)}$$, 可以得到如下的三维高斯分布:

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian2-1024x202.png)

这时因为$$f(x)$$也是一个均值向量零向量的三维高斯分布, 而噪声也是一个均值向量零向量的三维高斯分布, 将两个高斯分布相加, 用一个综合的三维高斯分布表示, 这个三维高斯分布的均值向量仍然是零向量. 而这里协方差矩阵中的每个值, 都是根据**核函数**得到的, 例如我们使用高斯核就能得到如下的协方差矩阵:

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian4-1024x652.png)

现在测试集中一个待预测的样本点$$x^*$$, 我们希望得到它对应的观测值的预测$$y^*$$:

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian5.png)

之前说过, 我们假设训练集样本与测试集样本来自于一个随机过程, 那么就能组成一个新的**四维联合分布**, 而且这个分布也是**多维高斯分布**:

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian6-1024x564.png)

黄色部分是原来训练集中样本之间的协方差矩阵, 绿色部分为新增的样本$$x^*$$与原来的三个样本通过**核函数**计算得到的, 组成新的四维的协方差矩阵. 那么$$(f,f^*)$$的**联合分布**$$P(f,f^*)$$也就得到了. 这里的$$f^*$$是一个一维的**高斯分布**.

高斯分布的参数可以由下图中的公式得到:

![](http://dataunion.org/wp-content/uploads/2015/05/gaussian7-1024x416.png)

这样, 就得到了关于新样本观测值的一个预测**分布**, 注意这里得到是一个分布, 而不是一个具体的值. 如果我们需要具体的值, 可以用分布的期望等来代替.

至此, GPR的步骤就完成了.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kerasnoone.gitbook.io/garnet/ji-qi-xue-xi/chao-can-shu-tiao-jie/bei-ye-si-you-hua/0x02-qian-zhi-ji-chu-gao-si-guo-cheng-hui-gui.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
