变分推断(Variational Inference, VI)是一种在概率模型中近似计算后验分布的强大方法,广泛应用于机器学习、统计推断和贝叶斯方法中。它的核心思想是通过引入一个变分分布来近似复杂的后验分布,并通过优化一个目标函数(通常是证据下界,ELBO)来实现这一近似。Jensen 不等式在变分推断中扮演了关键角色,用于推导 ELBO。以下我将详细介绍变分推断的理论基础、数学推导、实际应用,以及与互信息的关系。
1. 变分推断的背景与问题
1.1 问题设定
在贝叶斯推断中,我们通常需要计算后验分布 ( p(z | x) ),其中:
- ( x ) 是观测数据(已知)。
- ( z ) 是潜变量(未知,例如模型参数或隐藏状态)。
- 联合分布为 ( p(x, z) ),边缘似然(证据)为
p(x) = \int p(x, z) \, dz
。
后验分布由贝叶斯定理给出:
p(z | x) = \frac{p(x, z)}{p(x)} = \frac{p(x, z)}{\int p(x, z) \, dz}
问题:
- 计算 ( p(x) ) 需要对 ( z ) 积分(或求和),在高维或复杂模型中通常是不可解的(intractable)。
- 直接采样(如 Markov Chain Monte Carlo, MCMC)可能计算代价高,尤其在大数据场景中。
1.2 变分推断的目标
变分推断通过引入一个变分分布 ( q(z) ) 来近似后验分布 ( p(z | x) ),并通过优化使 ( q(z) ) 尽可能接近 ( p(z | x) )。衡量“接近”的标准通常是 KL 散度:
D_{KL}(q(z) || p(z | x)) = \int q(z) \log \frac{q(z)}{p(z | x)} \, dz
目标是最小化
D_{KL}(q(z) || p(z | x))
,从而找到最佳的 ( q(z) )。
2. 变分推断的核心:证据下界(ELBO)
2.1 推导 ELBO
由于直接最小化
D_{KL}(q(z) || p(z | x))
需要知道 ( p(z | x) ),而这是我们要计算的,因此我们需要一个替代目标。变分推断通过引入证据下界(Evidence Lower Bound, ELBO)来解决这个问题。
2.1.1 边缘似然的分解
边缘似然
\log p(x)
是我们希望优化的目标(最大化似然等价于模型拟合)。我们有:
\log p(x) = \log \int p(x, z) \, dz
将其改写为期望形式,引入变分分布 ( q(z) ):
\log p(x) = \log \int q(z) \frac{p(x, z)}{q(z)} \, dz
2.1.2 使用 Jensen 不等式
- 注意到
\log
是一个凹函数(因为(\log u)'' = -\frac{1}{u^2} < 0
)。根据 Jensen 不等式(凹函数版本),对于任意分布 ( q(z) ),有:
\log \left( \int q(z) \frac{p(x, z)}{q(z)} \, dz \right) \geq \int q(z) \log \left( \frac{p(x, z)}{q(z)} \right) dz
- 左边是
\log p(x)
,右边是一个下界,称为 ELBO:
\log p(x) \geq \int q(z) \log \frac{p(x, z)}{q(z)} \, dz =: \text{ELBO}
- 展开 ELBO:
\text{ELBO} = \int q(z) \log p(x, z) \, dz - \int q(z) \log q(z) \, dz
= \mathbb{E}_{q(z)}[\log p(x, z)] - \mathbb{E}_{q(z)}[\log q(z)]
- 进一步分解
p(x, z) = p(x | z) p(z)
:
\mathbb{E}_{q(z)}[\log p(x, z)] = \mathbb{E}_{q(z)}[\log p(x | z)] + \mathbb{E}_{q(z)}[\log p(z)]
- 因此,ELBO 可以写为:
\text{ELBO} = \mathbb{E}_{q(z)}[\log p(x | z)] + \mathbb{E}_{q(z)}[\log p(z)] - \mathbb{E}_{q(z)}[\log q(z)]
- 注意到后两项可以合并为 KL 散度:
\mathbb{E}_{q(z)}[\log p(z)] - \mathbb{E}_{q(z)}[\log q(z)] = - \int q(z) \log \frac{q(z)}{p(z)} \, dz = -D_{KL}(q(z) || p(z))
- 最终,ELBO 的另一种形式为:
\text{ELBO} = \mathbb{E}_{q(z)}[\log p(x | z)] - D_{KL}(q(z) || p(z))
2.1.3 ELBO 与 KL 散度的关系
- 边缘似然
\log p(x)
和 ELBO 的差值正是D_{KL}(q(z) || p(z | x))
:
\log p(x) = \text{ELBO} + D_{KL}(q(z) || p(z | x))
- 因为
D_{KL}(q(z) || p(z | x)) \geq 0
(由 Jensen 不等式证明),所以:
\log p(x) \geq \text{ELBO}
- 最大化 ELBO 等价于最小化
D_{KL}(q(z) || p(z | x))
,从而使 ( q(z) ) 更接近 ( p(z | x) )。
2.2 解释 ELBO 的两个部分
ELBO 的形式
\text{ELBO} = \mathbb{E}_{q(z)}[\log p(x | z)] - D_{KL}(q(z) || p(z))
有直观的意义:
- 第一项
\mathbb{E}_{q(z)}[\log p(x | z)]
:表示从 ( q(z) ) 采样的 ( z ) 重构数据 ( x ) 的期望似然。这是“生成”能力,鼓励 ( q(z) ) 生成与观测数据匹配的 ( z )。 - 第二项
-D_{KL}(q(z) || p(z))
:这是一个正则化项,鼓励 ( q(z) ) 接近先验 ( p(z) ),防止 ( q(z) ) 过拟合。
3. 变分推断的实现
3.1 选择变分分布 ( q(z) )
为了使优化可行,通常需要对 ( q(z) ) 的形式做假设。常见的假设包括:
- 均值场变分推断(Mean-Field Variational Inference):
- 假设 ( q(z) ) 可以分解为独立分布的乘积:
q(z) = \prod_{i=1}^n q_i(z_i)
- 例如,如果
z = (z_1, z_2)
,则q(z) = q_1(z_1) q_2(z_2)
。 - 这种假设简化了计算,但可能忽略变量之间的依赖性。
- 假设 ( q(z) ) 可以分解为独立分布的乘积:
- 参数化分布:
- 假设 ( q(z) ) 属于某个参数化分布族,例如高斯分布:
q(z) = \mathcal{N}(z; \mu, \Sigma)
- 优化目标变为优化参数
\mu
和\Sigma
。
- 假设 ( q(z) ) 属于某个参数化分布族,例如高斯分布:
3.2 优化 ELBO
- 解析优化:
- 在均值场假设下,可以通过迭代更新每个
q_i(z_i)
来最大化 ELBO。 - 对于每个
q_i(z_i)
,固定其他q_j(z_j) (j \neq i)
,推导最优的q_i(z_i)
。 - 例如,对于指数族分布,这种方法可以得到解析解。
- 在均值场假设下,可以通过迭代更新每个
- 梯度优化:
- 对于复杂的 ( q(z) ),直接解析优化可能不可行。可以使用梯度下降来优化 ELBO。
- 关键是计算
\nabla_{\text{params}} \text{ELBO}
,其中 params 是 ( q(z) ) 的参数。
3.3 重参数化技巧(Reparameterization Trick)
- 如果
q(z) = \mathcal{N}(z; \mu, \sigma^2)
,直接对\mathbb{E}_{q(z)}[\log p(x | z)]
求梯度可能困难,因为期望内部包含随机变量 ( z )。 - 重参数化技巧将 ( z ) 表示为:
z = \mu + \sigma \epsilon, \quad \epsilon \sim \mathcal{N}(0, 1)
- 这样,期望可以写为:
\mathbb{E}_{q(z)}[\log p(x | z)] = \mathbb{E}_{\epsilon \sim \mathcal{N}(0, 1)}[\log p(x | \mu + \sigma \epsilon)]
- 现在可以直接对
\mu
和\sigma
求梯度,使用蒙特卡洛估计近似期望。
4. 变分推断与互信息的关系
互信息在变分推断中常被用来增强模型的表现,尤其是在生成模型(如变分自编码器 VAEs)中。
4.1 互信息的作用
- 在 VAEs 中,潜变量 ( Z ) 应该捕捉 ( X ) 的有用信息。互信息 ( I(X; Z) ) 度量 ( X ) 和 ( Z ) 之间的依赖性:
I(X; Z) = H(X) - H(X | Z)
- 最大化 ( I(X; Z) ) 可以鼓励 ( Z ) 保留更多关于 ( X ) 的信息。
4.2 在变分推断中的引入
- 标准 VAE 的 ELBO 为:
\log p(x) \geq \mathbb{E}_{q(z|x)}[\log p(x | z)] - D_{KL}(q(z|x) || p(z))
- 然而,
D_{KL}(q(z|x) || p(z))
可能导致q(z|x) \approx p(z)
,使得 ( Z ) 和 ( X ) 几乎独立(即I(X; Z) \approx 0
),这会削弱 ( Z ) 的表示能力。 - InfoVAE 等方法通过显式引入互信息项来解决这个问题:
\text{Objective} = \mathbb{E}_{q(z|x)}[\log p(x | z)] - D_{KL}(q(z|x) || p(z)) + \lambda I(X; Z)
- 由于 ( I(X; Z) ) 难以直接计算,可以使用变分界:
I(X; Z) \geq \mathbb{E}_{P(x, z)} \left[ \log \frac{q(z|x)}{\tilde{q}(z)} \right]
其中\tilde{q}(z)
是 ( q(z) ) 的近似。
4.3 意义
- 引入互信息可以防止潜变量退化(即 ( Z ) 不携带 ( X ) 的信息)。
- 它在表示学习中非常有用,例如生成更有意义的潜在表示。
5. 变分推断的实际应用
5.1 变分自编码器(VAEs)
- 模型:
- 生成模型:( p(x | z) ),通常是一个神经网络(解码器)。
- 变分分布:( q(z | x) ),也是一个神经网络(编码器)。
- 优化:
- ELBO:
\text{ELBO} = \mathbb{E}_{q(z|x)}[\log p(x | z)] - D_{KL}(q(z|x) || p(z))
- 使用重参数化技巧优化。
- ELBO:
- 应用:
- 图像生成:生成手写数字(MNIST)或人脸图像。
- 数据重构:去噪或补全缺失数据。
5.2 主题模型(LDA)
- 模型:
- 潜在狄利克雷分配(Latent Dirichlet Allocation, LDA)是一种主题模型,文档由主题混合表示,主题由单词分布表示。
- 潜变量 ( z ) 表示文档的主题分布。
- 变分推断:
- 后验 ( p(z | x) ) 不可直接计算,使用变分分布 ( q(z) ) 近似。
- 优化 ELBO 得到主题分布和单词分布。
- 应用:
- 文本分类:发现文档的主题。
- 推荐系统:基于主题推荐相关内容。
5.3 贝叶斯神经网络
- 模型:
- 神经网络的参数 ( w ) 被视为随机变量,服从先验 ( p(w) )。
- 后验
p(w | \text{data})
通过变分推断近似。
- 变分推断:
- 引入变分分布 ( q(w) ),优化 ELBO:
\text{ELBO} = \mathbb{E}_{q(w)}[\log p(\text{data} | w)] - D_{KL}(q(w) || p(w))
- 引入变分分布 ( q(w) ),优化 ELBO:
- 应用:
- 不确定性估计:预测时提供置信区间。
- 模型压缩:通过正则化减少参数。
6. 变分推断的优缺点
6.1 优点
- 高效性:相比 MCMC 等采样方法,变分推断将推断问题转化为优化问题,计算效率更高,适合大数据场景。
- 可扩展性:结合梯度下降和重参数化技巧,可以应用于深度学习模型(如 VAEs)。
- 理论优雅:ELBO 提供了一个统一的框架,适用于多种概率模型。
6.2 缺点
- 近似偏差:变分推断假设 ( q(z) ) 的形式(如均值场假设),可能无法捕捉后验的复杂依赖性,导致近似偏差。
- 低估方差:变分推断倾向于低估后验分布的方差,因为 KL 散度
D_{KL}(q || p)
鼓励 ( q ) 集中在 ( p ) 的某个模式上。 - 优化挑战:ELBO 的优化可能陷入局部最优,尤其在高维空间中。
7. 变分推断与 Jensen 不等式的联系
Jensen 不等式是变分推断的核心工具:
- 它直接用于推导 ELBO,确保
\log p(x) \geq \text{ELBO}
。 - 在互信息估计中,Jensen 不等式用于构造变分界,例如 InfoNCE 界:
I(X; Z) \geq \log K + \mathbb{E}_{P(x, z)} \left[ \log \frac{f(x, z)}{\frac{1}{K} \sum_{i=1}^K f(x, z_i)} \right]
- 它还支持 KL 散度的非负性证明,这是变分推断理论的基础。
8. 总结
变分推断是一种高效的贝叶斯推断方法,通过优化证据下界(ELBO)来近似后验分布。它的核心步骤包括:
- 引入变分分布 ( q(z) ),并使用 Jensen 不等式推导 ELBO。
- 选择 ( q(z) ) 的形式(如均值场或参数化分布),优化 ELBO。
- 使用重参数化技巧等方法进行梯度优化。
主要应用:
- 变分自编码器:用于生成模型和表示学习。
- 主题模型:发现文档的潜在主题。
- 贝叶斯神经网络:提供不确定性估计。
与互信息的联系:
- 互信息 ( I(X; Z) ) 被引入以增强潜变量的表示能力,防止退化。
- Jensen 不等式在推导 ELBO 和互信息界中起到关键作用。
如果你对某个具体应用(如 VAE 的数学细节或 LDA 的变分推断实现)有进一步兴趣,我可以继续深入探讨!
发表回复