跳至主要内容
读书笔记约 22 分钟

VAE:从自编码器到可采样的生成模型

从 AE、变分推断和重参数化理解 VAE,结合原始论文梳理 MNIST/Frey Face 实验、概率架构、ELBO 损失与训练策略。

#60#VAE#自编码器#生成模型#变分推断#论文阅读
笔记目录 →
本文目录
  1. 1. 从一个编码点到一个条件分布
  2. 2. 普通 AE 到底在学什么
  3. 2.1 编码、解码与重构
  4. 2.2 U-Net 与 AE 的关系
  5. 2.3 为什么 AE 不方便直接随机生成
  6. 3. 原始论文做了什么任务,用了什么数据
  7. 3.1 方法解决的问题与实际实验要分开
  8. 3.2 实验架构与比较对象
  9. 4. 论文架构:生成方向与推断方向
  10. 4.1 官方原图怎么读
  11. 4.2 编码器:预测潜变量的均值与对数方差
  12. 4.3 解码器:输出给定潜变量时的观测分布
  13. 5. “变分”究竟指什么
  14. 5.1 想求的是后验,困难来自归一化积分
  15. 5.2 为什么不直接最小化与真实后验的 KL
  16. 6. 训练损失:重构负对数似然加 KL
  17. 6.1 ELBO 与用于最小化的损失
  18. 6.2 重构项什么时候是 BCE,什么时候像 MSE
  19. 6.3 高斯 KL 可以直接算,不需要再抽样估计
  20. 7. 特殊训练策略:重参数化是关键
  21. 7.1 把随机性移到与参数无关的噪声上
  22. 7.2 原论文实际使用的训练配置
  23. 7.3 一轮训练可以怎样对应到代码
  24. 8. 重构、生成与潜空间可视化有什么不同
  25. 8.1 给定一张图,做重构
  26. 8.2 不给原图,生成一个新样本
  27. 8.3 为什么潜空间能呈现连续变化
  28. 9. 常见概念辨析
  29. 10. 用四个问题复述这篇论文

1. 从一个编码点到一个条件分布

普通 AE 把输入编码成一个确定的潜表示;VAE 的编码器为每个输入预测潜变量分布的参数,再从中采样潜变量进行解码。 两者都有编码器和解码器,但 VAE 同时建立了概率生成模型,并用变分推断训练它。

最容易混淆的是“输出的是哪个分布”。对于输入图像 xx,VAE 编码器输出的不是“这张图像本身服从什么分布”,而是:已知图像 xx 后,哪些潜变量 zz 能解释它,以及这些 zz 的相对可能性。 这用近似后验 qϕ(z∣x)q_\phi(z\mid x) 表示。

VAE 的基本过程是:

VAE 沿用自编码的结构,让编码器根据输入 xx 预测潜变量 zz 的近似后验分布,通常用均值和方差描述。训练时从该分布采样 zz,让解码器能够解释、重构 xx;同时让近似后验受到一个易于采样的先验约束。训练完成后,可以不输入原图,直接从先验采样 zz,用解码器生成具有训练数据统计特征的新样本。

“生成新样本”是合理的直觉,但不能保证生成图像一定没在训练集中出现,更不能保证生成训练分布以外的新知识。模型可能复现训练内容,也可能生成低质量样本;是否记忆、是否多样,需要另做评估。

Kingma 与 Welling 的 《Auto-Encoding Variational Bayes》 于 2013 年首次提交,是 ICLR 2014 的工作。论文提出 SGVB 估计器和 AEVB 学习算法,VAE 是采用神经网络编码器、解码器的一种具体实例。以下图号及实验设置对应 arXiv v11。

一个编码点与一个条件分布:VAE 预测的是潜变量的条件分布;生成新图时改用先验采样。
概念示意(自行绘制,非实验数据):一个编码点与一个条件分布。

2. 普通 AE 到底在学什么

2.1 编码、解码与重构

自编码器(Autoencoder,AE)使用输入本身作为重构目标,通常归入无监督学习,也可以从自监督的角度理解。它的基本形式是:

z=fϕ(x),x^=gθ(z).z=f_\phi(x),\qquad \hat{x}=g_\theta(z).

其中,ϕ\phi 表示编码器参数,θ\theta 表示解码器参数。训练优化的是网络参数,而 zz 是网络处理某个样本后得到的表示。

