高斯过程分类(Gaussian Process Classification)的期望传播(EP)算法原理与计算过程
字数 5019 2025-12-04 17:51:19

高斯过程分类(Gaussian Process Classification)的期望传播(EP)算法原理与计算过程

题目描述
高斯过程分类(GPC)是一种基于贝叶斯框架的非参数分类方法,通过高斯过程先验对函数建模,并利用sigmoid函数(如logistic或probit)将函数值映射为类别概率。然而,由于sigmoid函数的非线性,后验分布无法直接求解。期望传播(Expectation Propagation, EP)算法通过局部矩匹配近似后验,高效处理非高斯似然问题。本题要求详细解释EP算法在GPC中的原理与计算步骤。


解题过程

1. 高斯过程分类模型设定

  • 二分类问题:输入数据 \(X = \{\mathbf{x}_i\}_{i=1}^n\),标签 \(\mathbf{y} = \{y_i\}_{i=1}^n\)\(y_i \in \{-1, +1\}\))。
  • 隐函数 \(f(\mathbf{x})\):假设服从高斯过程先验 \(f \sim \mathcal{GP}(0, k(\mathbf{x}, \mathbf{x}'))\),其中 \(k\) 是核函数(如RBF核)。
  • 似然函数:使用probit函数 \(p(y_i \mid f_i) = \Phi(y_i f_i)\)\(\Phi\) 为标准正态CDF),或logistic函数 \(\sigma(y_i f_i)\)
  • 后验分布

\[ p(\mathbf{f} \mid X, \mathbf{y}) = \frac{p(\mathbf{y} \mid \mathbf{f}) p(\mathbf{f} \mid X)}{p(\mathbf{y} \mid X)}, \]

其中 \(\mathbf{f} = [f(\mathbf{x}_1), \dots, f(\mathbf{x}_n)]^\top\),先验 \(p(\mathbf{f} \mid X) = \mathcal{N}(\mathbf{0}, K)\)\(K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j)\))。由于似然非高斯,后验无法解析求解。

2. 期望传播(EP)的核心思想

  • 目标:用高斯分布 \(q(\mathbf{f}) = \mathcal{N}(\mathbf{f} \mid \boldsymbol{\mu}, \Sigma)\) 近似后验 \(p(\mathbf{f} \mid X, \mathbf{y})\)
  • 分解似然:将联合分布写为

\[ p(\mathbf{f} \mid X, \mathbf{y}) \propto p(\mathbf{f} \mid X) \prod_{i=1}^n p(y_i \mid f_i) = p(\mathbf{f} \mid X) \prod_{i=1}^n t_i(f_i), \]

其中 \(t_i(f_i) = p(y_i \mid f_i)\) 为每个数据点的似然项。

  • 近似似然项:用未归一化的高斯函数 \(\tilde{t}_i(f_i) = \tilde{Z}_i \cdot \mathcal{N}(f_i \mid \tilde{\mu}_i, \tilde{\sigma}_i^2)\) 替代每个 \(t_i(f_i)\),参数 \(\{\tilde{Z}_i, \tilde{\mu}_i, \tilde{\sigma}_i^2\}\) 通过迭代优化。
  • 近似后验

\[ q(\mathbf{f}) \propto p(\mathbf{f} \mid X) \prod_{i=1}^n \tilde{t}_i(f_i) = \mathcal{N}(\mathbf{f} \mid \boldsymbol{\mu}, \Sigma), \]

其中均值和协方差通过高斯分布的乘积公式计算:

\[ \Sigma = (K^{-1} + \tilde{\Sigma}^{-1})^{-1}, \quad \boldsymbol{\mu} = \Sigma \tilde{\Sigma}^{-1} \tilde{\boldsymbol{\mu}}. \]

这里 \(\tilde{\Sigma} = \text{diag}(\tilde{\sigma}_1^2, \dots, \tilde{\sigma}_n^2)\)\(\tilde{\boldsymbol{\mu}} = [\tilde{\mu}_1, \dots, \tilde{\mu}_n]^\top\)

