变分自编码器(VAE)是一种潜变量生成模型。它定义了一个先验分布 p(z) 和一个解码器似然 pθ(x∣z):
pθ(x)=∫p(z)pθ(x∣z)dz.
给定观测 x,后验分布 pθ(z∣x) 描述哪些潜变量取值能够在模型下解释这个观测。真实后验通常难以直接计算,因此用编码器 qϕ(z∣x) 来近似。所有观测共用同一个编码器及其参数 ϕ,由它为每个输入给出相应的近似后验。这种共享推断过程的做法称为摊销推断。
证据下界 (ELBO)
训练过程旨在最大化证据下界(ELBO):
L(x;θ,ϕ)=Eqϕ(z∣x)[logpθ(x∣z)]−KL(qϕ(z∣x)∥p(z)).
之所以称为“下界”,是因为对数似然可以分解为 ELBO 加上一个非负的 KL 散度项:
logpθ(x)=L(x;θ,ϕ)+KL(qϕ(z∣x)∥pθ(z∣x)).
ELBO 中的期望解码对数似然鼓励解码器更好地解释观测数据;其中相对于先验的 KL 惩罚项则约束近似后验不要偏离先验太远,让从先验抽取的潜变量更有机会落在解码器训练过的区域,但不保证生成质量。
简单地将期望对数似然称为“重建损失”可能会掩盖关键的建模细节。选择伯努利、高斯或类别分布作为似然函数,对应着不同的优化目标和数据假设,这直接影响模型的表现。
重参数化技巧
对于对角高斯编码器:
qϕ(z∣x)=N(z;μϕ(x),diag(σϕ2(x))),
我们采用重参数化采样:
ϵ∼N(0,I),z=μϕ(x)+σϕ(x)⊙ϵ.
这种技巧把随机抽样放到与参数无关的噪声上,使梯度能够通过 μϕ 和 σϕ 进行反向传播。
当先验为标准正态分布时,KL 散度项存在解析解:
KL(q∥p)=−21j∑(1+logσj2−μj2−σj2).
一个观测值如何得到训练损失
这里 KL(q∥p)=Eq[logq−logp] 衡量分布差异,非负但不对称,仅当两个分布几乎处处相同时为零。ELBO 恒等式要求相关密度和期望有定义;把贝叶斯公式 pθ(z∣x)=pθ(x∣z)p(z)/pθ(x) 代入 KL 定义即可得到。下界与对数似然的差距在编码器等于真实后验时消失,仅重建得好还不够。这是 Auto-Encoding Variational Bayes 的变分推导。
取一维编码器 μ=1、σ=0.5,固定一次噪声抽样 ϵ=0.2,得到 z=1.1。设解码器为 p(x∣z)=N(z,1),观测值 x=2,则本次抽样的负对数似然为 (2−1.1)2/2+log(2π)/2≈1.3239。相对 N(0,1) 的解析 KL 为 (1+0.25−1−log0.25)/2≈0.8181。因此单样本负 ELBO 估计为 2.1421。它估计的是期望;某一次蒙特卡洛抽样本身不保证给出 logp(x) 的下界。
批次大小为 B、潜变量宽度为 dz 时,编码器输出形状均为 [B, d_z] 的均值和对数方差。令 σ=exp(logvar/2),采样同形状噪声;重建对数似然沿观测维求和,KL 沿潜变量维求和,最后沿批次取平均。若只把重建项改为按维平均,就会悄悄改变它相对 KL 的权重。生成时从先验采样并使用解码器,无需编码器;只返回解码器均值是确定性摘要,不是完整的似然抽样。
生成与常见变体
- 生成过程:从先验 p(z) 中采样 z,再通过解码器生成 x∼pθ(x∣z)。
- 条件 VAE:在编码器和解码器中引入额外条件信息 y,实现条件生成。
- β-VAE:引入系数 β 加权 KL 项,以调节率失真权衡。但需注意,增大 β 并不保证潜变量能自动解耦或具备清晰的语义含义。
常见失效模式
- 后验坍塌 (Posterior Collapse):解码器能力过强时可能直接忽略潜变量 z,导致 qϕ(z∣x) 坍缩至先验分布。
- 近似误差:选定的变分族(如高斯分布)可能无法充分表达真实后验的复杂结构。
- 似然失配:为了计算方便而选择的解码器分布,可能与实际数据分布不符,导致生成样本质量下降。
- 潜变量可解释性:潜空间中的平滑插值并不等同于人类可理解的独立概念轴。
- 异常检测局限:基于重建误差或似然分数的异常检测在分布外数据上往往失效,需结合具体任务进行验证。
核心参考文献为 Auto-Encoding Variational Bayes。此处省略具体的框架训练代码,因为模型假设和 ELBO 推导才是理解 VAE 的核心所在。