编码器提取信息,解码器用这些信息重构输入。MLP、CNN,以及适合序列的循环网络都可以承担这些角色。最简单的像素重构损失为:

JAE(x)=∑k=1D(xk−x^k)2.\mathcal{J}_{\mathrm{AE}}(x)=\sum_{k=1}^{D}(x_k-\hat{x}_k)^2.

也可以根据数据与输出定义使用二元交叉熵。压缩瓶颈、噪声或其他正则约束很重要:只要求输入等于输出,容量足够的网络可能只学会复制。

潜表示 zz 可以是向量,也可以是带空间结构的特征图。编码时逐层降维、解码时逐层升维是一种常见设计,并非必要条件;过完备自编码器的潜维度甚至可能大于输入维度。

AE:用压缩后的信息重构输入:反向传播更新编码器与解码器参数,使重构误差下降。
概念示意(自行绘制,非实验数据):AE:用压缩后的信息重构输入。

2.2 U-Net 与 AE 的关系

U-Net 是带跳跃连接的编码器—解码器架构,其原始论文做的是生物医学图像分割。具有编码器和解码器,不等于就是自编码器;是否在重构输入、如何设置目标,才决定它在做什么。

可以用类似 U-Net 的组件搭建重构网络,但它不是解释原始 AE 或原始 VAE 时的默认架构。原始 VAE 的实验采用的是全连接 MLP,没有 U-Net 的多尺度跳跃连接。

2.3 为什么 AE 不方便直接随机生成

普通 AE 只保证训练样本的编码经解码后尽量回到原样,通常没有指定一个简单的潜空间采样分布,也没有约束随意抽到的潜点都能解码成合理样本。

例如,训练样本的编码可能落在潜空间若干分散区域。随手采一个高斯向量,可能落进解码器没学好的区域。问题不在于“确定性网络绝对无法生成”——确定性解码器也可以把随机输入变成随机输出——而在于普通 AE 的训练目标没有把采样机制一起学好。

对比项普通 AE经典高斯 VAE
编码结果一个确定表示 z=fϕ(x)z=f_\phi(x)分布参数 μϕ(x),log⁡σϕ2(x)\mu_\phi(x),\log\sigma_\phi^2(x)
潜变量来源直接使用编码值重构时从 qϕ(z∣x)q_\phi(z\mid x) 采样
解码器含义把表示映射回重构值给出条件分布 pθ(x∣z)p_\theta(x\mid z) 的参数
核心目标重构及可选正则最大化 ELBO,等价于最小化重构负对数似然加 KL
无条件生成需要额外确定如何采样潜变量从先验 p(z)p(z) 采样再解码
为什么普通 AE 的随机潜点可能不好用:这是采样机制缺少约束的问题,不是确定性解码器不能处理随机输入。
概念示意(自行绘制,非实验数据):为什么普通 AE 的随机潜点可能不好用。

3. 原始论文做了什么任务,用了什么数据

3.1 方法解决的问题与实际实验要分开

原论文研究的是:面对连续潜变量、难以计算的真实后验和大规模数据,怎样高效地同时学习生成模型与近似推断模型。

论文讨论了生成、表示、去噪和补全等潜在用途,主要实验是图像的无监督概率建模、生成和低维流形可视化,不涉及监督数字分类。

数据集数据内容原论文中的任务解码器观测分布
MNIST手写数字灰度图像学习图像生成模型;比较 ELBO、估计边际似然;展示潜空间和随机生成样本用于二值观测建模的 Bernoulli 输出
Frey Face人脸灰度图像,包含表情与姿态变化学习连续图像的生成模型;比较 ELBO;展示二维潜流形对角高斯输出,均值通过 sigmoid 限制在 (0,1)(0,1)

Bernoulli 是观测模型的选择;论文实验说明未明确给出每轮动态二值化的处理规则。

3.2 实验架构与比较对象

