高斯过程分类(Gaussian Process Classification, GPC)的拉普拉斯近似推断过程
字数 4617 2025-12-09 05:45:11

高斯过程分类(Gaussian Process Classification, GPC)的拉普拉斯近似推断过程

题目描述
高斯过程分类是一种基于贝叶斯框架的非参数分类方法,它通过高斯过程先验对数据潜在函数进行建模,并借助逻辑函数(如sigmoid函数)将潜在函数值映射为概率输出。然而,由于潜在函数的后验分布是非高斯且难处理的,无法像高斯过程回归那样得到解析解,因此需要近似推断方法。拉普拉斯近似(Laplace Approximation)是其中一种经典推断技术,它通过用高斯分布近似后验分布,简化计算。本题将详细讲解高斯过程分类的模型设定,以及如何使用拉普拉斯近似进行后验推断,包括优化潜在函数、计算高斯近似及其预测分布。

解题过程

  1. 模型设定
    假设训练数据集为 \(D = \{ (\mathbf{x}_i, y_i) \}_{i=1}^n\),其中 \(\mathbf{x}_i \in \mathbb{R}^d\) 是特征向量,\(y_i \in \{0, 1\}\) 是二分类标签。高斯过程分类的核心思想是引入潜在函数 \(f(\mathbf{x})\),假设其服从高斯过程先验:

\[ f(\cdot) \sim \mathcal{GP}(0, k(\cdot, \cdot)) \]

其中 \(k\) 是协方差函数(核函数),如径向基函数(RBF)核。定义潜在函数在训练点处的值为 \(\mathbf{f} = (f_1, \dots, f_n)^\top\),其先验分布为多元高斯:

\[ p(\mathbf{f} \mid X) = \mathcal{N}(\mathbf{0}, K) \]

这里 \(K\)\(n \times n\) 的协方差矩阵,元素 \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)
分类概率通过逻辑函数(如sigmoid)将 \(f_i\) 映射到 \([0,1]\),例如:

\[ p(y_i = 1 \mid f_i) = \sigma(f_i) = \frac{1}{1 + e^{-f_i}} \]

则似然函数为:

\[ p(\mathbf{y} \mid \mathbf{f}) = \prod_{i=1}^n \sigma(f_i)^{y_i} (1 - \sigma(f_i))^{1-y_i} \]

由于似然是非高斯的,潜在函数的后验分布 \(p(\mathbf{f} \mid X, \mathbf{y})\) 不再是高斯分布,无法直接计算。

  1. 拉普拉斯近似的基本思想
    拉普拉斯近似旨在用一个高斯分布 \(q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, A^{-1})\) 来近似后验分布 \(p(\mathbf{f} \mid X, \mathbf{y})\)。其关键步骤是:
    • 找到后验分布的众数(最大值点) \(\hat{\mathbf{f}}\),即对后验取对数后最大化。
    • \(\hat{\mathbf{f}}\) 处用二阶泰勒展开近似对数后验,得到一个高斯分布。
      根据贝叶斯定理,后验分布满足:

\[ p(\mathbf{f} \mid X, \mathbf{y}) \propto p(\mathbf{y} \mid \mathbf{f}) p(\mathbf{f} \mid X) \]

取对数后:

\[ \Psi(\mathbf{f}) := \log p(\mathbf{f} \mid X, \mathbf{y}) = \log p(\mathbf{y} \mid \mathbf{f}) + \log p(\mathbf{f} \mid X) + \text{常数} \]

代入先验和似然:

\[ \Psi(\mathbf{f}) = \sum_{i=1}^n \left[ y_i \log \sigma(f_i) + (1-y_i) \log (1 - \sigma(f_i)) \right] - \frac{1}{2} \mathbf{f}^\top K^{-1} \mathbf{f} - \frac{1}{2} \log |K| + \text{常数} \]

  1. 寻找后验众数 \(\hat{\mathbf{f}}\)
    \(\Psi(\mathbf{f})\) 关于 \(\mathbf{f}\) 求梯度并设为零:

\[ \nabla \Psi(\mathbf{f}) = \nabla \log p(\mathbf{y} \mid \mathbf{f}) - K^{-1} \mathbf{f} = 0 \]

其中 \(\nabla \log p(\mathbf{y} \mid \mathbf{f}) = \mathbf{y} - \boldsymbol{\sigma}(\mathbf{f})\),这里 \(\boldsymbol{\sigma}(\mathbf{f})\) 是逐元素应用sigmoid函数的向量。因此梯度方程为:

\[ \mathbf{y} - \boldsymbol{\sigma}(\mathbf{f}) - K^{-1} \mathbf{f} = 0 \]

这是一个非线性方程组,通常用迭代优化方法求解,如牛顿-拉弗森法(Newton-Raphson)。在每次迭代中,更新:

\[ \mathbf{f}_{\text{new}} = \mathbf{f} - \left( \nabla^2 \Psi(\mathbf{f}) \right)^{-1} \nabla \Psi(\mathbf{f}) \]

其中海森矩阵 \(\nabla^2 \Psi(\mathbf{f}) = -W - K^{-1}\),而 \(W\) 是对角矩阵,其元素为:

\[ W_{ii} = \sigma(f_i)(1 - \sigma(f_i)) \]

迭代直至收敛,得到众数 \(\hat{\mathbf{f}}\)

  1. 计算高斯近似分布
    \(\hat{\mathbf{f}}\) 处对 \(\Psi(\mathbf{f})\) 进行二阶泰勒展开:

\[ \Psi(\mathbf{f}) \approx \Psi(\hat{\mathbf{f}}) - \frac{1}{2} (\mathbf{f} - \hat{\mathbf{f}})^\top (W + K^{-1}) (\mathbf{f} - \hat{\mathbf{f}}) \]

因此,后验的高斯近似为:

\[ q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, (W + K^{-1})^{-1}) \]

为了计算方便,通常写作:

\[ q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, (K^{-1} + W)^{-1}) \]

通过矩阵求逆引理,可得到协方差矩阵的另一形式:

\[ \Sigma = (K^{-1} + W)^{-1} = K - K (K + W^{-1})^{-1} K \]

  1. 预测新样本
    对于测试点 \(\mathbf{x}_*\),首先计算潜在函数值 \(f_*\) 的后验预测分布:

\[ p(f_* \mid X, \mathbf{y}, \mathbf{x}_*) = \int p(f_* \mid X, \mathbf{x}_*, \mathbf{f}) p(\mathbf{f} \mid X, \mathbf{y}) d\mathbf{f} \approx \int p(f_* \mid X, \mathbf{x}_*, \mathbf{f}) q(\mathbf{f} \mid X, \mathbf{y}) d\mathbf{f} \]

由于联合分布 \((f_*, \mathbf{f})\) 是高斯的,且已用高斯近似 \(q(\mathbf{f})\),上述积分解析可得:

\[ q(f_* \mid X, \mathbf{y}, \mathbf{x}_*) = \mathcal{N}(f_* \mid \mu_*, \sigma_*^2) \]

其中:

\[ \mu_* = \mathbf{k}_*^\top K^{-1} \hat{\mathbf{f}} = \mathbf{k}_*^\top (K + W^{-1})^{-1} W^{-1} \nabla \log p(\mathbf{y} \mid \hat{\mathbf{f}}) \]

\[ \sigma_*^2 = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}_*^\top (K + W^{-1})^{-1} \mathbf{k}_* \]

这里 \(\mathbf{k}_* = [k(\mathbf{x}_1, \mathbf{x}_*), \dots, k(\mathbf{x}_n, \mathbf{x}_*)]^\top\)
最后,分类概率通过对 \(f_*\) 积分得到:

\[ p(y_* = 1 \mid X, \mathbf{y}, \mathbf{x}_*) = \int \sigma(f_*) q(f_* \mid X, \mathbf{y}, \mathbf{x}_*) df_* \]

这个积分没有闭式解,但可用一维数值积分(如高斯-埃尔米特积分)近似计算。实际中,也可用sigmoid函数在均值处的值近似,即 \(\sigma(\mu_*)\)

  1. 超参数优化
    高斯过程分类的超参数包括核函数的参数(如RBF核的长度尺度和方差),可通过最大化边缘似然的近似来优化:

\[ \log p(\mathbf{y} \mid X, \theta) \approx \log p(\mathbf{y} \mid \hat{\mathbf{f}}) - \frac{1}{2} \hat{\mathbf{f}}^\top K^{-1} \hat{\mathbf{f}} - \frac{1}{2} \log |I + W^{1/2} K W^{1/2}| \]

其中 \(\theta\) 是超参数集合。这个近似边缘似然可用于梯度下降等优化方法。

总结
拉普拉斯近似为高斯过程分类提供了一种高效的后验推断方法,它通过优化得到潜在函数的后验众数,并用高斯分布近似后验,从而能够计算预测分布。虽然这是一种确定性近似,但计算相对简单,适用于中小规模数据集。

