高斯过程回归(Gaussian Process Regression)的核函数选择与超参数优化策略详解
字数 5254 2025-12-13 10:59:56

高斯过程回归(Gaussian Process Regression)的核函数选择与超参数优化策略详解

题目描述

本次讲解高斯过程回归(GPR)中一个关键的实践问题:如何选择合适的核函数(协方差函数) 以及如何对其超参数进行有效优化。高斯过程回归是一种非参数贝叶斯模型,其预测性能很大程度上取决于核函数的选择及其超参数的设定。我们将详细探讨常用核函数的特性、适用场景,并深入讲解基于最大化边际似然(Marginal Likelihood) 的超参数优化原理与步骤。

解题过程

我们将分三步进行:1) 理解核函数的作用与常见类型;2) 掌握超参数优化的目标——边际似然;3) 学习优化边际似然的具体方法。

步骤一:理解核函数在高斯过程回归中的作用与常见类型

在高斯过程回归中,核函数 \(k(\mathbf{x}_i, \mathbf{x}_j)\) 定义了任意两个输入点 \(\mathbf{x}_i\)\(\mathbf{x}_j\) 之间的协方差。它编码了我们对未知函数 \(f(\mathbf{x})\) 行为的先验假设,例如平滑程度、周期性、趋势等。

  1. 核函数的关键性质

    • 必须是对称的:\(k(\mathbf{x}_i, \mathbf{x}_j) = k(\mathbf{x}_j, \mathbf{x}_i)\)
    • 对于任何点集,由核函数计算的协方差矩阵必须是半正定的,以确保概率分布的合理性。
  2. 常见核函数类型及其适用场景

    • 平方指数核(Squared Exponential / RBF Kernel):

\[ k_{SE}(\mathbf{x}_i, \mathbf{x}_j) = \sigma_f^2 \exp\left(-\frac{1}{2l^2} \|\mathbf{x}_i - \mathbf{x}_j\|^2\right) \]

 - 参数:$\sigma_f^2$ 是信号方差(控制函数输出的幅度),$l$ 是长度尺度(控制函数的平滑程度,$l$越大,函数变化越缓慢)。
 - 特性:产生无限次可微的、非常平滑的函数。适用于建模平滑变化的过程,是最常用的核之一。
  • 马特恩核(Matérn Kernel):

\[ k_{\text{Matérn}}(\mathbf{x}_i, \mathbf{x}_j) = \sigma_f^2 \frac{2^{1-\nu}}{\Gamma(\nu)} \left(\frac{\sqrt{2\nu}}{l} r\right)^\nu K_\nu \left(\frac{\sqrt{2\nu}}{l} r\right) \]

 其中 $ r = \|\mathbf{x}_i - \mathbf{x}_j\| $,$\nu$ 是平滑度参数,$K_\nu$ 是第二类修正贝塞尔函数。
 - 常见特例:当 $\nu = 3/2$ 或 $5/2$ 时,表达式可简化。马特恩核产生的函数比RBF核粗糙。例如,$\nu=3/2$ 对应的函数一次可微,适合对光滑性要求稍低的场景(如物理模型)。
  • 周期核(Periodic Kernel):

\[ k_{\text{Per}}(\mathbf{x}_i, \mathbf{x}_j) = \sigma_f^2 \exp\left(-\frac{2 \sin^2(\pi \|\mathbf{x}_i - \mathbf{x}_j\| / p)}{l^2}\right) \]

 - 参数:$p$ 是周期长度。
 - 特性:用于建模具有严格周期性的函数,例如季节性情或天文学数据。
  • 线性核(Linear Kernel):

\[ k_{\text{Lin}}(\mathbf{x}_i, \mathbf{x}_j) = \sigma_b^2 + \sigma_f^2 (\mathbf{x}_i - \mathbf{c})^\top (\mathbf{x}_j - \mathbf{c}) \]

 - 特性:实际上对应的是贝叶斯线性回归。可以叠加在其他核上以引入偏移或趋势。
  1. 核函数的组合
    • 核函数可以通过相加相乘来组合,以构建更复杂的协方差结构。
    • 例如:RBF + Linear 可以建模一个具有线性趋势的平滑偏离。Periodic * RBF 可以建模一个周期性但每个周期内形状平滑变化的函数。

步骤二:掌握超参数优化的目标——边际似然