根据论文第 5 节及附录 C:

  • 在主要的 ELBO 对比中,MNIST 的编码器、解码器各有一个 500 单元的隐藏层;Frey Face 各使用 200 单元,以适应更小的数据集、减轻过拟合。
  • 图 2 的 MNIST 潜维度包括 3、5、10、20、200;Frey Face 包括 2、5、10、20。隐藏层单元数和潜变量维度是两件不同的事。
  • 在单独的边际似然比较中,采用 100 隐藏单元、3 个潜变量的网络;MNIST 的训练子集规模为 1000 和 50000。这一设置仅用于该组比较实验。
  • 主要与 Wake-Sleep 比较;边际似然实验还比较了使用 HMC 的 Monte Carlo EM。后者的采样属于比较方法或评估过程,不是 VAE 每个训练样本都要执行的步骤。
  • 图 4 展示二维潜流形;图 5 展示 2、5、10、20 维潜空间模型的 MNIST 随机样本。
原论文图2:AEVB与Wake-Sleep在MNIST和Frey Face不同潜维度下的ELBO训练及测试曲线
原论文图 2:横轴为累计处理的训练样本数,纵轴为平均 ELBO,越高越好。论文报告 AEVB 在这些设置下收敛更快、达到更好的目标值;这不等同于所有任务上的普遍最优保证。来源:Auto-Encoding Variational Bayes,第 7 页。

4. 论文架构:生成方向与推断方向

4.1 官方原图怎么读

原论文图 1 用有向概率图表示生成模型与近似推断模型的关系:

原论文图1:观测变量x与潜变量z的有向概率图,实线表示生成模型,虚线表示变分近似推断,外框N表示样本重复
官方方法图:实线对应生成模型 pθ(z)pθ(x | z);虚线对应近似后验 qφ(z | x)。灰色节点 x 表示观测量,z 是未观测潜变量;框中的 N 表示对数据集中各样本重复这一结构,θ、φ 为共享参数。来源:原论文图 1,第 2 页。

生成方向是 z→xz\to x,推断方向是 x→zx\to z。 编码器是为了高效推断而加入的;生成新图时只需要先验和解码器。

4.2 编码器:预测潜变量的均值与对数方差

经典设置固定先验为:

p(z)=N(0,I).p(z)=\mathcal{N}(0,I).

编码器先通过一个隐藏层提取表示,再由两个输出头预测 JJ 维向量:

he=tanh⁡(Wex+be),μϕ(x)=Wμhe+bμ,ℓϕ(x)=Wℓhe+bℓ=log⁡σϕ2(x).\begin{aligned} h_e&=\tanh(W_e x+b_e),\\ \mu_\phi(x)&=W_\mu h_e+b_\mu,\\ \ell_\phi(x)&=W_\ell h_e+b_\ell=\log\sigma_\phi^2(x). \end{aligned}

由它们构造:

qϕ(z∣x)=N ⁣(μϕ(x),diag⁡(exp⁡ℓϕ(x))).q_\phi(z\mid x)=\mathcal{N}\!\left(\mu_\phi(x),\operatorname{diag}(\exp\ell_\phi(x))\right).

这里 μ\mu 不是唯一的“真实编码”,σ2\sigma^2 也不是训练过程中所有图像共用的常数;每个输入都会产生自己的条件分布参数。输出对数方差便于让网络输出任意实数,再通过指数得到正方差。这种参数化在原论文附录 C 中已出现。

4.3 解码器:输出给定潜变量时的观测分布

采到 zz 后,解码器通过另一个单隐藏层 MLP,给出 pθ(x∣z)p_\theta(x\mid z) 的参数。

  • Bernoulli 解码器:hd=tanh⁡(Wdz+bd)h_d=\tanh(W_dz+b_d),y=sigmoid⁡(Wohd+bo)y=\operatorname{sigmoid}(W_oh_d+b_o)。yky_k 是第 kk 个二值像素为 1 的概率;展示 yy 时看到的是均值图,若逐像素抽样则得到一次随机观测。
  • 高斯解码器:输出像素均值与对数方差。对 Frey Face,原论文额外用 sigmoid 将均值约束到 (0,1)(0,1)。此处的高斯输出方差与编码器的潜变量方差不是同一个量。

以 MNIST 主实验为例,可以把实际尺寸写成:

x∈R784→he∈R500→(μ,ℓ)∈RJ×RJ→z∈RJ→hd∈R500→y∈(0,1)784.x\in\mathbb{R}^{784}\to h_e\in\mathbb{R}^{500}\to(\mu,\ell)\in\mathbb{R}^{J}\times\mathbb{R}^{J}\to z\in\mathbb{R}^{J}\to h_d\in\mathbb{R}^{500}\to y\in(0,1)^{784}.

