随机变量的变换的变分推断方法
变分推断是一种在概率图模型和贝叶斯统计中广泛使用的近似推断技术。它的核心思想是将复杂的后验分布推断问题转化为一个优化问题。我们将从基础概念开始,逐步深入其数学原理和实现方法。
第一步:理解推断问题与近似需求
- 贝叶斯推断的核心问题:在贝叶斯统计中,我们有一个模型,它包含观测变量(数据)\(\mathbf{x}\) 和潜在变量(参数)\(\mathbf{z}\)。我们的目标是根据观测到的数据 \(\mathbf{x}\),计算潜在变量 \(\mathbf{z}\) 的后验分布:
\[ p(\mathbf{z} | \mathbf{x}) = \frac{p(\mathbf{x} | \mathbf{z}) p(\mathbf{z})}{p(\mathbf{x})} \]
其中,\(p(\mathbf{x} | \mathbf{z})\) 是似然函数,\(p(\mathbf{z})\) 是先验分布,\(p(\mathbf{x})\) 是证据(或边缘似然)。
- 计算困境:证据 \(p(\mathbf{x})\) 的计算通常非常困难,因为它涉及一个高维积分或求和:
\[ p(\mathbf{x}) = \int p(\mathbf{x} | \mathbf{z}) p(\mathbf{z}) d\mathbf{z} \]
对于许多复杂的模型(如那些具有复杂先验或似然函数的模型),这个积分是难以处理的。因此,我们无法直接得到精确的后验分布 \(p(\mathbf{z} | \mathbf{x})\)。
- 近似推断的解决方案:既然精确推断不可行,我们转向近似方法。变分推断就是其中一种主要方法。另一种常见的方法是马尔可夫链蒙特卡洛(MCMC),你已学过。MCMC通过抽样来近似后验,而变分推断通过优化来近似。
第二步:变分推断的基本思想——从分布族中寻找最佳近似
-
引入变分分布:变分推断的核心策略是,我们从一个简单的、已知的分布族 \(\mathcal{Q}\) 中,选择一个分布 \(q(\mathbf{z})\) 来近似真实但复杂的后验分布 \(p(\mathbf{z} | \mathbf{x})\)。这个分布 \(q(\mathbf{z})\) 被称为变分分布。
-
优化目标:我们的目标是让 \(q(\mathbf{z})\) 尽可能“接近” \(p(\mathbf{z} | \mathbf{x})\)。这引出了两个问题:
- 如何衡量“接近”程度? 我们使用两个概率分布之间的Kullback-Leibler (KL) 散度作为度量标准。
- 如何选择分布族 \(\mathcal{Q}\)? 通常我们选择一个易于处理的分布族,例如均值场变分族,它假设所有潜在变量是相互独立的。
第三步:构建优化目标——证据下界
- KL散度的定义:KL散度衡量用一个分布 \(q\) 来近似另一个分布 \(p\) 时造成的信息损失。对于后验近似,KL散度为:
\[ KL(q(\mathbf{z}) \| p(\mathbf{z} | \mathbf{x})) = \int q(\mathbf{z}) \log \frac{q(\mathbf{z})}{p(\mathbf{z} | \mathbf{x})} d\mathbf{z} \]
注意,\(KL(q \| p) \geq 0\),且当且仅当 \(q = p\) 时等于零。我们的目标是最小化这个KL散度。
-
直接最小化的困难:最小化 \(KL(q \| p)\) 仍然需要知道 \(p(\mathbf{z} | \mathbf{x})\)(包含难以处理的 \(p(\mathbf{x})\)),所以无法直接操作。
-
推导证据下界:我们对KL散度进行变换:
\[ KL(q(\mathbf{z}) \| p(\mathbf{z} | \mathbf{x})) = \int q(\mathbf{z}) \log \frac{q(\mathbf{z})}{p(\mathbf{z} | \mathbf{x})} d\mathbf{z} = \int q(\mathbf{z}) \log \frac{q(\mathbf{z}) p(\mathbf{x})}{p(\mathbf{z}, \mathbf{x})} d\mathbf{z} \]
\[ = \int q(\mathbf{z}) [\log q(\mathbf{z}) - \log p(\mathbf{z}, \mathbf{x}) + \log p(\mathbf{x})] d\mathbf{z} \]
\[ = \underbrace{\int q(\mathbf{z}) \log q(\mathbf{z}) d\mathbf{z} - \int q(\mathbf{z}) \log p(\mathbf{z}, \mathbf{x}) d\mathbf{z}}_{\text{-ELBO}} + \log p(\mathbf{x}) \]
我们将等式重新排列:
\[ \log p(\mathbf{x}) = KL(q(\mathbf{z}) \| p(\mathbf{z} | \mathbf{x})) + \underbrace{\int q(\mathbf{z}) \log p(\mathbf{z}, \mathbf{x}) d\mathbf{z} - \int q(\mathbf{z}) \log q(\mathbf{z}) d\mathbf{z}}_{\text{证据下界 (ELBO)}} \]
- ELBO的重要性:由于 \(\log p(\mathbf{x})\) 是一个常数(对于给定的模型和数据),而 \(KL(q \| p) \geq 0\),因此最大化证据下界 就等价于最小化KL散度 \(KL(q \| p)\)。ELBO成为了我们实际可以计算和优化的目标函数:
\[ \text{ELBO}(q) = \mathbb{E}_{q}[\log p(\mathbf{z}, \mathbf{x})] - \mathbb{E}_{q}[\log q(\mathbf{z})] \]
其中,第一项是联合概率 \(\log p(\mathbf{z}, \mathbf{x})\) 在 \(q(\mathbf{z})\) 下的期望,第二项是变分分布 \(q(\mathbf{z})\) 的熵。
第四步:实现变分推断——均值场假设与坐标上升
- 均值场变分族:为了使问题可处理,最常用的假设是均值场假设。它假设所有潜在变量是相互独立的,从而变分分布可以因子化:
\[ q(\mathbf{z}) = \prod_{j=1}^{m} q_j(z_j) \]
这里,我们将潜在变量 \(\mathbf{z}\) 划分为 \(m\) 个不相交的组 \(z_j\)。这个假设极大地简化了问题,但代价是忽略了变量之间的相关性。
- 坐标上升变分推断:在均值场假设下,最优的 \(q_j(z_j)\) 可以通过坐标上升法迭代求解。对于每一个 \(j\),固定其他所有因子 \(q_{-j}\),然后优化ELBO关于 \(q_j(z_j)\) 的部分。可以证明,最优的 \(q_j^*(z_j)\) 满足:
\[ \log q_j^*(z_j) = \mathbb{E}_{-j}[\log p(\mathbf{z}, \mathbf{x})] + \text{const} \]
其中,期望 \(\mathbb{E}_{-j}\) 是关于所有其他变量 \(z_{-j}\) 的变分分布 \(q_{-j}\) 取的。这个公式非常强大,它告诉我们最优的 \(q_j^*\) 正比于 \(\exp(\mathbb{E}_{-j}[\log p(\mathbf{z}, \mathbf{x})])\)。
- 算法流程:
a. 初始化所有变分因子 \(q_1, q_2, ..., q_m\)。
b. 循环迭代,直到ELBO收敛:
对于每一个 \(j = 1\) 到 \(m\):
根据公式 \(q_j^*(z_j) \propto \exp(\mathbb{E}_{-j}[\log p(\mathbf{z}, \mathbf{x})])\) 更新 \(q_j\)。
c. 最终,我们得到整个变分分布 \(q(\mathbf{z}) = \prod_j q_j(z_j)\) 作为后验分布 \(p(\mathbf{z} | \mathbf{x})\) 的近似。
总结
变分推断方法将复杂的后验分布推断问题,巧妙地转化为一个在可控分布族内最大化证据下界的优化问题。通过引入均值场等假设,它获得了比MCMC更快的计算速度,尤其适用于大规模数据集。然而,其代价是近似精度取决于所选分布族的表达能力,且均值场假设会低估后验方差。它是现代贝叶斯机器学习中不可或缺的工具。