高斯过程分类(Gaussian Process Classification)的拉普拉斯近似推断过程
题目描述
高斯过程分类(GPC)是一种基于高斯过程先验的非参数概率分类模型,适用于二分类或多分类任务。与高斯过程回归(GPR)直接建模输出不同,GPC需通过链接函数(如Sigmoid)将隐函数映射到概率空间。核心挑战是隐函数的后验分布无法直接计算,需用近似推断方法(如拉普拉斯近似)求解。本题要求详细解释拉普拉斯近似在GPC中的原理与实现步骤。
解题过程
-
问题定义
- 输入:训练集 \(X = \{\mathbf{x}_i\}_{i=1}^n\)(特征向量),标签 \(\mathbf{y} = \{y_i\}_{i=1}^n\)(二分类时 \(y_i \in \{0,1\}\))。
- 目标:对新样本 \(\mathbf{x}_*\) 预测其类别概率 \(p(y_*=1 \mid \mathbf{x}_*, X, \mathbf{y})\)。
- 隐函数模型:引入隐变量 \(\mathbf{f} = [f_1, \dots, f_n]^\top\),满足 \(p(y_i=1 \mid f_i) = \sigma(f_i)\)(例如Sigmoid函数 \(\sigma(z) = 1/(1+e^{-z})\))。
- 高斯过程先验:假设 \(\mathbf{f} \sim \mathcal{N}(\mathbf{0}, K)\),其中 \(K\) 是核矩阵(如RBF核),\(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
-
后验分布近似
- 后验 \(p(\mathbf{f} \mid X, \mathbf{y}) \propto p(\mathbf{y} \mid \mathbf{f}) p(\mathbf{f} \mid X)\) 因似然 \(p(\mathbf{y} \mid \mathbf{f})\) 非高斯而难解。
- 拉普拉斯近似思想:用高斯分布 \(q(\mathbf{f} \mid X, \mathbf{y}) = \mathcal{N}(\mathbf{f} \mid \hat{\mathbf{f}}, A^{-1})\) 逼近真实后验,其中 \(\hat{\mathbf{f}}\) 是后验众数(使后验概率最大的 \(\mathbf{f}\)),\(A\) 是负对数后验的Hessian矩阵。
-
求解后验众数 \(\hat{\mathbf{f}}\)
- 目标:最大化对数后验 \(\Psi(\mathbf{f}) = \log p(\mathbf{y} \mid \mathbf{f}) + \log p(\mathbf{f} \mid X)\)。
- 具体形式:
\[ \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| + C \]
- 使用牛顿法迭代求解:
- 初始化 \(\mathbf{f}^{(0)} = \mathbf{0}\)。
- 迭代更新: \(\mathbf{f}^{\text{new}} = \mathbf{f} - (\nabla^2 \Psi)^{-1} \nabla \Psi\),其中:
- 梯度 \(\nabla \Psi = \nabla \log p(\mathbf{y} \mid \mathbf{f}) - K^{-1} \mathbf{f}\),其中 \(\nabla \log p(\mathbf{y} \mid \mathbf{f}) = \mathbf{y} - \sigma(\mathbf{f})\)(对Sigmoid似然)。
- Hessian矩阵 \(\nabla^2 \Psi = -W - K^{-1}\),\(W\) 为对角阵,元素 \(W_{ii} = \sigma(f_i)(1-\sigma(f_i))\)。
- 收敛后得 \(\hat{\mathbf{f}}\)。
-
计算近似后验协方差
- 在 \(\hat{\mathbf{f}}\) 处,Hessian矩阵 \(A = -\nabla^2 \Psi(\hat{\mathbf{f}}) = W + K^{-1}\)。
- 近似后验协方差为 \(A^{-1} = (W + K^{-1})^{-1}\)。
- 利用矩阵求逆引理简化: \(A^{-1} = K - K(W^{-1} + K)^{-1} K\)。
-
预测新样本
- 隐函数预测:对新点 \(\mathbf{x}_*\),联合分布为:
\[ \begin{bmatrix} \mathbf{f} \\ f_* \end{bmatrix} \sim \mathcal{N}\left( \mathbf{0}, \begin{bmatrix} K & \mathbf{k}_* \\ \mathbf{k}_*^\top & k_{**} \end{bmatrix} \right), \quad \mathbf{k}_* = [k(\mathbf{x}_*, \mathbf{x}_1), \dots, k(\mathbf{x}_*, \mathbf{x}_n)]^\top, \ k_{**} = k(\mathbf{x}_*, \mathbf{x}_*) \]
- 条件分布 \(p(f_* \mid X, \mathbf{y}, \mathbf{x}_*) \approx \int p(f_* \mid X, \mathbf{x}_*, \mathbf{f}) q(\mathbf{f} \mid X, \mathbf{y}) d\mathbf{f}\) 为高斯分布:
- 均值 \(\mathbb{E}[f_*] = \mathbf{k}_*^\top K^{-1} \hat{\mathbf{f}} = \mathbf{k}_*^\top (K^{-1} \hat{\mathbf{f}})\)。
- 方差 \(\mathbb{V}[f_*] = k_{**} - \mathbf{k}_*^\top (K + W^{-1})^{-1} \mathbf{k}_*\)。
- 类别概率: \(p(y_*=1 \mid X, \mathbf{y}, \mathbf{x}_*) \approx \int \sigma(f_*) p(f_* \mid X, \mathbf{y}, \mathbf{x}_*) df_*\)。
- 由于积分无闭式解,常用近似(如Probit近似):
\[ p(y_*=1) \approx \sigma\left( \frac{\mathbb{E}[f_*]}{\sqrt{1 + \pi \mathbb{V}[f_*]/8}} \right) \]
关键点总结
- 拉普拉斯近似通过高斯分布逼近非高斯后验,核心是求众数 \(\hat{\mathbf{f}}\) 和Hessian矩阵 \(A\)。
- 预测时需处理隐函数到概率的映射,常用数值技巧简化计算。
- 该方法平衡了精度与效率,是GPC的经典推断手段。