这就是一个展平图像上的 MLP VAE。卷积 VAE 可以把上述隐藏表示换成特征图,但概率关系与训练目标仍然适用。

5. “变分”究竟指什么

5.1 想求的是后验,困难来自归一化积分

先建立生成模型,再问一个反向问题:已知观察到的 xx,什么样的潜变量 zz 能解释它?贝叶斯公式给出:

pθ(z∣x)=pθ(x∣z)p(z)pθ(x),pθ(x)=∫pθ(x∣z)p(z) dz.p_\theta(z\mid x)=\frac{p_\theta(x\mid z)p(z)}{p_\theta(x)},\qquad p_\theta(x)=\int p_\theta(x\mid z)p(z)\,dz.

解码器是非线性神经网络时,积分通常无法高效精确计算,真实后验也就难以直接计算。

“变分”的直觉来自在一族函数或分布中寻找最优对象:与只寻找一个数使 f(a)f(a) 最小不同,变分推断选择一个可计算的分布族,让其中的 qϕ(z∣x)q_\phi(z\mid x) 逼近真实后验。分布本身是一个函数,这也是“变分”这个名字背后的联系。

实际 VAE 不会遍历所有可能分布,而是预先选定分布族,例如对角高斯,再用有限维神经网络参数 ϕ\phi 优化。 均值和方差是该分布族的参数化方式;“变分”指近似推断这件事,不能简单解释为“加了随机噪声”或“方差发生变化”。

变分:在可计算的分布族中寻找近似:寻找最优近似分布,而不是把“变分”理解成方差变化或添加噪声。
概念示意(自行绘制,非实验数据):变分:在可计算的分布族中寻找近似。

5.2 为什么不直接最小化与真实后验的 KL

理论上,对于固定生成模型,希望:

min⁡ϕDKL ⁣(qϕ(z∣x) ∥ pθ(z∣x)).\min_\phi D_{\mathrm{KL}}\!\left(q_\phi(z\mid x)\,\|\,p_\theta(z\mid x)\right).

但真实后验含有难算的 pθ(x)p_\theta(x)。因此采用等价关系:

log⁡pθ(x)=LELBO(x)⏟可优化的下界+DKL ⁣(qϕ(z∣x) ∥ pθ(z∣x))⏟后验近似的差距.\log p_\theta(x)=\underbrace{\mathcal{L}_{\mathrm{ELBO}}(x)}_{\text{可优化的下界}}+ \underbrace{D_{\mathrm{KL}}\!\left(q_\phi(z\mid x)\,\|\,p_\theta(z\mid x)\right)}_{\text{后验近似的差距}}.

因为 KL 非负,ELBO 不大于对数边际似然。固定 θ\theta 时,最大化 ELBO 等价于减小后验近似的 KL;联合训练时,还同时学习 θ\theta,让模型更好地解释数据。 有限的近似分布族不保证能完全表示真实后验。

ELBO 是证据的下界:固定 θ 时的关系;联合训练还会更新生成模型 θ,改变证据本身。
概念示意(自行绘制,非实验数据):ELBO 是证据的下界。

6. 训练损失:重构负对数似然加 KL

6.1 ELBO 与用于最小化的损失

将 ELBO 展开:

LELBO(x)=Eqϕ(z∣x)[log⁡pθ(x∣z)]⏟让潜变量保留解释输入的信息−DKL ⁣(qϕ(z∣x) ∥ p(z))⏟约束潜变量的编码分布.\mathcal{L}_{\mathrm{ELBO}}(x)= \underbrace{\mathbb{E}_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)]}_{\text{让潜变量保留解释输入的信息}} -\underbrace{D_{\mathrm{KL}}\!\left(q_\phi(z\mid x)\,\|\,p(z)\right)}_{\text{约束潜变量的编码分布}}.

原论文最大化这个目标;在常用最小化损失的写法中,取其负值:

JVAE(x)=−Eqϕ(z∣x)[log⁡pθ(x∣z)]+DKL ⁣(qϕ(z∣x) ∥ p(z)).\boxed{\mathcal{J}_{\mathrm{VAE}}(x)= -\mathbb{E}_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)] +D_{\mathrm{KL}}\!\left(q_\phi(z\mid x)\,\|\,p(z)\right)}.

