高斯过程分类(Gaussian Process Classification)的拉普拉斯近似推断过程
题目描述
高斯过程分类(GPC)是一种基于贝叶斯框架的非参数概率模型,用于解决二分类问题(如预测样本属于类别+1或-1的概率)。与高斯过程回归(GPR)直接对连续函数建模不同,GPC需将高斯过程先验通过非线性函数(如sigmoid)映射到[0,1]区间,以表示概率。但由于非线性映射导致后验分布无法直接计算,需用近似推断方法。拉普拉斯近似(Laplace Approximation)是其中一种经典方法,其核心思想:用高斯分布近似真实后验分布,通过寻找后验的众数(模式)并基于该点曲率构造近似分布。本题要求详细解释拉普拉斯近似在GPC中的推导步骤。
解题过程
-
问题定义与先验设置
- 输入训练集 \(\{(\mathbf{x}_i, y_i)\}_{i=1}^n\),其中 \(y_i \in \{-1, +1\}\)。引入隐变量 \(\mathbf{f} = [f_1, \dots, f_n]^\top\),每个 \(f_i\) 对应 \(\mathbf{x}_i\) 的潜在函数值。
- 假设隐变量 \(\mathbf{f}\) 服从高斯过程先验:\(\mathbf{f} \sim \mathcal{N}(\mathbf{0}, \mathbf{K})\),其中 \(\mathbf{K}\) 是核矩阵(如RBF核),\(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
- 通过sigmoid函数(如logistic函数 \(\sigma(z) = 1/(1+e^{-z})\))将 \(f_i\) 映射为概率:\(p(y_i = +1 | f_i) = \sigma(f_i)\)。分类概率可统一写为 \(p(y_i | f_i) = \sigma(y_i f_i)\)。
-
后验分布与近似目标
- 后验分布 \(p(\mathbf{f} | \mathbf{X}, \mathbf{y}) \propto p(\mathbf{y} | \mathbf{f}) p(\mathbf{f} | \mathbf{X})\),其中似然项 \(p(\mathbf{y} | \mathbf{f}) = \prod_{i=1}^n \sigma(y_i f_i)\)。由于似然非高斯,后验无法解析求解。
- 拉普拉斯近似目标:用一个高斯分布 \(q(\mathbf{f} | \mathbf{X}, \mathbf{y}) = \mathcal{N}(\mathbf{f} | \hat{\mathbf{f}}, \mathbf{A}^{-1})\) 近似真实后验,其中 \(\hat{\mathbf{f}}\) 是后验众数,\(\mathbf{A}\) 是负Hessian矩阵。
-
寻找后验众数 \(\hat{\mathbf{f}}\)
- 后验的对数形式:\(\Psi(\mathbf{f}) = \log p(\mathbf{y} | \mathbf{f}) + \log p(\mathbf{f} | \mathbf{X}) + \text{const}\)。
展开为:
- 后验的对数形式:\(\Psi(\mathbf{f}) = \log p(\mathbf{y} | \mathbf{f}) + \log p(\mathbf{f} | \mathbf{X}) + \text{const}\)。
\[ \Psi(\mathbf{f}) = \sum_{i=1}^n \log \sigma(y_i f_i) - \frac{1}{2} \mathbf{f}^\top \mathbf{K}^{-1} \mathbf{f} - \frac{1}{2} \log |\mathbf{K}| + \text{const}. \]
- 众数 \(\hat{\mathbf{f}}\) 需满足梯度 \(\nabla \Psi(\mathbf{f}) = 0\)。计算梯度:
\[ \nabla \Psi(\mathbf{f}) = \nabla \log p(\mathbf{y} | \mathbf{f}) - \mathbf{K}^{-1} \mathbf{f}, \]
其中 $ \nabla \log p(\mathbf{y} | \mathbf{f}) = \mathbf{y} \odot (\mathbf{1} - \boldsymbol{\sigma}(\mathbf{y} \odot \mathbf{f})) $,$ \boldsymbol{\sigma} $ 表示逐元素sigmoid函数,$ \odot $ 为逐元素乘。
- 使用牛顿-拉弗森法迭代求解:
\[ \mathbf{f}_{\text{new}} = \mathbf{f} - (\nabla^2 \Psi)^{-1} \nabla \Psi, \]
其中Hessian矩阵 $ \nabla^2 \Psi = -\mathbf{W} - \mathbf{K}^{-1} $,$ \mathbf{W} $ 是对角矩阵,元素 $ W_{ii} = -\frac{\partial^2 \log p(y_i | f_i)}{\partial f_i^2} = \sigma(f_i)(1-\sigma(f_i)) $(当 $ y_i=1 $ 时)。迭代至收敛得 $ \hat{\mathbf{f}} $.
-
构造高斯近似分布
- 在众数 \(\hat{\mathbf{f}}\) 处,Hessian矩阵 \(\mathbf{A} = -\nabla^2 \Psi(\mathbf{f})|_{\mathbf{f}=\hat{\mathbf{f}}} = \mathbf{W} + \mathbf{K}^{-1}\),其中 \(\mathbf{W}\) 由 \(\hat{\mathbf{f}}\) 计算。
- 近似后验为 \(q(\mathbf{f} | \mathbf{X}, \mathbf{y}) = \mathcal{N}(\hat{\mathbf{f}}, \mathbf{A}^{-1})\)。利用矩阵恒等式可写协方差为 \(\mathbf{A}^{-1} = (\mathbf{K}^{-1} + \mathbf{W})^{-1} = \mathbf{K} - \mathbf{K}(\mathbf{K} + \mathbf{W}^{-1})^{-1} \mathbf{K}\).
-
预测新样本
- 对新样本 \(\mathbf{x}_*\),预测其隐变量 \(f_*\) 的后验:
\[ q(f_* | \mathbf{X}, \mathbf{y}, \mathbf{x}_*) = \int p(f_* | \mathbf{X}, \mathbf{x}_*, \mathbf{f}) q(\mathbf{f} | \mathbf{X}, \mathbf{y}) d\mathbf{f}, \]
其中 $ p(f_* | \mathbf{X}, \mathbf{x}_*, \mathbf{f}) = \mathcal{N}(\mathbf{k}_*^\top \mathbf{K}^{-1} \mathbf{f}, k_{**} - \mathbf{k}_*^\top \mathbf{K}^{-1} \mathbf{k}_*) $,$ \mathbf{k}_* = [k(\mathbf{x}_*, \mathbf{x}_1), \dots, k(\mathbf{x}_*, \mathbf{x}_n)]^\top $,$ k_{**} = k(\mathbf{x}_*, \mathbf{x}_*) $.
- 由于积分涉及高斯分布,结果仍为高斯:\(q(f_* | \mathbf{X}, \mathbf{y}, \mathbf{x}_*) = \mathcal{N}(\mu_*, \sigma_*^2)\),其中
\[ \mu_* = \mathbf{k}_*^\top \mathbf{K}^{-1} \hat{\mathbf{f}}, \quad \sigma_*^2 = k_{**} - \mathbf{k}_*^\top (\mathbf{K} + \mathbf{W}^{-1})^{-1} \mathbf{k}_*. \]
- 最终分类概率需积分:\(p(y_* = +1 | \mathbf{X}, \mathbf{y}, \mathbf{x}_*) = \int \sigma(f_*) q(f_* | \mathbf{X}, \mathbf{y}, \mathbf{x}_*) df_*\)。此积分无闭式解,但可借助probit函数近似或数值积分(如高斯-埃尔米特积分)计算。
关键点总结
拉普拉斯近似通过将非高斯后验在众数处用高斯分布逼近,将推断转化为优化问题(找众数)和矩阵运算。其精度取决于后验分布的单峰性与对称性,适用于中等规模数据集。