3. EP算法的迭代步骤
对每个数据点 \(i\),执行以下循环直至收敛:

  • 步骤1:移出当前近似项
    构造“剔除近似”的后验 \(q^{\setminus i}(\mathbf{f}) \propto q(\mathbf{f}) / \tilde{t}_i(f_i)\)。由于 \(q\)\(\tilde{t}_i\) 均为高斯,其均值和协方差为:

\[ \Sigma^{\setminus i} = (\Sigma^{-1} - \tilde{\sigma}_i^{-2} \mathbf{e}_i \mathbf{e}_i^\top)^{-1}, \quad \boldsymbol{\mu}^{\setminus i} = \Sigma^{\setminus i} (\Sigma^{-1} \boldsymbol{\mu} - \tilde{\mu}_i \tilde{\sigma}_i^{-2} \mathbf{e}_i), \]

其中 \(\mathbf{e}_i\) 为第 \(i\) 个单位向量。

  • 步骤2:计算真实后验的矩
    定义新分布 \(\hat{p}(\mathbf{f}) \propto q^{\setminus i}(\mathbf{f}) t_i(f_i)\)。虽然非高斯,但其边缘分布 \(\hat{p}(f_i)\) 可解析计算矩:
    • 零阶矩:\(Z_i = \int q^{\setminus i}(f_i) t_i(f_i) df_i\)
    • 一阶矩:\(\mu_{\text{new}, i} = \mathbb{E}_{\hat{p}}[f_i] = \frac{1}{Z_i} \int f_i q^{\setminus i}(f_i) t_i(f_i) df_i\)
    • 二阶矩:\(\sigma_{\text{new}, i}^2 = \mathbb{E}_{\hat{p}}[f_i^2] - \mu_{\text{new}, i}^2\)
      以probit似然为例,有 \(t_i(f_i) = \Phi(y_i f_i)\),计算可得:

\[ Z_i = \Phi(z_i), \quad z_i = \frac{y_i \mu^{\setminus i}_i}{\sqrt{1 + (\sigma^{\setminus i}_i)^2}}, \]

\[ \mu_{\text{new}, i} = \mu^{\setminus i}_i + \frac{(\sigma^{\setminus i}_i)^2 \cdot \mathcal{N}(z_i; 0, 1)}{Z_i \sqrt{1 + (\sigma^{\setminus i}_i)^2}} y_i, \]

\[ \sigma_{\text{new}, i}^2 = (\sigma^{\setminus i}_i)^2 - \frac{(\sigma^{\setminus i}_i)^4 \cdot \mathcal{N}(z_i; 0, 1)}{(1 + (\sigma^{\setminus i}_i)^2) Z_i} \left( z_i + \frac{\mathcal{N}(z_i; 0, 1)}{Z_i} \right). \]

  • 步骤3:更新近似项参数
    通过矩匹配更新 \(\tilde{t}_i\) 的参数,使新近似 \(\tilde{t}_i^{\text{new}}(f_i) \propto q^{\setminus i}(f_i) t_i(f_i)\) 的高斯矩与 \(\hat{p}(f_i)\) 一致:

\[ \tilde{\sigma}_i^2 = \left( \frac{1}{\sigma_{\text{new}, i}^2} - \frac{1}{(\sigma^{\setminus i}_i)^2} \right)^{-1}, \quad \tilde{\mu}_i = \tilde{\sigma}_i^2 \left( \frac{\mu_{\text{new}, i}}{\sigma_{\text{new}, i}^2} - \frac{\mu^{\setminus i}_i}{(\sigma^{\setminus i}_i)^2} \right). \]

