高斯过程(Gaussian Process, GP)的边际似然优化与超参数学习过程
字数 3776 2025-12-10 07:47:27

高斯过程(Gaussian Process, GP)的边际似然优化与超参数学习过程

题目描述
高斯过程是一种用于回归和非参数概率建模的机器学习方法。它通过定义一个函数上的先验分布,并利用观测数据更新为后验分布来进行预测。在实际应用中,高斯过程的性能高度依赖于其协方差函数(也称核函数)中的超参数(如长度尺度、方差等)。本题目要求详细讲解如何通过最大化边际似然(Marginal Likelihood)来优化这些超参数,并解释其数学推导、梯度计算以及优化过程。

解题过程

1. 高斯过程的基本设定
高斯过程定义为函数的分布,其任何有限个函数值的集合服从多元高斯分布。形式上,高斯过程由均值函数 \(m(\mathbf{x})\) 和协方差函数 \(k(\mathbf{x}, \mathbf{x}')\) 完全描述:

\[f(\mathbf{x}) \sim \mathcal{GP}(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}')) \]

在回归任务中,我们有训练数据集 \(\mathcal{D} = \{(\mathbf{x}_i, y_i)\}_{i=1}^n\),其中观测值 \(y_i = f(\mathbf{x}_i) + \epsilon_i\),噪声 \(\epsilon_i \sim \mathcal{N}(0, \sigma_n^2)\) 独立同分布。记输入矩阵 \(\mathbf{X} = [\mathbf{x}_1, \dots, \mathbf{x}_n]^T\),输出向量 \(\mathbf{y} = [y_1, \dots, y_n]^T\)。则观测值 \(\mathbf{y}\) 的先验分布为:

\[\mathbf{y} \sim \mathcal{N}(\mathbf{0}, \mathbf{K} + \sigma_n^2 \mathbf{I}) \]

其中 \(\mathbf{K}\)\(n \times n\) 的协方差矩阵,其元素 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)\(\mathbf{I}\) 是单位矩阵。

2. 边际似然及其对数形式
边际似然是在给定超参数 \(\boldsymbol{\theta}\)(包括核参数和噪声方差)下,观测数据 \(\mathbf{y}\) 的概率。它通过积分掉隐函数 \(\mathbf{f}\) 得到:

\[p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\theta}) = \int p(\mathbf{y} \mid \mathbf{f}, \boldsymbol{\theta}) p(\mathbf{f} \mid \mathbf{X}, \boldsymbol{\theta}) d\mathbf{f} \]

由于 \(p(\mathbf{y} \mid \mathbf{f})\)\(p(\mathbf{f} \mid \mathbf{X})\) 都是高斯分布,其卷积仍为高斯分布。因此,边际似然是一个多元高斯分布的对数似然:

\[\log p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\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 \]

这个公式包含三项:

  • 数据拟合项\(-\frac{1}{2} \mathbf{y}^T \mathbf{K}_y^{-1} \mathbf{y}\)(其中 \(\mathbf{K}_y = \mathbf{K} + \sigma_n^2 \mathbf{I}\)),衡量模型对数据的拟合程度。
  • 复杂度惩罚项\(-\frac{1}{2} \log |\mathbf{K}_y|\),惩罚模型复杂度,避免过拟合。
  • 常数项\(-\frac{n}{2} \log 2\pi\)

3. 边际似然对超参数的梯度
为了最大化边际似然,我们通常使用梯度优化方法(如共轭梯度法、L-BFGS)。需要计算对数边际似然对每个超参数 \(\theta_j\) 的偏导数。利用矩阵求导技巧,可得:

\[\frac{\partial}{\partial \theta_j} \log p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\theta}) = \frac{1}{2} \mathbf{y}^T \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}\)\(\mathbf{K}_y\) 对超参数 \(\theta_j\) 的导数矩阵。推导时使用了恒等式 \(\frac{\partial \log |\mathbf{A}|}{\partial \theta} = \text{tr} \left( \mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial \theta} \right)\)\(\frac{\partial \mathbf{A}^{-1}}{\partial \theta} = -\mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial \theta} \mathbf{A}^{-1}\)

