基于期望传播(Expectation Propagation, EP)算法的高斯过程分类近似推断
题目描述
高斯过程分类(Gaussian Process Classification, GPC)是一种强大的贝叶斯非参数模型,用于解决分类问题。与回归不同,GPC需要处理非高斯似然(如伯努利或多项逻辑似然),这使得其后验分布无法以封闭形式获得。期望传播(EP)是一种确定性近似推断方法,通过用简单的分布(如高斯分布)局部近似复杂的后验,特别适合解决GPC中的非高斯似然问题。本题目旨在详细讲解:1. GPC模型的构建与推断难题;2. EP算法的核心思想;3. EP算法在GPC中的具体实施步骤,包括“期望化”和“传播”两个关键环节;4. 如何利用EP的近似结果进行预测。
解题过程
步骤一:高斯过程分类模型与推断挑战
首先,我们设定一个二分类问题,输入数据为 \(\mathbf{X} = \{\mathbf{x}_i\}_{i=1}^N\),对应的标签为 \(\mathbf{y} = \{y_i\}_{i=1}^N\),其中 \(y_i \in \{+1, -1\}\)。
-
潜在函数与先验:
- 引入一个连续的潜在函数 \(f(\mathbf{x})\),其值决定了样本属于正类的概率。
- 为这个潜在函数 \(f\) 设定一个高斯过程先验:\(f(\mathbf{x}) \sim \mathcal{GP}(m(\mathbf{x}), k(\mathbf{x}, \mathbf{x}'))\)。通常均值函数 \(m(\mathbf{x}) = 0\),协方差函数(核函数) \(k(\cdot, \cdot)\) 如径向基函数(RBF)核。
- 在训练集 \(\mathbf{X}\) 上,潜在函数值 \(\mathbf{f} = \{f_i\}_{i=1}^N\) 的先验分布是多元高斯:\(p(\mathbf{f} | \mathbf{X}) = \mathcal{N}(\mathbf{0}, \mathbf{K})\),其中 \(\mathbf{K}\) 是核矩阵, \(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\)。
-
似然函数:
- 标签 \(y_i\) 由潜在函数值 \(f_i\) 通过一个非线性连接函数(通常使用sigmoid函数,如逻辑函数或累积高斯函数)生成。例如,使用累积高斯(probit)似然:
\[ p(y_i | f_i) = \Phi(y_i f_i) = \int_{-\infty}^{y_i f_i} \mathcal{N}(z | 0, 1) \, dz \]
这里 $ \Phi(\cdot) $ 是标准正态分布的累积分布函数。
- 推断目标与挑战:
- 我们需要计算潜在函数值 \(\mathbf{f}\) 的后验分布 \(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 p(y_i | f_i)\) 是非高斯的(probit函数),先验虽然是高斯,但乘以非高斯似然后,精确的后验分布 \(p(\mathbf{f} | \mathbf{X}, \mathbf{y})\) 不再是高斯分布,难以直接处理(例如,无法得到闭合解的预测分布)。
- 因此,我们需要对后验进行近似。
步骤二:期望传播(EP)算法的核心思想
EP是一种迭代式的确定性近似推断方法,目标是为一个难以处理的复杂分布 \(p(\mathbf{f})\)(此处即后验)找到一个近似的高斯分布 \(q(\mathbf{f})\)。
-
总体近似策略: EP将复杂的整体分布近似为一系列简单的局部因子的乘积,每个局部因子用一个简单分布(如高斯)来近似,最终这些近似因子的乘积构成全局近似分布。
-
在GPC中的具体应用: 将后验重写为:
\[ p(\mathbf{f} | \mathbf{X}, \mathbf{y}) \propto p(\mathbf{f}) \prod_{i=1}^N p(y_i | f_i) \]
其中, $ p(\mathbf{f}) = \mathcal{N}(\mathbf{0}, \mathbf{K}) $ 是先验。
* 我们将每个非高斯的似然项 $ t_i(f_i) \triangleq p(y_i | f_i) $ 视为一个“局部因子”。
* EP的目标是为每个局部因子 $ t_i(f_i) $ 找到一个**未归一化的高斯分布** $ \tilde{t}_i(f_i) $ 来近似它。
* 于是,全局近似后验 $ q(\mathbf{f}) $ 定义为:
\[ q(\mathbf{f}) \propto p(\mathbf{f}) \prod_{i=1}^N \tilde{t}_i(f_i) \quad \text{,其中 } \tilde{t}_i(f_i) = \tilde{s}_i \exp\left(-\frac{1}{2} \tilde{v}_i^{-1} (f_i - \tilde{m}_i)^2 \right) \]
这里 $ \tilde{m}_i, \tilde{v}_i, \tilde{s}_i $ 是待确定的近似参数(均值、方差、尺度因子)。由于我们最终只关心 $ \mathbf{f} $ 的分布,尺度因子 $ \tilde{s}_i $ 通常可以忽略。
步骤三:EP算法的具体迭代步骤(“期望化”与“传播”)
EP算法通过逐一更新每个局部近似因子 \(\tilde{t}_i\) 来迭代优化。以更新第 \(i\) 个因子为例,一轮迭代包含以下四步:
- 计算减除后的分布 \(q^{\setminus i}(\mathbf{f})\):
- 在全局近似分布 \(q(\mathbf{f})\) 中,暂时移除(“减除”)第 \(i\) 个近似因子 \(\tilde{t}_i\) 的影响。
- 由于 \(q(\mathbf{f})\) 是高斯,且 \(\tilde{t}_i\) 是高斯函数,其乘积和除法操作都可以解析完成。具体地:
\[ q^{\setminus i}(\mathbf{f}) \propto \frac{q(\mathbf{f})}{\tilde{t}_i(f_i)} \]
这是一个高斯分布,我们可以利用高斯分布的参数形式(均值和协方差)来计算其参数。特别地,我们只需要得到关于 $ f_i $ 的边缘分布 $ q^{\setminus i}(f_i) $,它是一个一维高斯分布:$ q^{\setminus i}(f_i) = \mathcal{N}(f_i | \mu^{\setminus i}, \sigma^2_{\setminus i}) $。
- 计算“精炼”分布 \(\hat{p}(f_i)\):
- 这是**“期望化”**步骤。我们用精确的(非高斯)因子 \(t_i(f_i)\) 替换被移除的近似因子,得到一个更精确但可能非高斯的临时分布:
\[ \hat{p}(f_i) \propto t_i(f_i) \cdot q^{\setminus i}(f_i) \]
* $ q^{\setminus i}(f_i) $ 是高斯,$ t_i(f_i) = \Phi(y_i f_i) $ 是非高斯。这个乘积分布 $ \hat{p}(f_i) $ 是真正我们想近似,但又无法直接使用的后验在 $ f_i $ 上的边缘分布。
- 投影:计算新的近似因子 \(\tilde{t}_i^{new}(f_i)\):
- 我们希望找到一个新的一维高斯分布 \(\tilde{t}_i^{new}(f_i)\),使得当它与 \(q^{\setminus i}(f_i)\) 相乘时,得到的分布 \(q^{new}(f_i) \propto \tilde{t}_i^{new}(f_i) q^{\setminus i}(f_i)\) 尽可能接近上一步的 \(\hat{p}(f_i)\)。
- EP通过矩匹配(Moment Matching)来实现这个“接近”。具体来说,我们要求 \(q^{new}(f_i)\) 与 \(\hat{p}(f_i)\) 的前两阶矩(均值和方差)相等。这是**“传播”**步骤的体现,因为我们将 \(\hat{p}(f_i)\) 的信息(矩)传播回新的近似因子。
- 计算 \(\hat{p}(f_i)\) 的均值和方差(需要对一个一维非高斯分布进行数值积分或解析推导,对于probit似然有解析解):
\[ Z_i = \int \Phi(y_i f_i) \mathcal{N}(f_i | \mu^{\setminus i}, \sigma^2_{\setminus i}) df_i \]
\[ \mu_i = \mathbb{E}_{\hat{p}}[f_i], \quad \sigma_i^2 = \mathbb{V}_{\hat{p}}[f_i] \]
* 反解出新的近似因子参数 $ \tilde{m}_i^{new} $ 和 $ \tilde{v}_i^{new} $:
\[ \tilde{v}_i^{new} = (\sigma_i^{-2} - \sigma_{\setminus i}^{-2})^{-1}, \quad \tilde{m}_i^{new} = \tilde{v}_i^{new} (\sigma_i^{-2} \mu_i - \sigma_{\setminus i}^{-2} \mu^{\setminus i}) \]
(尺度因子 $ \tilde{s}_i^{new} $ 用于保证分布的归一化,通常在预测阶段不重要)。
- 更新全局近似后验 \(q(\mathbf{f})\):
- 将新的近似因子 \(\tilde{t}_i^{new}\) 放回,更新全局高斯分布 \(q(\mathbf{f})\) 的参数。这个过程相当于将第 \(i\) 个数据点对后验的影响(以高斯形式近似)重新融入整体模型。
- 利用高斯分布的性质,更新 \(q(\mathbf{f})\) 的均值和协方差矩阵。更新公式涉及矩阵求逆引理,可以高效实现。
以上四步对所有 \(N\) 个数据点循环进行,直到所有近似因子 \(\{\tilde{t}_i\}\) 的参数收敛为止。
步骤四:基于EP近似进行预测
一旦EP迭代收敛,我们得到了一个近似的高斯后验 \(q(\mathbf{f}) = \mathcal{N}(\mathbf{f} | \boldsymbol{\mu}, \boldsymbol{\Sigma})\)。对于一个新的测试点 \(\mathbf{x}_*\):
-
计算潜在函数预测分布:
- 利用GP的性质和 \(q(\mathbf{f})\),可以计算出测试点潜在函数值 \(f_*\) 的预测分布也是一个高斯分布:\(q(f_* | \mathbf{x}_*, \mathbf{X}, \mathbf{y}) = \mathcal{N}(f_* | \mu_*, \sigma^2_*)\)。
- 其均值和方差可以通过GP回归的公式计算,但其中用于调节的后验均值和协方差来自于EP的近似结果 \(\boldsymbol{\mu}\) 和 \(\boldsymbol{\Sigma}\)。
-
计算类别概率预测:
- 最终的预测是分类概率 \(p(y_* = +1 | \mathbf{x}_*, \mathbf{X}, \mathbf{y})\)。由于我们使用的是probit似然,需要将 \(f_*\) 的分布通过连接函数映射:
\[ p(y_* = +1 | \mathbf{x}_*, \mathbf{X}, \mathbf{y}) \approx \int \Phi(f_*) \cdot \mathcal{N}(f_* | \mu_*, \sigma^2_*) df_* = \Phi\left( \frac{\mu_*}{\sqrt{1 + \sigma^2_*}} \right) \]
这一步积分对于高斯输入到累积高斯函数的情况有解析解。
总结
期望传播算法为高斯过程分类提供了一种高效且通常非常准确的确定性近似推断方法。其核心在于用简单的高斯分布局部近似非高斯似然因子,并通过迭代的“期望化”(计算精确矩)和“传播”(更新全局高斯后验)步骤,最终获得一个易于处理的高斯后验近似,从而使得贝叶斯预测成为可能。与另一种常用方法拉普拉斯近似(Laplace Approximation)相比,EP通常能提供更准确的概率预测。