高斯过程回归(Gaussian Process Regression)的协方差矩阵计算与预测过程
题目描述
假设你有一组带噪声的观测数据 \(\{ (x_i, y_i) \}_{i=1}^n\),其中 \(y_i = f(x_i) + \epsilon_i\),\(\epsilon_i\) 是高斯噪声,并假设未知函数 \(f\) 服从高斯过程先验。任务是:
- 根据观测数据,计算高斯过程回归中预测点 \(x_*\) 处函数值 \(f_*\) 的后验分布(均值和方差);
- 详细推导协方差矩阵的计算方式,并解释其如何影响预测的不确定性。
解题过程
1. 高斯过程的基本定义
高斯过程(Gaussian Process, GP)是定义在连续域(如时间或空间)上的无限维随机过程,其中任意有限个随机变量服从联合高斯分布。它完全由均值函数 \(m(x)\) 和协方差函数(核函数) \(k(x, x')\) 确定:
\[f(x) \sim \mathcal{GP}\big(m(x), k(x, x')\big) \]
- 通常假设 \(m(x) = 0\)(可通过数据中心化实现)。
- 核函数 \(k(x, x')\) 度量 \(x\) 与 \(x'\) 处函数值的相似性。
2. 观测模型与先验
观测数据:
\[y = f(X) + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma_n^2 I) \]
其中 \(X = [x_1, \dots, x_n]^\top\),\(y = [y_1, \dots, y_n]^\top\)。
先验:
\[f(X) \sim \mathcal{N}\big(0, K(X, X)\big) \]
\(K(X, X)\) 是 \(n \times n\) 的协方差矩阵,其元素 \(K_{ij} = k(x_i, x_j)\)。
3. 联合分布与后验推导
考虑预测点 \(x_*\) 处的函数值 \(f_* = f(x_*)\)。观测值 \(y\) 与 \(f_*\) 的联合分布:
\[\begin{bmatrix} y \\ f_* \end{bmatrix} \sim \mathcal{N}\left(0, \begin{bmatrix} K(X, X) + \sigma_n^2 I & K(X, x_*) \\ K(x_*, X) & k(x_*, x_*) \end{bmatrix} \right) \]
其中:
- \(K(X, x_*)\) 是 \(n \times 1\) 向量,第 \(i\) 个元素为 \(k(x_i, x_*)\)。
- \(K(x_*, X) = K(X, x_*)^\top\)。
- \(k(x_*, x_*) = \text{var}(f_*)\)。
应用高斯条件分布公式,后验分布 \(p(f_* \mid X, y, x_*)\) 也是高斯分布:
\[\begin{aligned} \text{均值:} \quad \mu_* &= K(x_*, X) \big[ K(X, X) + \sigma_n^2 I \big]^{-1} y \\ \text{方差:} \quad \sigma_*^2 &= k(x_*, x_*) - K(x_*, X) \big[ K(X, X) + \sigma_n^2 I \big]^{-1} K(X, x_*) \end{aligned} \]
4. 协方差矩阵的构造与作用
协方差矩阵 \(K(X, X)\) 是 GP 的核心,它编码了输入点之间的相关性:
- 对角元素 \(k(x_i, x_i)\):表示每个点自身的方差(通常由核函数参数控制,如信号方差 \(\sigma_f^2\))。
- 非对角元素 \(k(x_i, x_j)\):描述 \(x_i\) 与 \(x_j\) 的相似度。常用核函数如径向基函数(RBF):
\[k(x_i, x_j) = \sigma_f^2 \exp\left( -\frac{\|x_i - x_j\|^2}{2\ell^2} \right) \]
其中 \(\ell\) 是长度尺度,控制函数平滑度;\(\sigma_f^2\) 控制输出幅度。
计算步骤:
- 对于输入矩阵 \(X\),逐对计算核函数值:
\[K_{ij} = k(x_i, x_j), \quad i,j = 1,\dots,n \]
- 加入噪声方差 \(\sigma_n^2\) 到对角线上,得到 \(K_y = K(X, X) + \sigma_n^2 I\)。这反映了观测噪声使预测更保守。
5. 预测的直观理解
- 均值 \(\mu_*\):是观测值 \(y\) 的线性组合,权重由 \(K(x_*, X) K_y^{-1}\) 决定。若 \(x_*\) 靠近某观测点 \(x_i\),则 \(k(x_*, x_i)\) 较大,该观测对预测的贡献更大。
- 方差 \(\sigma_*^2\):由先验方差 \(k(x_*, x_*)\) 减去一项“信息增益”。当 \(x_*\) 远离所有观测点时,\(K(x_*, X)\) 接近零向量,方差接近先验方差(预测不确定性大);当 \(x_*\) 接近观测点时,第二项增大,方差减小(不确定性小)。
6. 计算流程总结
- 选择核函数(如 RBF)并初始化超参数 \(\theta = (\ell, \sigma_f, \sigma_n)\)。
- 计算协方差矩阵:
\[K = \begin{bmatrix} k(x_1, x_1) & \cdots & k(x_1, x_n) \\ \vdots & \ddots & \vdots \\ k(x_n, x_1) & \cdots & k(x_n, x_n) \end{bmatrix}, \quad K_y = K + \sigma_n^2 I \]
- 对测试点 \(x_*\):
- 计算向量 \(k_* = [k(x_*, x_1), \dots, k(x_*, x_n)]^\top\)。
- 标量 \(k_{**} = k(x_*, x_*)\)。
- 求解线性系统:计算 \(\alpha = K_y^{-1} y\)(实践中用 Cholesky 分解避免直接求逆)。
- 预测:
\[\mu_* = k_*^\top \alpha, \quad \sigma_*^2 = k_{**} - k_*^\top K_y^{-1} k_* \]
7. 超参数优化
通常通过最大化边缘对数似然选择超参数:
\[\log p(y \mid X, \theta) = -\frac{1}{2} y^\top K_y^{-1} y - \frac{1}{2} \log |K_y| - \frac{n}{2} \log 2\pi \]
使用梯度下降优化 \(\theta\)。
关键点总结
- 高斯过程回归通过协方差矩阵(核函数)隐式定义了函数的平滑性与结构。
- 预测分布是高斯分布,均值给出预测值,方差量化不确定性。
- 计算复杂度主要在求 \(K_y^{-1}\),需 \(O(n^3)\) 时间,适合中等规模数据。
- 协方差矩阵决定插值行为:长度尺度 \(\ell\) 小 ⇒ 函数变化快;\(\ell\) 大 ⇒ 函数平滑。
这个框架既可用于回归,也可通过链接函数扩展至分类。