变分推断(Variational Inference)算法的原理与计算过程
题目描述
变分推断是机器学习中一种重要的近似推断方法,用于在概率模型中近似计算难以直接求解的后验分布。当模型包含隐变量时,后验分布通常无法解析求解,变分推断通过引入一个易处理的变分分布来逼近真实后验,将推断问题转化为优化问题。本题目将详细讲解变分推断的数学原理、变分下界的推导,以及坐标上升算法的优化过程。
解题过程
- 问题定义
假设我们有一个概率模型,其中观测变量为 \(X\),隐变量为 \(Z\),模型联合分布为 \(p(X, Z)\)。目标是计算后验分布 \(p(Z | X)\),但由于积分 \(p(X) = \int p(X, Z) dZ\) 难以计算,直接求解后验不可行。变分推断通过引入变分分布 \(q(Z)\)(属于某个易处理的分布族,如高斯分布),并最小化 \(q(Z)\) 与真实后验 \(p(Z | X)\) 的KL散度来近似后验:
\[ \text{KL}(q(Z) \| p(Z | X)) = \mathbb{E}_{q} \left[ \log \frac{q(Z)}{p(Z | X)} \right] \]
- 证据下界(ELBO)的推导
直接最小化KL散度不可行(因涉及真实后验),转而最大化证据下界(ELBO)。对边缘似然 \(\log p(X)\) 分解:
\[ \log p(X) = \text{ELBO}(q) + \text{KL}(q(Z) \| p(Z | X)) \]
其中ELBO定义为:
\[ \text{ELBO}(q) = \mathbb{E}_{q} [\log p(X, Z)] - \mathbb{E}_{q} [\log q(Z)] \]
- 第一项是联合分布的期望,鼓励 \(q\) 将质量放在能解释观测数据的隐变量上。
- 第二项是 \(q\) 的熵,鼓励 \(q\) 更分散以避免过拟合。
由于 \(\log p(X)\) 是常数,最大化ELBO等价于最小化KL散度。
- 平均场变分推断
为简化问题,常假设变分分布可分解(平均场假设):
\[ q(Z) = \prod_{j=1}^{m} q_j(Z_j) \]
其中 \(Z\) 被划分为 \(m\) 个不相交组。通过固定其他 \(q_{k \neq j}\) 优化 \(q_j\),可推导出最优解:
\[ \log q_j^*(Z_j) = \mathbb{E}_{i \neq j} [\log p(X, Z)] + \text{const.} \]
这里期望是对所有 \(Z_i (i \neq j)\) 在 \(q_i\) 下取期望。该式表明,\(q_j^*\) 的形式由联合分布的对数期望决定,通常可解析求解(如指数族分布)。
-
坐标上升优化算法
通过迭代更新每个 \(q_j\) 以最大化ELBO:- 初始化:随机设置变分参数(如均值和方差)。
- 迭代更新:对于 \(j = 1, \dots, m\):
- 计算 \(\mathbb{E}_{i \neq j} [\log p(X, Z)]\)(期望在当前 \(q_{i \neq j}\) 下计算)。
- 根据 \(\log q_j^* \propto \mathbb{E}_{i \neq j} [\log p(X, Z)]\) 更新 \(q_j\)。
- 收敛判断:当ELBO的变化小于阈值时停止。
-
应用示例
以高斯混合模型为例:- 隐变量 \(Z\) 包括簇分配和均值/方差参数。
- 变分分布 \(q\) 假设为高斯分布(参数)和类别分布(分配)。
- 更新 \(q\) 时,簇参数的更新依赖数据点的加权统计量,分配的更新依赖参数的后验概率。
总结
变分推断通过优化易处理的变分分布逼近复杂后验,其核心是最大化ELBO。平均场假设和坐标上升算法使计算可行,适用于大规模概率模型。与MCMC采样相比,变分推断更高效但可能低估后验方差。