这是由概率模型推导出的“重构负对数似然 + KL”,并非随意将 MSE 和一个正则项拼在一起。 KL 的系数在标准 ELBO 中是 1;如果另加 β≠1\beta\ne1,就改变了优化目标,不能当成原始公式。

这里涉及两个不同的 KL:上节恒等式衡量近似后验与真实后验的差距;可计算损失中的 KL 则约束近似后验与先验的距离。pθ(z∣x)p_\theta(z\mid x) 是观察到输入后的后验,p(z)p(z) 是观察输入前的先验。

最小化目标:保留信息,同时约束编码:两项共同优化;损失中的先验不是上一节难算的真实后验。
概念示意(自行绘制,非实验数据):最小化目标:保留信息,同时约束编码。

6.2 重构项什么时候是 BCE,什么时候像 MSE

若选择独立 Bernoulli 观测模型,解码器给出概率 yky_k,其负对数似然为:

−log⁡pθ(x∣z)=−∑k=1D[xklog⁡yk+(1−xk)log⁡(1−yk)].-\log p_\theta(x\mid z)=-\sum_{k=1}^{D}\left[x_k\log y_k+(1-x_k)\log(1-y_k)\right].

这就是逐像素二元交叉熵(BCE),对应原论文 Bernoulli 解码器的公式。它不是数字类别标签的十分类交叉熵。

若观测模型为固定方差 s2s^2 的高斯:

pθ(x∣z)=N(mθ(z),s2I),p_\theta(x\mid z)=\mathcal{N}(m_\theta(z),s^2I),

则负对数似然等于 12s2∥x−mθ(z)∥22\frac{1}{2s^2}\|x-m_\theta(z)\|_2^2 加常数,因此与平方误差成比例。如果解码器还预测方差,完整高斯负对数似然包含对数方差项,不能直接用裸 MSE 代替:

−log⁡pθ(x∣z)=12∑k[log⁡(2π)+log⁡sk2(z)+(xk−mk(z))2sk2(z)].-\log p_\theta(x\mid z)=\frac12\sum_k\left[\log(2\pi)+\log s_k^2(z)+\frac{(x_k-m_k(z))^2}{s_k^2(z)}\right].
观测模型决定重构损失:先选择概率模型,再写损失;不要无条件把所有 VAE 的重构项都写成 MSE。
概念示意(自行绘制,非实验数据):观测模型决定重构损失。

6.3 高斯 KL 可以直接算,不需要再抽样估计

当 qϕ(z∣x)=N(μ,diag⁡(σ2))q_\phi(z\mid x)=\mathcal{N}(\mu,\operatorname{diag}(\sigma^2))、p(z)=N(0,I)p(z)=\mathcal{N}(0,I) 时:

DKL(q∥p)=12∑j=1J(μj2+σj2−1−log⁡σj2).D_{\mathrm{KL}}(q\|p)=\frac12\sum_{j=1}^{J}\left(\mu_j^2+\sigma_j^2-1-\log\sigma_j^2\right).

若网络输出 ℓj=log⁡σj2\ell_j=\log\sigma_j^2,则写成:

DKL(q∥p)=−12∑j(1+ℓj−μj2−exp⁡ℓj).D_{\mathrm{KL}}(q\|p)=-\frac12\sum_j\left(1+\ell_j-\mu_j^2-\exp\ell_j\right).

均值全为 0、方差全为 1 时,KL 等于 0;偏离这一先验会增加代价。这有利于让潜空间可采样,但KL 本身不保证每个点都生成高质量图像,也不保证潜维度自动对应可解释语义。

重构项鼓励保留样本细节,KL 则限制每个样本的编码分布偏离先验太远,两者形成平衡。如果所有输入都得到完全相同的先验、解码器又忽略 zz,便无法靠潜变量区分样本;“KL 越小越好”不是完整的训练目标。

高斯 KL:对均值和方差的解析约束:KL 无需采样估计;KL 为零不代表重构良好,也不意味着整个训练目标最优。
概念示意(自行绘制,非实验数据):高斯 KL:对均值和方差的解析约束。

7. 特殊训练策略:重参数化是关键

7.1 把随机性移到与参数无关的噪声上

直接把“从依赖参数的分布中采样”当成普通计算节点,无法直接使用熟悉的路径反向传播。高斯 VAE 将它改写为:

ϵ∼N(0,I),z=μϕ(x)+exp⁡ ⁣(12ℓϕ(x))⊙ϵ.\epsilon\sim\mathcal{N}(0,I),\qquad \boxed{z=\mu_\phi(x)+\exp\!\left(\tfrac12\ell_\phi(x)\right)\odot\epsilon}.

这样得到的 zz 仍服从同一个 qϕ(z∣x)q_\phi(z\mid x),但随机数来自不依赖参数的 ϵ\epsilon;固定一次噪声实现后,zz 对 μ,ℓ\mu,\ell 都是可微的,重构损失就能经解码器、zz 传回编码器。

重参数化没有取消随机性,也没有把采样改成总取均值,而是改变了采样的计算表达,让梯度更容易、低方差地估计。 其他分布也可能有可用的重参数化,但不能把这个高斯公式原封不动套到所有离散变量上。

重参数化:噪声独立,计算路径可微:随机性保留在 ε 中;固定本次 ε 后,参数到损失的路径可以求导。
概念示意(自行绘制,非实验数据):重参数化:噪声独立,计算路径可微。

7.2 原论文实际使用的训练配置

项目论文设置或策略为什么重要
优化对象联合优化编码器 ϕ\phi 和解码器 θ\theta推断与生成模型一起学习,无需先单独训完 AE
梯度估计SGVB 与重参数化通过随机目标做高效梯度优化
KL 项高斯情形使用解析式只需对重构期望采样,降低估计方差
小批量大小M=100M=100随机批量优化,适应较大数据集
每个样本的潜采样数L=1L=1论文在足够大的小批量下使用一次采样估计重构期望
优化器Adagrad按参数累计梯度平方,自适应调整更新步长
全局步长候选{0.01,0.02,0.1}\{0.01,0.02,0.1\}根据最初若干轮训练集表现选择
初始化从 N(0,0.01)\mathcal{N}(0,0.01) 随机采样使用零均值的小幅随机初始化
参数正则对应 p(θ)=N(0,I)p(\theta)=\mathcal{N}(0,I) 的小权重衰减实验采用近似 MAP;这与潜变量的 KL 是不同层面的约束
非线性MLP 隐藏层使用 tanh;Bernoulli 输出使用 sigmoid对应附录 C 的实际网络

原始方案的要点是重参数化、共享编码网络的摊销推断、解析 KL 与小批量联合训练。所谓摊销推断,是指所有样本共用一个编码器:处理新输入时一次前向计算就得到分布参数,无需为每个样本重新迭代拟合一套变分参数。

论文没有将 KL warm-up、循环退火、free bits、β\beta-VAE、感知损失或对抗训练作为这里的标准训练配方。后续工作可能采用这些改动;本节只记录原论文使用的策略。附录 E 另提到比较算法采用 Adagrad 及配套步长退火,但这不等于对 KL 权重做退火。

7.3 一轮训练可以怎样对应到代码

Bernoulli 观测模型的一轮训练可表示为:

mu, logvar = encoder(x)
epsilon = standard_normal(shape=mu.shape)
z = mu + exp(0.5 * logvar) * epsilon
logits = decoder(z)

# 每个样本内部求和,再在 batch 上平均
reconstruction = sum_over_pixels(binary_cross_entropy_with_logits(logits, x))
kl = -0.5 * sum_over_latents(1 + logvar - mu**2 - exp(logvar))
loss = mean_over_batch(reconstruction + kl)

jointly_update(encoder_parameters, decoder_parameters, loss)

使用 logits 版本的 BCE 时,不要再手动先做一次 sigmoid。若将像素重构项改成“每像素平均”而 KL 仍对潜维度求和,两项比例就变了;比较实现时要同时检查 reduction、观测方差和 KL 权重。

8. 重构、生成与潜空间可视化有什么不同

8.1 给定一张图,做重构

x→qϕ(z∣x)→z→pθ(x∣z).x\to q_\phi(z\mid x)\to z\to p_\theta(x\mid z).

这里的潜变量来自与该图像相关的近似后验,所以输出应尽量保留原图的信息。为了稳定展示,可以取 z=μϕ(x)z=\mu_\phi(x) 并显示解码器均值,但这只是常用展示方式,不等于训练时不需要采样。

