高斯过程分类(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\) 是超参数集合。这个近似边缘似然可用于梯度下降等优化方法。
总结
拉普拉斯近似为高斯过程分类提供了一种高效的后验推断方法,它通过优化得到潜在函数的后验众数,并用高斯分布近似后验,从而能够计算预测分布。虽然这是一种确定性近似,但计算相对简单,适用于中小规模数据集。