高斯过程分类(Gaussian Process Classification, GPC)的拉普拉斯近似推断过程 题目描述 高斯过程分类是一种基于贝叶斯框架的非参数分类方法,它通过高斯过程先验对数据潜在函数进行建模,并借助逻辑函数(如sigmoid函数)将潜在函数值映射为概率输出。然而,由于潜在函数的后验分布是非高斯且难处理的,无法像高斯过程回归那样得到解析解,因此需要近似推断方法。拉普拉斯近似(Laplace Approximation)是其中一种经典推断技术,它通过用高斯分布近似后验分布,简化计算。本题将详细讲解高斯过程分类的模型设定,以及如何使用拉普拉斯近似进行后验推断,包括优化潜在函数、计算高斯近似及其预测分布。 解题过程 模型设定 假设训练数据集为 \( D = \{ (\mathbf{x} i, y_ i) \} {i=1}^n \),其中 \( \mathbf{x} i \in \mathbb{R}^d \) 是特征向量,\( y_ i \in \{0, 1\} \) 是二分类标签。高斯过程分类的核心思想是引入潜在函数 \( f(\mathbf{x}) \),假设其服从高斯过程先验: \[ f(\cdot) \sim \mathcal{GP}(0, k(\cdot, \cdot)) \] 其中 \( k \) 是协方差函数(核函数),如径向基函数(RBF)核。定义潜在函数在训练点处的值为 \( \mathbf{f} = (f_ 1, \dots, f_ n)^\top \),其先验分布为多元高斯: \[ p(\mathbf{f} \mid X) = \mathcal{N}(\mathbf{0}, K) \] 这里 \( K \) 是 \( n \times n \) 的协方差矩阵,元素 \( K {ij} = k(\mathbf{x}_ i, \mathbf{x} j) \)。 分类概率通过逻辑函数(如sigmoid)将 \( f_ i \) 映射到 \([ 0,1 ]\),例如: \[ p(y_ i = 1 \mid f_ i) = \sigma(f_ i) = \frac{1}{1 + e^{-f_ i}} \] 则似然函数为: \[ p(\mathbf{y} \mid \mathbf{f}) = \prod {i=1}^n \sigma(f_ i)^{y_ i} (1 - \sigma(f_ i))^{1-y_ i} \] 由于似然是非高斯的,潜在函数的后验分布 \( p(\mathbf{f} \mid X, \mathbf{y}) \) 不再是高斯分布,无法直接计算。 拉普拉斯近似的基本思想 拉普拉斯近似旨在用一个高斯分布 \( q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, A^{-1}) \) 来近似后验分布 \( p(\mathbf{f} \mid X, \mathbf{y}) \)。其关键步骤是: 找到后验分布的众数(最大值点) \( \hat{\mathbf{f}} \),即对后验取对数后最大化。 在 \( \hat{\mathbf{f}} \) 处用二阶泰勒展开近似对数后验,得到一个高斯分布。 根据贝叶斯定理,后验分布满足: \[ p(\mathbf{f} \mid X, \mathbf{y}) \propto p(\mathbf{y} \mid \mathbf{f}) p(\mathbf{f} \mid X) \] 取对数后: \[ \Psi(\mathbf{f}) := \log p(\mathbf{f} \mid X, \mathbf{y}) = \log p(\mathbf{y} \mid \mathbf{f}) + \log p(\mathbf{f} \mid X) + \text{常数} \] 代入先验和似然: \[ \Psi(\mathbf{f}) = \sum_ {i=1}^n \left[ y_ i \log \sigma(f_ i) + (1-y_ i) \log (1 - \sigma(f_ i)) \right ] - \frac{1}{2} \mathbf{f}^\top K^{-1} \mathbf{f} - \frac{1}{2} \log |K| + \text{常数} \] 寻找后验众数 \( \hat{\mathbf{f}} \) 对 \( \Psi(\mathbf{f}) \) 关于 \( \mathbf{f} \) 求梯度并设为零: \[ \nabla \Psi(\mathbf{f}) = \nabla \log p(\mathbf{y} \mid \mathbf{f}) - K^{-1} \mathbf{f} = 0 \] 其中 \( \nabla \log p(\mathbf{y} \mid \mathbf{f}) = \mathbf{y} - \boldsymbol{\sigma}(\mathbf{f}) \),这里 \( \boldsymbol{\sigma}(\mathbf{f}) \) 是逐元素应用sigmoid函数的向量。因此梯度方程为: \[ \mathbf{y} - \boldsymbol{\sigma}(\mathbf{f}) - K^{-1} \mathbf{f} = 0 \] 这是一个非线性方程组,通常用迭代优化方法求解,如牛顿-拉弗森法(Newton-Raphson)。在每次迭代中,更新: \[ \mathbf{f} {\text{new}} = \mathbf{f} - \left( \nabla^2 \Psi(\mathbf{f}) \right)^{-1} \nabla \Psi(\mathbf{f}) \] 其中海森矩阵 \( \nabla^2 \Psi(\mathbf{f}) = -W - K^{-1} \),而 \( W \) 是对角矩阵,其元素为: \[ W {ii} = \sigma(f_ i)(1 - \sigma(f_ i)) \] 迭代直至收敛,得到众数 \( \hat{\mathbf{f}} \)。 计算高斯近似分布 在 \( \hat{\mathbf{f}} \) 处对 \( \Psi(\mathbf{f}) \) 进行二阶泰勒展开: \[ \Psi(\mathbf{f}) \approx \Psi(\hat{\mathbf{f}}) - \frac{1}{2} (\mathbf{f} - \hat{\mathbf{f}})^\top (W + K^{-1}) (\mathbf{f} - \hat{\mathbf{f}}) \] 因此,后验的高斯近似为: \[ q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, (W + K^{-1})^{-1}) \] 为了计算方便,通常写作: \[ q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, (K^{-1} + W)^{-1}) \] 通过矩阵求逆引理,可得到协方差矩阵的另一形式: \[ \Sigma = (K^{-1} + W)^{-1} = K - K (K + W^{-1})^{-1} K \] 预测新样本 对于测试点 \( \mathbf{x} * \),首先计算潜在函数值 \( f * \) 的后验预测分布: \[ p(f_* \mid X, \mathbf{y}, \mathbf{x} * ) = \int p(f * \mid X, \mathbf{x} * , \mathbf{f}) p(\mathbf{f} \mid X, \mathbf{y}) d\mathbf{f} \approx \int p(f * \mid X, \mathbf{x} * , \mathbf{f}) q(\mathbf{f} \mid X, \mathbf{y}) d\mathbf{f} \] 由于联合分布 \( (f , \mathbf{f}) \) 是高斯的,且已用高斯近似 \( q(\mathbf{f}) \),上述积分解析可得: \[ q(f_ \mid X, \mathbf{y}, \mathbf{x} * ) = \mathcal{N}(f * \mid \mu_ , \sigma_ ^2) \] 其中: \[ \mu_* = \mathbf{k} * ^\top K^{-1} \hat{\mathbf{f}} = \mathbf{k} ^\top (K + W^{-1})^{-1} W^{-1} \nabla \log p(\mathbf{y} \mid \hat{\mathbf{f}}) \] \[ \sigma_ ^2 = k(\mathbf{x} * , \mathbf{x} ) - \mathbf{k}_ ^\top (K + W^{-1})^{-1} \mathbf{k} * \] 这里 \( \mathbf{k} * = [ k(\mathbf{x} 1, \mathbf{x} ), \dots, k(\mathbf{x} n, \mathbf{x} ) ]^\top \)。 最后,分类概率通过对 \( f_* \) 积分得到: \[ p(y_* = 1 \mid X, \mathbf{y}, \mathbf{x} * ) = \int \sigma(f ) q(f_ \mid X, \mathbf{y}, \mathbf{x} * ) df * \] 这个积分没有闭式解,但可用一维数值积分(如高斯-埃尔米特积分)近似计算。实际中,也可用sigmoid函数在均值处的值近似,即 \( \sigma(\mu_* ) \)。 超参数优化 高斯过程分类的超参数包括核函数的参数(如RBF核的长度尺度和方差),可通过最大化边缘似然的近似来优化: \[ \log p(\mathbf{y} \mid X, \theta) \approx \log p(\mathbf{y} \mid \hat{\mathbf{f}}) - \frac{1}{2} \hat{\mathbf{f}}^\top K^{-1} \hat{\mathbf{f}} - \frac{1}{2} \log |I + W^{1/2} K W^{1/2}| \] 其中 \( \theta \) 是超参数集合。这个近似边缘似然可用于梯度下降等优化方法。 总结 拉普拉斯近似为高斯过程分类提供了一种高效的后验推断方法,它通过优化得到潜在函数的后验众数,并用高斯分布近似后验,从而能够计算预测分布。虽然这是一种确定性近似,但计算相对简单,适用于中小规模数据集。