重构:潜变量依赖这张输入图像:展示时可取后验均值以减少波动;这不等于训练时总是取均值。
概念示意(自行绘制,非实验数据):重构:潜变量依赖这张输入图像。

8.2 不给原图,生成一个新样本

z∼p(z)=N(0,I),xnew∼pθ(x∣z).z\sim p(z)=\mathcal{N}(0,I),\qquad x_{\mathrm{new}}\sim p_\theta(x\mid z).

无条件生成时从先验采样,不是先输入一张不存在的新图来求后验。 展示解码器均值图与继续从观测分布抽样也应区分:二者都常用于观察模型,随机性却不完全相同。

从标准正态直接采样在数学上完全可行;生成质量依赖训练是否学好了先验区域到数据空间的映射。训练使用后验,生成使用先验,KL 正是连接两者的重要部分。

原论文图5:潜维度分别为2、5、10和20的VAE生成的MNIST随机数字样本
原论文图 5:不同潜维度下的 MNIST 随机样本,展示了学到的生成模型能合成数字外观。仅凭这张图不能判断是否与训练图像完全重复。来源:原论文附录 A,第 10 页。
生成:无需先输入原图:后验用于重构,先验用于无条件生成;生成新颖性需要单独评估。
概念示意(自行绘制,非实验数据):生成:无需先输入原图。

8.3 为什么潜空间能呈现连续变化

训练中同一图像的潜变量会在分布内扰动,解码器需要对这些邻近编码给出合理解释;同时 KL 限制编码分布的形态。这使模型倾向于形成可连续探索的潜空间,但不意味着空间中没有“空洞”,也不保证线性插值始终经过高概率区域。

原论文图4:二维潜空间中Frey Face表情姿态与MNIST数字外观随潜坐标变化的生成网格
原论文图 4:二维潜空间的生成流形。左为 Frey Face,右为 MNIST。坐标取自单位正方形上的规则网格,再经高斯逆 CDF 转换为潜变量值;不是对二维高斯坐标简单等距遍历,也不是全部由独立随机点组成。来源:原论文附录 A,第 10 页。

9. 常见概念辨析

常见说法更准确的理解
“VAE 本质就是 AE 加噪声”结构类似自编码器,但引入潜变量生成模型、变分近似与 ELBO;噪声只是实现采样的一部分
“编码器输出图像服从的分布”输出给定图像后的潜变量分布 qϕ(z∣x)q_\phi(z\mid x) 的参数
“VAE 不再有特征 zz”仍有潜表示 zz,只是其来源变为分布采样
“变分就是输出均值和方差”均值与方差参数化近似分布;变分推断是用可优化分布族逼近难算的后验
“KL 是让 q(z∣x)q(z\mid x) 接近真实后验”在 ELBO 差距恒等式中确实有这个 KL;实际可计算损失中的 KL 比较的是近似后验与先验
“训练后整个数据集就是一个高斯”先验选为高斯,各输入后验也可选高斯;数据空间的 pθ(x)p_\theta(x) 经非线性解码和积分后通常远非单一高斯
“所有输入的后验都要完全等于标准正态”KL 是软约束,要与重构项平衡;强行完全相同可能丢失样本信息
“普通 AE 不能输出新图”能对新潜点解码,但通常缺少被训练目标约束好的采样分布
“VAE 一定采到训练集没有的图”可以生成未逐一存储的组合与外观,但是否新颖、是否记忆训练样本需要验证

10. 用四个问题复述这篇论文

  1. 任务与数据集是什么? 无监督潜变量图像建模,使用 MNIST 和 Frey Face,比较 ELBO、估计边际似然,并展示潜流形与生成样本。
  2. 架构是什么? 标准正态先验、单隐藏层 MLP 高斯编码器、重参数化采样,以及 Bernoulli 或高斯 MLP 解码器;官方架构图是有向概率图。
  3. 损失是什么? 最大化 ELBO;最小化写法为重构负对数似然加解析高斯 KL。实验还包含参数权重衰减,对应近似 MAP。
  4. 特殊训练策略是什么? SGVB 重参数化梯度、摊销推断、解析 KL、小批量联合训练;原实验采用 Adagrad、批大小 100、每个样本一次潜采样。

AE 为每个输入学习一个编码点;VAE 为每个输入学习一个可采样的近似后验,并把它与一个可生成的概率模型一起训练。