同时更新归一化常数 \(\tilde{Z}_i = Z_i \cdot \mathcal{N}(\mu^{\setminus i}_i \mid \tilde{\mu}_i, \tilde{\sigma}_i^2 + (\sigma^{\setminus i}_i)^2) / \mathcal{N}(\tilde{\mu}_i \mid \mu^{\setminus i}_i, (\sigma^{\setminus i}_i)^2)\)

  • 步骤4:更新全局后验 \(q(\mathbf{f})\)
    用新参数 \(\tilde{\mu}_i, \tilde{\sigma}_i^2\) 更新 \(\tilde{\Sigma}\)\(\tilde{\boldsymbol{\mu}}\),重新计算 \(\Sigma\)\(\boldsymbol{\mu}\)

4. 预测新样本

  • 对于新输入 \(\mathbf{x}_*\),隐函数后验预测分布为:

\[ q(f_*) = \int p(f_* \mid \mathbf{f}) q(\mathbf{f}) d\mathbf{f} = \mathcal{N}(f_* \mid \mu_*, \sigma_*^2), \]

其中 \(\mu_* = \mathbf{k}_*^\top K^{-1} \boldsymbol{\mu}\)\(\sigma_*^2 = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}_*^\top (K^{-1} - K^{-1} \Sigma K^{-1}) \mathbf{k}_*\)\(\mathbf{k}_* = [k(\mathbf{x}_*, \mathbf{x}_1), \dots, k(\mathbf{x}_*, \mathbf{x}_n)]^\top\))。

  • 类别概率预测:

\[ p(y_* = +1 \mid \mathbf{x}_*) = \int \sigma(f_*) q(f_*) df_* \approx \Phi\left( \frac{\mu_*}{\sqrt{1 + \sigma_*^2}} \right) \quad (\text{probit近似}). \]

关键点总结
EP通过局部高斯近似似然项,迭代优化矩匹配,避免了对非高斯后验的直接处理。其优势在于高效利用高斯分布的性质,但需注意迭代可能不收敛的情况(可通过阻尼策略改进)。

