高斯过程分类(Gaussian Process Classification)的期望传播(EP)算法原理与计算过程
题目描述
高斯过程分类(GPC)是一种基于高斯过程(GP)的非参数概率模型,用于解决二分类或多分类问题。与高斯过程回归(GPR)不同,GPC的输出需通过sigmoid函数(如logistic函数)映射到概率空间,导致后验分布非高斯,无法直接解析求解。期望传播(Expectation Propagation, EP)算法通过局部近似,将非高斯的似然项替换为高斯形式,从而逼近真实后验分布。本题将详细讲解EP算法在GPC中的原理与计算步骤。
解题过程
-
问题定义
- 输入数据:\(X = \{\mathbf{x}_i\}_{i=1}^n\),标签 \(\mathbf{y} = \{y_i\}_{i=1}^n\)(二分类中 \(y_i \in \{-1, +1\}\))。
- 隐变量:为每个样本引入隐函数值 \(f_i = f(\mathbf{x}_i)\),服从零均值高斯过程先验 \(\mathbf{f} \sim \mathcal{N}(\mathbf{0}, K)\),其中 \(K\) 是核矩阵(如RBF核),\(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
- 似然函数:使用sigmoid函数(如 \(\sigma(z) = 1/(1+e^{-z})\))将 \(f_i\) 映射到标签概率,即 \(p(y_i | f_i) = \sigma(y_i f_i)\)。
- 目标:求隐变量后验 \(p(\mathbf{f} | X, \mathbf{y}) \propto p(\mathbf{f}) \prod_{i=1}^n p(y_i | f_i)\)。由于似然项非高斯,后验无法直接计算。
-
EP算法的核心思想
- 用高斯形式的"局部近似项" \(\tilde{t}_i(f_i) = \tilde{Z}_i \mathcal{N}(f_i | \tilde{\mu}_i, \tilde{\sigma}_i^2)\) 替换每个非高斯的似然项 \(t_i(f_i) = p(y_i | f_i)\),使得整体后验近似为高斯分布 \(q(\mathbf{f})\)。
- 通过迭代优化每个 \(\tilde{t}_i\) 的参数 \((\tilde{Z}_i, \tilde{\mu}_i, \tilde{\sigma}_i^2)\),使近似后验 \(q(\mathbf{f})\) 逼近真实后验。
-
EP算法的步骤
步骤1:初始化近似项- 为每个样本初始化 \(\tilde{t}_i(f_i)\),通常设 \(\tilde{\mu}_i = 0\),\(\tilde{\sigma}_i^2 = \infty\)(即初始近似项对后验无约束)。
- 初始近似后验 \(q(\mathbf{f}) \propto p(\mathbf{f}) \prod_i \tilde{t}_i(f_i)\) 即为先验 \(\mathcal{N}(\mathbf{0}, K)\)。
步骤2:循环更新每个近似项
对于每个样本 \(i\)(顺序或随机):- 移出当前近似项:计算剔除 \(\tilde{t}_i\) 后的"削除后验"(cavity distribution):
\[ q_{\backslash i}(\mathbf{f}) \propto \frac{q(\mathbf{f})}{\tilde{t}_i(f_i)} \implies q_{\backslash i}(f_i) = \mathcal{N}(f_i | \mu_{\backslash i}, \sigma_{\backslash i}^2), \]
其中均值和方差通过高斯条件分布公式计算(若 $ q(\mathbf{f}) = \mathcal{N}(\mathbf{f} | \mu, \Sigma) $,则 $ \mu_{\backslash i} = \mu_i - \Sigma_{ii} \tilde{\sigma}_i^{-2} (\mu_i - \tilde{\mu}_i) $,$ \sigma_{\backslash i}^2 = \Sigma_{ii} - \Sigma_{ii}^2 (\Sigma_{ii} + \tilde{\sigma}_i^2)^{-1} $)。
- 计算新后验:将真实似然项 \(t_i(f_i) = p(y_i | f_i)\) 与削除后验结合,得非高斯分布:
\[ \hat{p}(f_i) \propto q_{\backslash i}(f_i) \cdot t_i(f_i). \]
- 矩匹配:找到高斯分布 \(\mathcal{N}(f_i | \hat{\mu}_i, \hat{\sigma}_i^2)\),使其与 \(\hat{p}(f_i)\) 的一阶矩(均值)和二阶矩(方差)匹配。需计算:
\[ \hat{Z}_i = \mathbb{E}_{q_{\backslash i}}[t_i(f_i)], \quad \hat{\mu}_i = \mathbb{E}_{q_{\backslash i}}[f_i t_i(f_i)] / \hat{Z}_i, \quad \hat{\sigma}_i^2 = \mathbb{E}_{q_{\backslash i}}[f_i^2 t_i(f_i)] / \hat{Z}_i - \hat{\mu}_i^2. \]
这些期望涉及一维积分,可用数值方法(如高斯-埃尔米特求积)计算。
- 更新近似项:根据矩匹配结果,反推新近似项参数:
\[ \tilde{\sigma}_i^2 = \left( \hat{\sigma}_i^{-2} - \sigma_{\backslash i}^{-2} \right)^{-1}, \quad \tilde{\mu}_i = \tilde{\sigma}_i^2 \left( \hat{\sigma}_i^{-2} \hat{\mu}_i - \sigma_{\backslash i}^{-2} \mu_{\backslash i} \right), \quad \tilde{Z}_i = \hat{Z}_i \cdot \sqrt{2\pi (\sigma_{\backslash i}^2 + \tilde{\sigma}_i^2)} \exp\left( \frac{(\mu_{\backslash i} - \tilde{\mu}_i)^2}{2(\sigma_{\backslash i}^2 + \tilde{\sigma}_i^2)} \right). \]
- 更新全局后验:将新 \(\tilde{t}_i(f_i)\) 代入,更新 \(q(\mathbf{f})\) 的均值和协方差:
\[ \Sigma = \left( K^{-1} + \tilde{\Sigma}^{-1} \right)^{-1}, \quad \mu = \Sigma \tilde{\Sigma}^{-1} \tilde{\mu}, \]
其中 $ \tilde{\Sigma} = \text{diag}(\tilde{\sigma}_1^2, \dots, \tilde{\sigma}_n^2) $,$ \tilde{\mu} = [\tilde{\mu}_1, \dots, \tilde{\mu}_n]^\top $。
步骤3:收敛判断
- 重复步骤2直至所有 \(\tilde{t}_i\) 的参数变化小于阈值,或近似后验 \(q(\mathbf{f})\) 稳定。
- 预测新样本
- 对新点 \(\mathbf{x}_*\),计算隐函数后验 \(q(f_*) = \mathcal{N}(f_* | \mu_*, \sigma_*^2)\),其中:
\[ \mu_* = \mathbf{k}_*^\top (K + \tilde{\Sigma})^{-1} \tilde{\mu}, \quad \sigma_*^2 = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}_*^\top (K + \tilde{\Sigma})^{-1} \mathbf{k}_*. \]
- 通过sigmoid函数积分得预测概率:\(p(y_* = +1 | \mathbf{x}_*) \approx \int \sigma(f_*) q(f_*) df_*\),可数值计算。
关键点
- EP通过局部高斯近似处理非高斯似然,比拉普拉斯近似更精确。
- 需迭代更新所有样本的近似项,每次更新依赖全局后验的矩匹配。
- 适用于二分类问题,多分类问题需结合softmax函数和多元EP扩展。