高斯过程回归的超参数 \(\theta\) 包括核函数的所有参数(如 \(l, \sigma_f, p\) 等)以及观测噪声的方差 \(\sigma_n^2\)。我们通过最大化边际似然(证据) 来优化这些参数。

  1. 边际似然的公式
    对于训练数据 \(\mathbf{X} = [\mathbf{x}_1, ..., \mathbf{x}_n]^\top\) 和观测目标 \(\mathbf{y} = [y_1, ..., y_n]^\top\),假设噪声服从独立高斯分布 \(y_i = f(\mathbf{x}_i) + \epsilon_i, \epsilon_i \sim \mathcal{N}(0, \sigma_n^2)\),则观测的边际似然为:

\[ p(\mathbf{y} | \mathbf{X}, \theta) = \int p(\mathbf{y} | \mathbf{f}, \mathbf{X}, \theta) p(\mathbf{f} | \mathbf{X}, \theta) d\mathbf{f} = \mathcal{N}(\mathbf{y} | \mathbf{0}, \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_n^2 \mathbf{I}) \]

其中 \(\mathbf{K}\) 是由核函数计算的 \(n \times n\) 协方差矩阵,其元素 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)

  1. 对数边际似然
    为便于计算,我们最大化对数边际似然:

\[ \log p(\mathbf{y} | \mathbf{X}, \theta) = -\frac{1}{2} \mathbf{y}^\top (\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 \]

这个公式包含三个部分,在优化时有明确的直观解释:

  • 第一项(数据拟合项)\(-\frac{1}{2} \mathbf{y}^\top \mathbf{K}_y^{-1} \mathbf{y}\),其中 \(\mathbf{K}_y = \mathbf{K} + \sigma_n^2 \mathbf{I}\)。该项鼓励模型拟合数据。当预测与数据越一致(在考虑协方差结构下)时,此项的值越大(因为它是负的二次型,拟合好时内积小,负得少)。
  • 第二项(复杂度惩罚项)\(-\frac{1}{2} \log |\mathbf{K}_y|\)。该项是模型复杂度的惩罚。\(|\mathbf{K}_y|\) 与协方差矩阵的特征值乘积有关,特征值大(即核函数参数使得函数变化剧烈)会导致行列式大,从而使该项更负,起到惩罚过于复杂模型的作用。
  • 第三项:常数,优化时可忽略。

因此,最大化边际似然自动在数据拟合模型复杂度之间进行权衡,这是一种自动化的奥卡姆剃刀

步骤三:学习优化对数边际似然的具体方法

我们的目标是找到超参数 \(\theta\) 以最大化 \(\log p(\mathbf{y} | \mathbf{X}, \theta)\)。由于这个函数关于 \(\theta\) 通常是非凸的,我们使用基于梯度的方法。

  1. 计算对数边际似然关于超参数的梯度
    为了使用梯度下降或共轭梯度法等优化算法,我们需要计算梯度 \(\frac{\partial}{\partial \theta_j} \log p(\mathbf{y} | \mathbf{X}, \theta)\)。经过推导,可得:

\[ \frac{\partial}{\partial \theta_j} \log p(\mathbf{y} | \mathbf{X}, \theta) = \frac{1}{2} \mathbf{y}^\top \mathbf{K}_y^{-1} \frac{\partial \mathbf{K}_y}{\partial \theta_j} \mathbf{K}_y^{-1} \mathbf{y} - \frac{1}{2} \text{tr}\left(\mathbf{K}_y^{-1} \frac{\partial \mathbf{K}_y}{\partial \theta_j} \right) \]

其中 \(\frac{\partial \mathbf{K}_y}{\partial \theta_j}\) 是协方差矩阵对第 \(j\) 个超参数的导数矩阵。梯度的计算依赖于核函数对参数的解析导数

  1. 优化流程
    a. 初始化:为超参数 \(\theta\) 选择合理的初始值。例如,长度尺度 \(l\) 可以初始化为输入特征的平均距离,信号方差 \(\sigma_f^2\) 初始化为目标变量 \(\mathbf{y}\) 的方差,噪声方差 \(\sigma_n^2\) 初始化为一个较小的值(如 \(\sigma_f^2/10\))。
    b. 迭代优化

    • 在每次迭代中,用当前的 \(\theta\) 计算协方差矩阵 \(\mathbf{K}_y\)
    • 计算 \(\mathbf{K}_y^{-1} \mathbf{y}\) 和对数行列式 \(\log |\mathbf{K}_y|\)(通常通过Cholesky分解 \(\mathbf{K}_y = \mathbf{L}\mathbf{L}^\top\) 稳定地计算,因为 \(\mathbf{K}_y\) 是对称正定的)。
    • 计算对数边际似然值及其关于每个超参数的梯度。
    • 使用梯度优化器(如共轭梯度法、L-BFGS-B等)更新 \(\theta\),以增大对数边际似然。
      c. 收敛:当参数变化或似然值增长小于设定阈值时停止。
  2. 实际注意事项

    • 数值稳定性:直接计算 \(\mathbf{K}_y^{-1}\)\(|\mathbf{K}_y|\) 可能不稳定。使用Cholesky分解是标准做法。设 \(\mathbf{L} = \text{cholesky}(\mathbf{K}_y)\),则:
      • \(\mathbf{K}_y^{-1} \mathbf{y} = \mathbf{L}^{-\top} (\mathbf{L}^{-1} \mathbf{y})\) (通过两次三角矩阵求解)。
      • \(\log |\mathbf{K}_y| = 2 \sum_i \log L_{ii}\)
    • 局部最优:对数边际似然可能存在多个局部极大值。通常建议从多个不同的初始点开始优化,选择得到最大边际似然的那组参数。
    • 参数约束:超参数通常有约束(如长度尺度、噪声方差必须为正)。在优化时,可以对参数取对数(\(\log \theta\))来确保其在整个实数域优化,并自动满足正约束。
  3. 核函数选择策略
    在实践中,核函数的选择通常基于:

    • 领域知识:对数据生成过程的理解(例如,是否具有周期性)。
    • 可视化探索:绘制数据,观察趋势、周期性和噪声水平。
    • 模型比较:可以尝试几个合理的候选核,分别优化其超参数,比较它们在验证集上的性能(如均方误差、负对数似然),或使用贝叶斯模型选择比较边际似然。通常,边际似然本身可以作为模型比较的一个依据(但需注意,边际似然倾向于选择更简单的模型,因为它包含了复杂度惩罚)。

总结

在高斯过程回归中,核函数定义了函数空间的先验特性,而超参数优化通过最大化边际似然,从数据中学习这些特性的具体尺度(如平滑度、周期长度)。这个过程实现了自动的模型复杂度控制,并通过梯度优化高效完成。理解不同核函数的特性并掌握基于边际似然的优化流程,是成功应用高斯过程回归解决实际回归问题的关键。

高斯过程回归(Gaussian Process Regression)的核函数选择与超参数优化策略详解 题目描述 本次讲解高斯过程回归(GPR)中一个关键的实践问题:如何选择合适的 核函数(协方差函数) 以及如何对其 超参数 进行有效 优化 。高斯过程回归是一种非参数贝叶斯模型,其预测性能很大程度上取决于核函数的选择及其超参数的设定。我们将详细探讨常用核函数的特性、适用场景,并深入讲解基于最大化 边际似然(Marginal Likelihood) 的超参数优化原理与步骤。 解题过程 我们将分三步进行:1) 理解核函数的作用与常见类型;2) 掌握超参数优化的目标——边际似然;3) 学习优化边际似然的具体方法。 步骤一:理解核函数在高斯过程回归中的作用与常见类型 在高斯过程回归中,核函数 \( k(\mathbf{x}_ i, \mathbf{x}_ j) \) 定义了任意两个输入点 \(\mathbf{x}_ i\) 和 \(\mathbf{x}_ j\) 之间的协方差。它编码了我们对未知函数 \( f(\mathbf{x}) \) 行为的先验假设,例如平滑程度、周期性、趋势等。 核函数的关键性质 : 必须是对称的:\( k(\mathbf{x}_ i, \mathbf{x}_ j) = k(\mathbf{x}_ j, \mathbf{x}_ i) \)。 对于任何点集,由核函数计算的协方差矩阵必须是 半正定 的,以确保概率分布的合理性。 常见核函数类型及其适用场景 : 平方指数核(Squared Exponential / RBF Kernel) : \[ k_ {SE}(\mathbf{x}_ i, \mathbf{x}_ j) = \sigma_ f^2 \exp\left(-\frac{1}{2l^2} \|\mathbf{x}_ i - \mathbf{x}_ j\|^2\right) \] 参数:\(\sigma_ f^2\) 是信号方差(控制函数输出的幅度),\(l\) 是长度尺度(控制函数的平滑程度,\(l\)越大,函数变化越缓慢)。 特性:产生无限次可微的、非常平滑的函数。适用于建模平滑变化的过程,是最常用的核之一。 马特恩核(Matérn Kernel) : \[ k_ {\text{Matérn}}(\mathbf{x}_ i, \mathbf{x} j) = \sigma_ f^2 \frac{2^{1-\nu}}{\Gamma(\nu)} \left(\frac{\sqrt{2\nu}}{l} r\right)^\nu K \nu \left(\frac{\sqrt{2\nu}}{l} r\right) \] 其中 \( r = \|\mathbf{x}_ i - \mathbf{x} j\| \),\(\nu\) 是平滑度参数,\(K \nu\) 是第二类修正贝塞尔函数。 常见特例:当 \(\nu = 3/2\) 或 \(5/2\) 时,表达式可简化。马特恩核产生的函数比RBF核粗糙。例如,\(\nu=3/2\) 对应的函数一次可微,适合对光滑性要求稍低的场景(如物理模型)。 周期核(Periodic Kernel) : \[ k_ {\text{Per}}(\mathbf{x}_ i, \mathbf{x}_ j) = \sigma_ f^2 \exp\left(-\frac{2 \sin^2(\pi \|\mathbf{x}_ i - \mathbf{x}_ j\| / p)}{l^2}\right) \] 参数:\(p\) 是周期长度。 特性:用于建模具有严格周期性的函数,例如季节性情或天文学数据。 线性核(Linear Kernel) : \[ k_ {\text{Lin}}(\mathbf{x}_ i, \mathbf{x}_ j) = \sigma_ b^2 + \sigma_ f^2 (\mathbf{x}_ i - \mathbf{c})^\top (\mathbf{x}_ j - \mathbf{c}) \] 特性:实际上对应的是贝叶斯线性回归。可以叠加在其他核上以引入偏移或趋势。 核函数的组合 : 核函数可以通过 相加 或 相乘 来组合,以构建更复杂的协方差结构。 例如: RBF + Linear 可以建模一个具有线性趋势的平滑偏离。 Periodic * RBF 可以建模一个周期性但每个周期内形状平滑变化的函数。 步骤二:掌握超参数优化的目标——边际似然 高斯过程回归的超参数 \(\theta\) 包括核函数的所有参数(如 \(l, \sigma_ f, p\) 等)以及观测噪声的方差 \(\sigma_ n^2\)。我们通过最大化 边际似然(证据) 来优化这些参数。 边际似然的公式 : 对于训练数据 \(\mathbf{X} = [ \mathbf{x}_ 1, ..., \mathbf{x}_ n]^\top\) 和观测目标 \(\mathbf{y} = [ y_ 1, ..., y_ n]^\top\),假设噪声服从独立高斯分布 \(y_ i = f(\mathbf{x} i) + \epsilon_ i, \epsilon_ i \sim \mathcal{N}(0, \sigma_ n^2)\),则观测的边际似然为: \[ p(\mathbf{y} | \mathbf{X}, \theta) = \int p(\mathbf{y} | \mathbf{f}, \mathbf{X}, \theta) p(\mathbf{f} | \mathbf{X}, \theta) d\mathbf{f} = \mathcal{N}(\mathbf{y} | \mathbf{0}, \mathbf{K}(\mathbf{X}, \mathbf{X}) + \sigma_ n^2 \mathbf{I}) \] 其中 \(\mathbf{K}\) 是由核函数计算的 \(n \times n\) 协方差矩阵,其元素 \(K {ij} = k(\mathbf{x}_ i, \mathbf{x}_ j)\)。 对数边际似然 : 为便于计算,我们最大化对数边际似然: \[ \log p(\mathbf{y} | \mathbf{X}, \theta) = -\frac{1}{2} \mathbf{y}^\top (\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 \] 这个公式包含三个部分,在优化时有明确的直观解释: 第一项(数据拟合项) :\(-\frac{1}{2} \mathbf{y}^\top \mathbf{K}_ y^{-1} \mathbf{y}\),其中 \(\mathbf{K}_ y = \mathbf{K} + \sigma_ n^2 \mathbf{I}\)。该项鼓励模型拟合数据。当预测与数据越一致(在考虑协方差结构下)时,此项的值越大(因为它是负的二次型,拟合好时内积小,负得少)。 第二项(复杂度惩罚项) :\(-\frac{1}{2} \log |\mathbf{K}_ y|\)。该项是模型复杂度的惩罚。\(|\mathbf{K}_ y|\) 与协方差矩阵的特征值乘积有关,特征值大(即核函数参数使得函数变化剧烈)会导致行列式大,从而使该项更负,起到惩罚过于复杂模型的作用。 第三项 :常数,优化时可忽略。 因此,最大化边际似然自动在 数据拟合 和 模型复杂度 之间进行权衡,这是一种 自动化的奥卡姆剃刀 。 步骤三:学习优化对数边际似然的具体方法 我们的目标是找到超参数 \(\theta\) 以最大化 \(\log p(\mathbf{y} | \mathbf{X}, \theta)\)。由于这个函数关于 \(\theta\) 通常是非凸的,我们使用基于梯度的方法。 计算对数边际似然关于超参数的梯度 : 为了使用梯度下降或共轭梯度法等优化算法,我们需要计算梯度 \(\frac{\partial}{\partial \theta_ j} \log p(\mathbf{y} | \mathbf{X}, \theta)\)。经过推导,可得: \[ \frac{\partial}{\partial \theta_ j} \log p(\mathbf{y} | \mathbf{X}, \theta) = \frac{1}{2} \mathbf{y}^\top \mathbf{K}_ y^{-1} \frac{\partial \mathbf{K}_ y}{\partial \theta_ j} \mathbf{K}_ y^{-1} \mathbf{y} - \frac{1}{2} \text{tr}\left(\mathbf{K}_ y^{-1} \frac{\partial \mathbf{K}_ y}{\partial \theta_ j} \right) \] 其中 \(\frac{\partial \mathbf{K}_ y}{\partial \theta_ j}\) 是协方差矩阵对第 \(j\) 个超参数的导数矩阵。梯度的计算依赖于 核函数对参数的解析导数 。 优化流程 : a. 初始化 :为超参数 \(\theta\) 选择合理的初始值。例如,长度尺度 \(l\) 可以初始化为输入特征的平均距离,信号方差 \(\sigma_ f^2\) 初始化为目标变量 \(\mathbf{y}\) 的方差,噪声方差 \(\sigma_ n^2\) 初始化为一个较小的值(如 \(\sigma_ f^2/10\))。 b. 迭代优化 : 在每次迭代中,用当前的 \(\theta\) 计算协方差矩阵 \(\mathbf{K}_ y\)。 计算 \(\mathbf{K}_ y^{-1} \mathbf{y}\) 和对数行列式 \(\log |\mathbf{K}_ y|\)(通常通过Cholesky分解 \(\mathbf{K}_ y = \mathbf{L}\mathbf{L}^\top\) 稳定地计算,因为 \(\mathbf{K}_ y\) 是对称正定的)。 计算对数边际似然值及其关于每个超参数的梯度。 使用梯度优化器(如共轭梯度法、L-BFGS-B等)更新 \(\theta\),以增大对数边际似然。 c. 收敛 :当参数变化或似然值增长小于设定阈值时停止。 实际注意事项 : 数值稳定性 :直接计算 \(\mathbf{K}_ y^{-1}\) 和 \(|\mathbf{K}_ y|\) 可能不稳定。使用Cholesky分解是标准做法。设 \(\mathbf{L} = \text{cholesky}(\mathbf{K}_ y)\),则: \(\mathbf{K}_ y^{-1} \mathbf{y} = \mathbf{L}^{-\top} (\mathbf{L}^{-1} \mathbf{y})\) (通过两次三角矩阵求解)。 \(\log |\mathbf{K} y| = 2 \sum_ i \log L {ii}\)。 局部最优 :对数边际似然可能存在多个局部极大值。通常建议从多个不同的初始点开始优化,选择得到最大边际似然的那组参数。 参数约束 :超参数通常有约束(如长度尺度、噪声方差必须为正)。在优化时,可以对参数取对数(\(\log \theta\))来确保其在整个实数域优化,并自动满足正约束。 核函数选择策略 : 在实践中,核函数的选择通常基于: 领域知识 :对数据生成过程的理解(例如,是否具有周期性)。 可视化探索 :绘制数据,观察趋势、周期性和噪声水平。 模型比较 :可以尝试几个合理的候选核,分别优化其超参数,比较它们在 验证集 上的性能(如均方误差、负对数似然),或使用 贝叶斯模型选择 比较边际似然。通常,边际似然本身可以作为模型比较的一个依据(但需注意,边际似然倾向于选择更简单的模型,因为它包含了复杂度惩罚)。 总结 在高斯过程回归中, 核函数 定义了函数空间的先验特性,而 超参数优化 通过最大化边际似然,从数据中学习这些特性的具体尺度(如平滑度、周期长度)。这个过程实现了自动的模型复杂度控制,并通过梯度优化高效完成。理解不同核函数的特性并掌握基于边际似然的优化流程,是成功应用高斯过程回归解决实际回归问题的关键。