4. 优化过程的计算细节
优化通常按以下步骤迭代进行:

  • 步骤1:初始化超参数 \(\boldsymbol{\theta}^{(0)}\)。例如,对于平方指数核 \(k(\mathbf{x}, \mathbf{x}') = \sigma_f^2 \exp\left(-\frac{\|\mathbf{x} - \mathbf{x}'\|^2}{2l^2}\right) + \sigma_n^2 \delta_{ij}\),初始化长度尺度 \(l\)、信号方差 \(\sigma_f^2\) 和噪声方差 \(\sigma_n^2\)
  • 步骤2:计算协方差矩阵 \(\mathbf{K}_y\) 及其对每个超参数的导数矩阵 \(\frac{\partial \mathbf{K}_y}{\partial \theta_j}\)
  • 步骤3:求解线性系统 \(\mathbf{K}_y^{-1} \mathbf{y}\) 和计算迹 \(\text{tr}(\mathbf{K}_y^{-1} \frac{\partial \mathbf{K}_y}{\partial \theta_j})\)。实践中,通过Cholesky分解 \(\mathbf{K}_y = \mathbf{L} \mathbf{L}^T\) 来稳定求解,其中 \(\mathbf{L}\) 是下三角矩阵。然后,\(\mathbf{K}_y^{-1} \mathbf{y}\) 可通过两次三角方程求解得到,迹可通过 \(\sum_i (\mathbf{L}^{-1} (\frac{\partial \mathbf{K}_y}{\partial \theta_j}) \mathbf{L}^{-T})_{ii}\) 高效计算。
  • 步骤4:计算对数边际似然及其梯度,使用上述公式。
  • 步骤5:使用梯度优化器更新超参数 \(\boldsymbol{\theta}\),直至收敛(梯度足够小或达到最大迭代次数)。

5. 超参数优化的直观解释
边际似然最大化自动在数据拟合和模型复杂度之间进行权衡:

  • 若长度尺度 \(l\) 太小,协方差矩阵趋于对角,拟合项很小,但 \(\log |\mathbf{K}_y|\) 很大(惩罚大),导致边际似然降低。
  • 若长度尺度 \(l\) 太大,函数过于平滑,可能欠拟合,拟合项增大,边际似然也会降低。
  • 噪声方差 \(\sigma_n^2\) 控制了数据中的噪声容忍度;过小会导致过拟合,过大会使模型忽略数据。

6. 扩展与注意点

  • 对于大规模数据,直接计算 \(\mathbf{K}_y^{-1}\)\(O(n^3)\) 复杂度较高,可采用近似方法(如随机傅里叶特征、诱导点法)。
  • 多起始点优化可避免陷入局部最优。
  • 超参数优化后,后验预测分布可用来对新点 \(\mathbf{x}_*\) 做预测。