高斯过程分类(Gaussian Process Classification)的期望传播(EP)算法原理与计算过程 题目描述 高斯过程分类(GPC)是一种基于贝叶斯框架的非参数分类方法,通过高斯过程先验对函数建模,并利用sigmoid函数(如logistic或probit)将函数值映射为类别概率。然而,由于sigmoid函数的非线性,后验分布无法直接求解。期望传播(Expectation Propagation, EP)算法通过局部矩匹配近似后验,高效处理非高斯似然问题。本题要求详细解释EP算法在GPC中的原理与计算步骤。 解题过程 1. 高斯过程分类模型设定 二分类问题 :输入数据 \( X = \{\mathbf{x} i\} {i=1}^n \),标签 \( \mathbf{y} = \{y_ i\}_ {i=1}^n \)(\( y_ i \in \{-1, +1\} \))。 隐函数 \( f(\mathbf{x}) \):假设服从高斯过程先验 \( f \sim \mathcal{GP}(0, k(\mathbf{x}, \mathbf{x}')) \),其中 \( k \) 是核函数(如RBF核)。 似然函数 :使用probit函数 \( p(y_ i \mid f_ i) = \Phi(y_ i f_ i) \)(\( \Phi \) 为标准正态CDF),或logistic函数 \( \sigma(y_ i f_ i) \)。 后验分布 : \[ p(\mathbf{f} \mid X, \mathbf{y}) = \frac{p(\mathbf{y} \mid \mathbf{f}) p(\mathbf{f} \mid X)}{p(\mathbf{y} \mid X)}, \] 其中 \( \mathbf{f} = [ f(\mathbf{x}_ 1), \dots, f(\mathbf{x} n)]^\top \),先验 \( p(\mathbf{f} \mid X) = \mathcal{N}(\mathbf{0}, K) \)(\( K {ij} = k(\mathbf{x}_ i, \mathbf{x}_ j) \))。由于似然非高斯,后验无法解析求解。 2. 期望传播(EP)的核心思想 目标 :用高斯分布 \( q(\mathbf{f}) = \mathcal{N}(\mathbf{f} \mid \boldsymbol{\mu}, \Sigma) \) 近似后验 \( p(\mathbf{f} \mid X, \mathbf{y}) \)。 分解似然 :将联合分布写为 \[ p(\mathbf{f} \mid X, \mathbf{y}) \propto p(\mathbf{f} \mid X) \prod_ {i=1}^n p(y_ i \mid f_ i) = p(\mathbf{f} \mid X) \prod_ {i=1}^n t_ i(f_ i), \] 其中 \( t_ i(f_ i) = p(y_ i \mid f_ i) \) 为每个数据点的似然项。 近似似然项 :用未归一化的高斯函数 \( \tilde{t}_ i(f_ i) = \tilde{Z}_ i \cdot \mathcal{N}(f_ i \mid \tilde{\mu}_ i, \tilde{\sigma}_ i^2) \) 替代每个 \( t_ i(f_ i) \),参数 \( \{\tilde{Z}_ i, \tilde{\mu}_ i, \tilde{\sigma}_ i^2\} \) 通过迭代优化。 近似后验 : \[ q(\mathbf{f}) \propto p(\mathbf{f} \mid X) \prod_ {i=1}^n \tilde{t}_ i(f_ i) = \mathcal{N}(\mathbf{f} \mid \boldsymbol{\mu}, \Sigma), \] 其中均值和协方差通过高斯分布的乘积公式计算: \[ \Sigma = (K^{-1} + \tilde{\Sigma}^{-1})^{-1}, \quad \boldsymbol{\mu} = \Sigma \tilde{\Sigma}^{-1} \tilde{\boldsymbol{\mu}}. \] 这里 \( \tilde{\Sigma} = \text{diag}(\tilde{\sigma}_ 1^2, \dots, \tilde{\sigma}_ n^2) \),\( \tilde{\boldsymbol{\mu}} = [ \tilde{\mu}_ 1, \dots, \tilde{\mu}_ n ]^\top \)。 3. EP算法的迭代步骤 对每个数据点 \( i \),执行以下循环直至收敛: 步骤1:移出当前近似项 构造“剔除近似”的后验 \( q^{\setminus i}(\mathbf{f}) \propto q(\mathbf{f}) / \tilde{t}_ i(f_ i) \)。由于 \( q \) 和 \( \tilde{t}_ i \) 均为高斯,其均值和协方差为: \[ \Sigma^{\setminus i} = (\Sigma^{-1} - \tilde{\sigma}_ i^{-2} \mathbf{e}_ i \mathbf{e}_ i^\top)^{-1}, \quad \boldsymbol{\mu}^{\setminus i} = \Sigma^{\setminus i} (\Sigma^{-1} \boldsymbol{\mu} - \tilde{\mu}_ i \tilde{\sigma}_ i^{-2} \mathbf{e}_ i), \] 其中 \( \mathbf{e}_ i \) 为第 \( i \) 个单位向量。 步骤2:计算真实后验的矩 定义新分布 \( \hat{p}(\mathbf{f}) \propto q^{\setminus i}(\mathbf{f}) t_ i(f_ i) \)。虽然非高斯,但其边缘分布 \( \hat{p}(f_ i) \) 可解析计算矩: 零阶矩:\( Z_ i = \int q^{\setminus i}(f_ i) t_ i(f_ i) df_ i \), 一阶矩:\( \mu_ {\text{new}, i} = \mathbb{E}_ {\hat{p}}[ f_ i] = \frac{1}{Z_ i} \int f_ i q^{\setminus i}(f_ i) t_ i(f_ i) df_ i \), 二阶矩:\( \sigma_ {\text{new}, i}^2 = \mathbb{E} {\hat{p}}[ f_ i^2] - \mu {\text{new}, i}^2 \)。 以probit似然为例,有 \( t_ i(f_ i) = \Phi(y_ i f_ i) \),计算可得: \[ Z_ i = \Phi(z_ i), \quad z_ i = \frac{y_ i \mu^{\setminus i}_ i}{\sqrt{1 + (\sigma^{\setminus i} i)^2}}, \] \[ \mu {\text{new}, i} = \mu^{\setminus i}_ i + \frac{(\sigma^{\setminus i}_ i)^2 \cdot \mathcal{N}(z_ i; 0, 1)}{Z_ i \sqrt{1 + (\sigma^{\setminus i} i)^2}} y_ i, \] \[ \sigma {\text{new}, i}^2 = (\sigma^{\setminus i}_ i)^2 - \frac{(\sigma^{\setminus i}_ i)^4 \cdot \mathcal{N}(z_ i; 0, 1)}{(1 + (\sigma^{\setminus i}_ i)^2) Z_ i} \left( z_ i + \frac{\mathcal{N}(z_ i; 0, 1)}{Z_ i} \right). \] 步骤3:更新近似项参数 通过矩匹配更新 \( \tilde{t}_ i \) 的参数,使新近似 \( \tilde{t}_ i^{\text{new}}(f_ i) \propto q^{\setminus i}(f_ i) t_ i(f_ i) \) 的高斯矩与 \( \hat{p}(f_ i) \) 一致: \[ \tilde{\sigma} i^2 = \left( \frac{1}{\sigma {\text{new}, i}^2} - \frac{1}{(\sigma^{\setminus i}_ i)^2} \right)^{-1}, \quad \tilde{\mu} i = \tilde{\sigma} i^2 \left( \frac{\mu {\text{new}, i}}{\sigma {\text{new}, i}^2} - \frac{\mu^{\setminus i}_ i}{(\sigma^{\setminus i}_ i)^2} \right). \] 同时更新归一化常数 \( \tilde{Z}_ i = Z_ i \cdot \mathcal{N}(\mu^{\setminus i}_ i \mid \tilde{\mu}_ i, \tilde{\sigma}_ i^2 + (\sigma^{\setminus i}_ i)^2) / \mathcal{N}(\tilde{\mu}_ i \mid \mu^{\setminus i}_ i, (\sigma^{\setminus i}_ i)^2) \)。 步骤4:更新全局后验 \( q(\mathbf{f}) \) 用新参数 \( \tilde{\mu}_ i, \tilde{\sigma}_ i^2 \) 更新 \( \tilde{\Sigma} \) 和 \( \tilde{\boldsymbol{\mu}} \),重新计算 \( \Sigma \) 和 \( \boldsymbol{\mu} \)。 4. 预测新样本 对于新输入 \( \mathbf{x} * \),隐函数后验预测分布为: \[ q(f ) = \int p(f_ \mid \mathbf{f}) q(\mathbf{f}) d\mathbf{f} = \mathcal{N}(f_* \mid \mu_ , \sigma_ ^2), \] 其中 \( \mu_* = \mathbf{k} * ^\top K^{-1} \boldsymbol{\mu} \),\( \sigma ^2 = k(\mathbf{x}_ , \mathbf{x} * ) - \mathbf{k} ^\top (K^{-1} - K^{-1} \Sigma K^{-1}) \mathbf{k}_ \)(\( \mathbf{k} * = [ k(\mathbf{x} , \mathbf{x} 1), \dots, k(\mathbf{x} , \mathbf{x}_ n) ]^\top \))。 类别概率预测: \[ p(y_* = +1 \mid \mathbf{x} * ) = \int \sigma(f ) q(f_ ) df_* \approx \Phi\left( \frac{\mu_ }{\sqrt{1 + \sigma_ ^2}} \right) \quad (\text{probit近似}). \] 关键点总结 EP通过局部高斯近似似然项,迭代优化矩匹配,避免了对非高斯后验的直接处理。其优势在于高效利用高斯分布的性质,但需注意迭代可能不收敛的情况(可通过阻尼策略改进)。