跳转到内容
English

VAE:同时学习重建与采样

交互教程

VAE 将单个编码结果替换为分布,从而在重建与先验采样之间建立可训练的联系。

前置阅读:自编码器 · 概率与张量

普通 AE 学习每个输入去哪里,却没有简单的新编码采样规则。隐变量模型定义 p(z) 和 pθ(x|z),图像密度通过对全部 z 积分得到。非线性解码器下,这个积分和真实后验 pθ(z|x) 通常难以计算。

编码器 qφ(z|x) 近似真实后验,它不是先验,也不必等于真实后验。AEVB 用变分下界 ELBO 联合学习推断网络和解码器;重参数化提供可用的梯度估计。这是核心贡献,而不只是给 AE 加噪。

阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。

后验网络

两个输出参数化 qφ,并非两个独立 latent 样本。

mu, logvar = encoder(x).chunk(2, dim=-1)

重参数化

噪声独立于编码器参数,梯度通过仿射变换。

std = exp(0.5 * logvar)
z = mu + std * randn_like(std)

似然与 KL

每样本对 latent 维求和,并明确像素 loss 的归约。

x_params = decoder(z)
kl = 0.5 * (mu**2 + exp(logvar) - logvar - 1).sum(-1)
loss = reconstruction_nll(x, x_params) + kl

查看固定版本来源

L=Eqϕ(z∣x)[log⁡pθ(x∣z)]−DKL(qϕ(z∣x)∥p(z))\mathcal{L}=\mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)]-D_{KL}(q_\phi(z|x)\Vert p(z))

对角高斯网络输出 μ 和 log σ²。先求 σ=exp(0.5 log σ²),再从 N(0,I) 采样 ε,得到 z=μ+σε。随机性来自 ε,μ、σ 到 z 的变换仍可微。μ=1、σ=0.5、ε=0.5 时,z=1.25。

演示展示一维后验与标准正态先验。μ=0、σ=1 时 KL 为零。减小 σ 并非总是有益:即使均值为零,极窄后验也会产生很大 KL。

改变参数,查看计算值,再把它与上方的真实模型说明对照。

解析教学模型 · 控件改变的是例子,不是训练后的研究模型。

−44

绿色:后验 q;灰色:先验 p。

当前例子的计算值
量值
KL(q || p)0.000
z = μ + σ × ε, ε = 0.50.500
对数方差0.000

最大化期望 log pθ(x|z) 减 KL(qφ(z|x)||p(z)),或最小化其负值。重建用 q 的样本;新生成从 p 采样,不需要编码器。只用 μ 做确定性重建是评估选择,不是完整训练过程。

KL 正则不保证每个潜空间区域都能生成好图。强解码器可能忽略 z,称为后验塌缩。像素似然、latent 维数和 KL 权重都重要。β 不为 1 时,目标已改变标准 ELBO。

展开公式推导

在 latent 积分中引入 q(z|x)。Jensen 不等式把 log 移到期望内部,得到下界;这里假设 q 覆盖相关支撑集。

log⁡pθ(x)=log⁡Eqϕ ⁣[pθ(x,z)qϕ(z∣x)]≥Eqϕ[log⁡pθ(x,z)−log⁡qϕ(z∣x)]\log p_\theta(x)=\log\mathbb{E}_{q_\phi}\!\left[\frac{p_\theta(x,z)}{q_\phi(z|x)}\right]\geq\mathbb{E}_{q_\phi}[\log p_\theta(x,z)-\log q_\phi(z|x)]

拆开 p(x,z)=p(x|z)p(z),得到期望重建对数似然减去对先验的 KL。而下界与 log p(x) 的差,是对真实后验的 KL。这是两个不同 KL 项。

log⁡pθ(x)−L=DKL(qϕ(z∣x)∥pθ(z∣x))≥0\log p_\theta(x)-\mathcal{L}=D_{KL}(q_\phi(z|x)\Vert p_\theta(z|x))\geq0

q 为对角高斯、p 为标准正态时,可解析积分 KL。单维 μ=1、σ=0.5 时,KL≈0.818;解码器期望通常仍需 Monte Carlo 采样。

DKL=12∑j(μj2+σj2−1−log⁡σj2)D_{KL}=\frac12\sum_j\left(\mu_j^2+\sigma_j^2-1-\log\sigma_j^2\right)
从先验生成新图像时,编码器在哪里?

不需要编码器。从 p(z) 采样后使用 pθ(x|z)。编码器用于从观测 x 推断 latent。

返回学习地图

本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。