高斯过程(Gaussian Process, GP)的边际似然优化与超参数学习过程 题目描述 高斯过程是一种用于回归和非参数概率建模的机器学习方法。它通过定义一个函数上的先验分布,并利用观测数据更新为后验分布来进行预测。在实际应用中,高斯过程的性能高度依赖于其协方差函数(也称核函数)中的超参数(如长度尺度、方差等)。本题目要求详细讲解如何通过最大化边际似然(Marginal Likelihood)来优化这些超参数,并解释其数学推导、梯度计算以及优化过程。 解题过程 1. 高斯过程的基本设定 高斯过程定义为函数的分布,其任何有限个函数值的集合服从多元高斯分布。形式上,高斯过程由均值函数 $m(\mathbf{x})$ 和协方差函数 $k(\mathbf{x}, \mathbf{x}')$ 完全描述: $$ f(\mathbf{x}) \sim \mathcal{GP}(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}')) $$ 在回归任务中,我们有训练数据集 $\mathcal{D} = \{(\mathbf{x} i, y_ i)\} {i=1}^n$,其中观测值 $y_ i = f(\mathbf{x}_ i) + \epsilon_ i$,噪声 $\epsilon_ i \sim \mathcal{N}(0, \sigma_ n^2)$ 独立同分布。记输入矩阵 $\mathbf{X} = [ \mathbf{x}_ 1, \dots, \mathbf{x} n]^T$,输出向量 $\mathbf{y} = [ y_ 1, \dots, y_ n ]^T$。则观测值 $\mathbf{y}$ 的先验分布为: $$ \mathbf{y} \sim \mathcal{N}(\mathbf{0}, \mathbf{K} + \sigma_ n^2 \mathbf{I}) $$ 其中 $\mathbf{K}$ 是 $n \times n$ 的协方差矩阵,其元素 $K {ij} = k(\mathbf{x}_ i, \mathbf{x}_ j)$,$\mathbf{I}$ 是单位矩阵。 2. 边际似然及其对数形式 边际似然是在给定超参数 $\boldsymbol{\theta}$(包括核参数和噪声方差)下,观测数据 $\mathbf{y}$ 的概率。它通过积分掉隐函数 $\mathbf{f}$ 得到: $$ p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\theta}) = \int p(\mathbf{y} \mid \mathbf{f}, \boldsymbol{\theta}) p(\mathbf{f} \mid \mathbf{X}, \boldsymbol{\theta}) d\mathbf{f} $$ 由于 $p(\mathbf{y} \mid \mathbf{f})$ 和 $p(\mathbf{f} \mid \mathbf{X})$ 都是高斯分布,其卷积仍为高斯分布。因此,边际似然是一个多元高斯分布的对数似然: $$ \log p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\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 $$ 这个公式包含三项: 数据拟合项 :$-\frac{1}{2} \mathbf{y}^T \mathbf{K}_ y^{-1} \mathbf{y}$(其中 $\mathbf{K}_ y = \mathbf{K} + \sigma_ n^2 \mathbf{I}$),衡量模型对数据的拟合程度。 复杂度惩罚项 :$-\frac{1}{2} \log |\mathbf{K}_ y|$,惩罚模型复杂度,避免过拟合。 常数项 :$-\frac{n}{2} \log 2\pi$。 3. 边际似然对超参数的梯度 为了最大化边际似然,我们通常使用梯度优化方法(如共轭梯度法、L-BFGS)。需要计算对数边际似然对每个超参数 $\theta_ j$ 的偏导数。利用矩阵求导技巧,可得: $$ \frac{\partial}{\partial \theta_ j} \log p(\mathbf{y} \mid \mathbf{X}, \boldsymbol{\theta}) = \frac{1}{2} \mathbf{y}^T \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}$ 是 $\mathbf{K}_ y$ 对超参数 $\theta_ j$ 的导数矩阵。推导时使用了恒等式 $\frac{\partial \log |\mathbf{A}|}{\partial \theta} = \text{tr} \left( \mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial \theta} \right)$ 和 $\frac{\partial \mathbf{A}^{-1}}{\partial \theta} = -\mathbf{A}^{-1} \frac{\partial \mathbf{A}}{\partial \theta} \mathbf{A}^{-1}$。 4. 优化过程的计算细节 优化通常按以下步骤迭代进行: 步骤1:初始化超参数 $\boldsymbol{\theta}^{(0)}$。例如,对于平方指数核 $k(\mathbf{x}, \mathbf{x}') = \sigma_ f^2 \exp\left(-\frac{\|\mathbf{x} - \mathbf{x}'\|^2}{2l^2}\right) + \sigma_ n^2 \delta_ {ij}$,初始化长度尺度 $l$、信号方差 $\sigma_ f^2$ 和噪声方差 $\sigma_ n^2$。 步骤2:计算协方差矩阵 $\mathbf{K}_ y$ 及其对每个超参数的导数矩阵 $\frac{\partial \mathbf{K}_ y}{\partial \theta_ j}$。 步骤3:求解线性系统 $\mathbf{K}_ y^{-1} \mathbf{y}$ 和计算迹 $\text{tr}(\mathbf{K}_ y^{-1} \frac{\partial \mathbf{K}_ y}{\partial \theta_ j})$。实践中,通过Cholesky分解 $\mathbf{K}_ y = \mathbf{L} \mathbf{L}^T$ 来稳定求解,其中 $\mathbf{L}$ 是下三角矩阵。然后,$\mathbf{K}_ y^{-1} \mathbf{y}$ 可通过两次三角方程求解得到,迹可通过 $\sum_ i (\mathbf{L}^{-1} (\frac{\partial \mathbf{K} y}{\partial \theta_ j}) \mathbf{L}^{-T}) {ii}$ 高效计算。 步骤4:计算对数边际似然及其梯度 ,使用上述公式。 步骤5:使用梯度优化器更新超参数 $\boldsymbol{\theta}$,直至收敛(梯度足够小或达到最大迭代次数)。 5. 超参数优化的直观解释 边际似然最大化自动在数据拟合和模型复杂度之间进行权衡: 若长度尺度 $l$ 太小,协方差矩阵趋于对角,拟合项很小,但 $\log |\mathbf{K}_ y|$ 很大(惩罚大),导致边际似然降低。 若长度尺度 $l$ 太大,函数过于平滑,可能欠拟合,拟合项增大,边际似然也会降低。 噪声方差 $\sigma_ n^2$ 控制了数据中的噪声容忍度;过小会导致过拟合,过大会使模型忽略数据。 6. 扩展与注意点 对于大规模数据,直接计算 $\mathbf{K}_ y^{-1}$ 的 $O(n^3)$ 复杂度较高,可采用近似方法(如随机傅里叶特征、诱导点法)。 多起始点优化可避免陷入局部最优。 超参数优化后,后验预测分布可用来对新点 $\mathbf{x}_ * $ 做预测。