高斯过程回归(Gaussian Process Regression, GPR)的协方差函数选择与超参数优化过程
题目描述
高斯过程回归是一种非参数贝叶斯方法,用于解决回归问题。其核心思想是将函数视为随机过程的实现,通过协方差函数(核函数)定义函数值的相关性。题目要求详细解释如何选择协方差函数,并如何通过优化超参数(如核函数的长度尺度、方差等)使模型适配数据。
解题过程
1. 高斯过程回归的基本模型
- 定义:高斯过程是随机变量的集合,其中任意有限个变量服从联合高斯分布。在回归中,我们假设函数 \(f(\mathbf{x})\) 服从高斯过程:
\[ f(\mathbf{x}) \sim \mathcal{GP}(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}')) \]
其中 \(m(\mathbf{x})\) 是均值函数(通常设为0),\(k(\mathbf{x}, \mathbf{x}')\) 是协方差函数。
- 预测公式:给定训练数据 \(\mathbf{X} = [\mathbf{x}_1, \dots, \mathbf{x}_n]\) 和观测值 \(\mathbf{y}\),新输入 \(\mathbf{x}^*\) 的预测均值和方差为:
\[ \mu(\mathbf{x}^*) = \mathbf{k}_*^T (\mathbf{K} + \sigma_n^2 \mathbf{I})^{-1} \mathbf{y}, \sigma^2(\mathbf{x}^*) = k(\mathbf{x}^*, \mathbf{x}^*) - \mathbf{k}_*^T (\mathbf{K} + \sigma_n^2 \mathbf{I})^{-1} \mathbf{k}_* \]
其中 \(\mathbf{K}\) 是训练数据的协方差矩阵,\(\mathbf{k}_*\) 是测试点与训练数据的协方差向量,\(\sigma_n^2\) 是噪声方差。
2. 协方差函数的选择
协方差函数决定了函数的平滑性、周期性和趋势等性质。常见核函数及其特性:
- 径向基函数(RBF)核(也称平方指数核):
\[ k(\mathbf{x}, \mathbf{x}') = \sigma_f^2 \exp\left(-\frac{\|\mathbf{x} - \mathbf{x}'\|^2}{2l^2}\right) \]
- \(\sigma_f^2\) 控制函数方差,\(l\) 控制长度尺度(函数变化速度)。
- 适用于平滑且无限可微的函数。
- 马特恩核(Matérn Kernel):
\[ k(\mathbf{x}, \mathbf{x}') = \sigma_f^2 \frac{2^{1-\nu}}{\Gamma(\nu)} \left(\frac{\sqrt{2\nu}\|\mathbf{x} - \mathbf{x}'\|}{l}\right)^\nu K_\nu\left(\frac{\sqrt{2\nu}\|\mathbf{x} - \mathbf{x}'\|}{l}\right) \]
- \(\nu\) 控制平滑度(常用 \(\nu=3/2\) 或 \(5/2\)),比RBF核更适应粗糙函数。
- 周期核(Periodic Kernel):
\[ k(\mathbf{x}, \mathbf{x}') = \sigma_f^2 \exp\left(-\frac{2\sin^2(\pi\|\mathbf{x} - \mathbf{x}'\|/p)}{l^2}\right) \]
- \(p\) 是周期参数,用于建模周期性模式。
- 线性核:
\[ k(\mathbf{x}, \mathbf{x}') = \sigma_b^2 + \sigma_f^2 (\mathbf{x} \cdot \mathbf{x}') \]
- 适用于线性趋势,可结合其他核表达复杂结构。
选择策略:
- 若数据平滑且连续,优先选择RBF核。
- 若数据有周期性,使用周期核或组合核(如RBF×周期核)。
- 若数据有线性趋势,在线性核基础上添加RBF核捕捉残差。
3. 超参数优化方法
超参数 \(\theta\)(如RBF核的 \(l, \sigma_f^2\) 和噪声方差 \(\sigma_n^2\))通过最大化边缘似然(Marginal Likelihood)优化:
- 边缘似然公式:
\[ \log p(\mathbf{y} \mid \mathbf{X}, \theta) = -\frac{1}{2} \mathbf{y}^T (\mathbf{K} + \sigma_n^2 \mathbf{I})^{-1} \mathbf{y} - \frac{1}{2} \log |\mathbf{K} + \sigma_n^2 \mathbf{I}| - \frac{n}{2} \log 2\pi \]
第一项是数据拟合项,第二项是复杂度惩罚项。
- 梯度下降优化:
- 计算边缘似然对超参数 \(\theta_j\) 的梯度:
\[ \frac{\partial \log p(\mathbf{y} \mid \mathbf{X}, \theta)}{\partial \theta_j} = \frac{1}{2} \mathbf{y}^T \mathbf{K}^{-1} \frac{\partial \mathbf{K}}{\partial \theta_j} \mathbf{K}^{-1} \mathbf{y} - \frac{1}{2} \operatorname{tr}\left(\mathbf{K}^{-1} \frac{\partial \mathbf{K}}{\partial \theta_j}\right) \]
- 使用梯度上升或优化器(如L-BFGS)迭代更新 \(\theta\)。
- 注意事项:
- 初始化超参数:根据数据尺度设置初始值(如 \(l\) 初始为特征标准差的倍数)。
- 避免局部最优:多次随机初始化并选择最优解。
- 数值稳定性:协方差矩阵 \(\mathbf{K}\) 可能病态,需添加微小扰动(如 \(10^{-6} \mathbf{I}\))。
4. 完整流程示例
- 数据预处理:标准化输入特征和输出目标。
- 选择核函数:根据数据特性选择单核或组合核(如RBF+线性核)。
- 初始化超参数:基于数据范围设置合理初值。
- 优化超参数:最大化边缘似然,监控收敛情况。
- 预测与验证:使用优化后的超参数计算预测均值和方差,评估泛化性能(如均方误差)。
关键点总结
- 核函数选择依赖数据特性,需结合先验知识。
- 超参数优化本质是平衡拟合程度与模型复杂度。
- 边缘似然梯度计算涉及矩阵求逆,需高效数值方法(如Cholesky分解)。