变分自编码器 (VAE) 深度推导
1. 引言与问题背景
变分推断(Variational Inference, VI) 是一种近似贝叶斯后验的方法。在生成模型中,我们假设观测数据
-
核心目标:最大化边缘似然的对数
(即证据,Evidence),从而学习数据的分布。 -
核心困难:由全概率公式知
。在复杂模型中,这个积分往往是不可积的(Intractable),导致真实后验 无法直接求解。 -
变分策略:引入一个参数化的简单分布
(通常假设为高斯分布)来逼近复杂的真实后验 。
基本假设:
-
观测数据:
-
潜在变量(隐变量):
-
联合分布:
-
变分分布:
满足 且 (在 的支撑集上)。
2. 证据下界 (ELBO) 的积分推导
我们从全概率公式出发,严格使用积分形式进行推导,避免使用期望符号
2.1 引入变分分布
利用恒等式
对两边取对数(注意
2.2 利用 Jensen 不等式
引理:Jensen 不等式的积分形式
对于凹函数(如
设定
我们定义不等式右侧的积分为 证据下界(ELBO, Evidence Lower Bound),记作
3. ELBO 的分解与物理含义
为了理解优化目标,我们将 ELBO 进行项拆解:
3.1 三项展开式
利用对数运算规则和
-
第一项:期望重构似然
- 含义:衡量在给定从变分分布抽取的隐变量
时,重构原始数据 的准确度。在深度学习中对应重构损失。
- 含义:衡量在给定从变分分布抽取的隐变量
-
第二项:期望对数先验
- 含义:鼓励变分分布
产生的隐变量符合预设的先验分布 (通常是标准正态分布)。
- 含义:鼓励变分分布
-
第三项:变分熵
- 含义:增加分布的不确定性,防止
坍缩为单点(Delta分布),起到正则化作用。
- 含义:增加分布的不确定性,防止
3.2 紧凑形式(重构 + KL 散度)
在实际模型中,通常将后两项合并:
这种写法直观地展示了 VAE 的权衡:最大化似然的同时,最小化变分分布与先验分布之间的距离。
4. KL 散度与紧致性证明
我们要证明
由于
代入贝叶斯公式
结论:
因为
5. VAE 模型实现:重参数化与架构
为了将上述推导转化为可训练的网络,需要解决采样过程中的梯度传播问题。
5.1 重参数化技巧 (Reparameterization Trick)
在 VAE 中,
直接从
这样,
5.2 损失函数构造
在深度学习中,我们通常最小化损失函数
对于单个样本,损失函数为:
-
重构误差:常用 MSE 或交叉熵。
-
KL 正则项:对于高斯分布有解析解(每个维度
独立求和): 其中
是隐变量的维度, 和 分别是第 维的均值和方差。
5.3 架构流程
-
Encoder (
):输入 ,映射到均值 和方差对数 。 -
Sampling:使用重参数化得到隐码
。 -
Decoder (
):从 重构出 。 -
Optimization:通过反向传播同时更新
和 。
6. KL 散度的解析推导(高斯分布情形)
我们给出 VAE 中最常见情形下的 KL 闭式解:高斯先验
6.1 推导过程
设
对两项分别计算。
第一项:
由于
第二项:
由于
合并两项:
直觉解释:第一项
7. 与 EM 算法的关系
VAE 与 EM(Expectation-Maximization)算法有深刻的联系,但存在关键区别。
7.1 EM 算法回顾
EM 算法用于求解存在隐变量的最大似然估计,通过交替优化逼近对数似然:
E步:给定当前参数
M步:最大化关于
7.2 VAE 与 EM 的对应关系
| EM 算法 | VAE | 核心区别 |
|---|---|---|
| E步:推断 $p(z | x)$ | Encoder $q_\phi(z |
| M步:更新 | Decoder $p_\theta(x | z)$ |
| 目标: | 共享 ELBO 形式 |
7.3 关键区别:变分间隙
EM 算法中,
VAE 中,由于
这意味着 VAE 只能找到似然的下界,而非真实值。这是变分推断的本质限制,也是 VAE 与 EM 的根本区别。
8. 重参数化技巧的深入理解
8.1 为何需要重参数化
假设直接从
这个采样操作是不可导的。采样结果的期望
8.2 重参数化的数学保证
定理:设
证明:令
对任意可测函数
因此
8.3 梯度计算
重构损失为
这使得我们可以用蒙特卡洛估计来近似期望,并通过标准的反向传播计算梯度。
9. 理论严谨性补充
-
支撑(Support)一致性:Jensen 不等式的应用前提是
在 的区域内不为 0。如果变分分布的支撑集小于真实分布, 可能会发散。 -
期望符号的回归:虽然推导过程中使用积分以显其严谨,但在实现时,积分
通过蒙特卡洛采样(Monte Carlo Sampling)来近似,这正是为什么在深度学习代码中我们会看到对样本取平均(期望)的原因。 -
等号成立条件:
意味着我们完美找到了后验分布。但在实际中,受限于 的函数族(如只能是高斯),KL 散度通常不为 0,这个残差被称为 变分间隙(Variational Gap)。 -
KL 散度的非对称性:注意
。在 VAE 中我们使用的是 ,这意味着我们是在最小化从近似后验到先验的距离,而非相反。这个方向的选择是出于计算便利性(高斯到高斯的 KL 有解析解),但也可能导致其他问题(如后验坍缩)。