MINIBLOG

Blog Note Tags Links About
Home Search
May 24, 2026
miniyuan

生成模型 1:VAE 与 GAN


Overview of Generative Models

Comparison Between Three Models

设图像或数据为 XXX,标签或条件为 YYY。

模型学习目标典型用途
Discriminative Modelp(Y∣X)p(Y\mid X)p(Y∣X)给定数据预测标签,如图像分类
Generative Modelp(X)p(X)p(X)建模数据本身的概率,可检测异常并采样生成
Conditional Generative Modelp(X∣Y)p(X\mid Y)p(X∣Y)给定条件生成数据,如类别到图像、文本到图像

三者可由联合分布联系起来:

p(X,Y)=p(X)p(Y∣X)=p(Y)p(X∣Y)p(X,Y)=p(X)p(Y\mid X)=p(Y)p(X\mid Y)p(X,Y)=p(X)p(Y∣X)=p(Y)p(X∣Y)

由贝叶斯公式可得:

p(X∣Y)=p(Y∣X)p(X)p(Y)p(X\mid Y)=\frac{p(Y\mid X)p(X)}{p(Y)}p(X∣Y)=p(Y)p(Y∣X)p(X)​

理论上可以由判别式模型 p(Y∣X)p(Y\mid X)p(Y∣X)、无条件生成模型 p(X)p(X)p(X) 和标签先验 p(Y)p(Y)p(Y) 构造条件生成模型,但实际中通常直接训练条件生成模型。

Probability-Based Competition

判别式模型在给定 XXX 后,让所有可能标签竞争概率质量:

∑y∈Yp(y∣X)=1\sum_{y\in \mathcal{Y}} p(y\mid X)=1y∈Y∑​p(y∣X)=1

因此即使输入是不合理图像,模型也必须给出一个标签分布,无法自然拒绝异常输入。

生成模型则在所有可能数据之间分配概率质量。合理图像应获得较高密度,不合理输入可以获得极低概率,因此生成模型可用于 Outlier Detection(异常检测)和无监督特征学习。

Why We Need Generative Model

生成模型适合处理一对多和多解问题。给定同一条件 YYY,可能存在许多合理输出 XXX,因此更自然的目标是建模完整条件分布 p(X∣Y)p(X\mid Y)p(X∣Y),而不是只预测一个确定答案。

典型应用包括:

  1. Language Modeling:根据前文生成后续文本。
  2. Text-to-Image:根据文本描述生成图像。
  3. Image-to-Video:根据图像或短视频预测未来帧。
  4. World Model:建模 p(st+1∣st,text/action)p(s_{t+1}\mid s_t,\text{text/action})p(st+1​∣st​,text/action),预测动作或指令作用后的世界状态。

Taxonomy of Generative Models

生成模型可按是否显式计算数据密度 p(X)p(X)p(X) 分类。

类型代表模型核心特点
Tractable Explicit DensityAutoregressive Model可精确计算 p(X)p(X)p(X),通过链式法则分解联合分布
Approximate Explicit DensityVAE通过变分推断优化对数似然下界
Implicit Density, Direct SamplingGAN不显式计算 p(X)p(X)p(X),直接从噪声映射到样本
Implicit / Approximate SamplingDiffusion Model通过迭代去噪过程近似从数据分布采样

显式密度模型的优势是可以进行概率推断,例如评估样本是否合理;但高维图像分布的密度建模很难。

隐式模型不一定能计算 p(X)p(X)p(X),但可以更直接地生成高质量样本。

Training Object

若模型显式给出密度 pθ(X)p_\theta(X)pθ​(X),最常见目标是 Maximum Likelihood Estimation(MLE,最大似然估计):

max⁡θ∑Xi∈Dlog⁡pθ(Xi)\max_\theta \sum_{X_i\in\mathcal{D}}\log p_\theta(X_i)θmax​Xi​∈D∑​logpθ​(Xi​)

也即让训练数据在模型分布下具有尽可能高的对数似然。不同生成模型的区别在于:pθ(X)p_\theta(X)pθ​(X) 是否可直接计算、是否需要近似、以及如何采样。

Autoregressive Model

Language Modeling

对序列 x1,…,xTx_1,\dots,x_Tx1​,…,xT​,Autoregressive Model 使用链式法则分解联合概率:

p(x1,…,xT)=∏t=1Tp(xt∣x1,…,xt−1)p(x_1,\dots,x_T)=\prod_{t=1}^{T}p(x_t\mid x_1,\dots,x_{t-1})p(x1​,…,xT​)=t=1∏T​p(xt​∣x1​,…,xt−1​)

语言模型即典型自回归生成模型。训练时,模型根据历史 token 预测下一个 token;生成时,从预测分布中逐步采样新 token。

Transformer 中的 Causal Mask 保证位置 ttt 只能看到 1,…,t−11,\dots,t-11,…,t−1 的历史信息,从而满足自回归因果结构。

Image Modeling

图像也可以被展开为序列并逐像素生成,但高分辨率图像的像素序列极长,计算代价很高。现代方法常把图像切分为 patch 或离散视觉 token,再像语言模型一样逐 token 生成。

注:自回归模型可精确计算序列概率,但高维视觉数据的生成顺序并不天然,逐步采样效率也较低。

Variational Autoencoder

From Autoencoder to Variational Autoencoder

Autoencoder(AE)由 Encoder 和 Decoder 组成:

  1. Encoder 将输入图像 XXX 压缩为低维隐变量 ZZZ。
  2. Decoder 根据 ZZZ 重构 X^\hat{X}X^。
  3. 训练目标通常是重构误差,如 ∥X−X^∥22\|X-\hat{X}\|_2^2∥X−X^∥22​。

AE 可以学习低维表示,但不是完整生成模型。原因是普通 AE 不约束隐变量 ZZZ 的分布,因此无法可靠地从隐空间采样一个新 ZZZ 并生成合理图像。

VAE 将 AE 概率化:假设隐变量服从先验分布 p(Z)p(Z)p(Z),通常为标准正态分布 N(0,I)\mathcal{N}(0,I)N(0,I); Decoder 建模条件分布 pθ(X∣Z)p_\theta(X\mid Z)pθ​(X∣Z)。生成时先采样 Z∼p(Z)Z\sim p(Z)Z∼p(Z),再由 Decoder 生成 XXX。

Marginal Likelihood

VAE 希望最大化数据边际似然:

pθ(X)=∫p(Z)pθ(X∣Z) dZp_\theta(X)=\int p(Z)p_\theta(X\mid Z)\,dZpθ​(X)=∫p(Z)pθ​(X∣Z)dZ

该积分需要对所有可能隐变量 ZZZ 积分。即使假设 p(Z)p(Z)p(Z) 与 pθ(X∣Z)p_\theta(X\mid Z)pθ​(X∣Z) 都是高斯,由于 Decoder 的均值和方差由神经网络输出,积分通常没有解析解。

朴素 Monte Carlo 近似为:

pθ(X)≈1K∑k=1Kpθ(X∣Zk),Zk∼p(Z)p_\theta(X)\approx \frac{1}{K}\sum_{k=1}^{K}p_\theta(X\mid Z_k),\quad Z_k\sim p(Z)pθ​(X)≈K1​k=1∑K​pθ​(X∣Zk​),Zk​∼p(Z)

但在高维隐空间中,大多数从先验采样的 ZZZ 与当前 XXX 无关,使 pθ(X∣Z)p_\theta(X\mid Z)pθ​(X∣Z) 接近 0,估计方差极大,训练效率很低。

Variational Posterior and ELBO

真实后验为:

pθ(Z∣X)=p(Z)pθ(X∣Z)pθ(X)p_\theta(Z\mid X)=\frac{p(Z)p_\theta(X\mid Z)}{p_\theta(X)}pθ​(Z∣X)=pθ​(X)p(Z)pθ​(X∣Z)​

由于分母 pθ(X)p_\theta(X)pθ​(X) 不可解,后验也不可解,VAE 引入可学习的变分后验 qϕ(Z∣X)q_\phi(Z\mid X)qϕ​(Z∣X) 来近似真实后验 pθ(Z∣X)p_\theta(Z\mid X)pθ​(Z∣X)。 通常 qϕq_\phiqϕ​ 由 Encoder 参数化,并输出高斯分布的均值与方差。

对 log⁡pθ(X)\log p_\theta(X)logpθ​(X) 可分解为:

log⁡pθ(X)=EZ∼qϕ(Z∣X)[log⁡pθ(X∣Z)]−DKL(qϕ(Z∣X)∥p(Z))+DKL(qϕ(Z∣X)∥pθ(Z∣X))\log p_\theta(X) = \mathbb{E}_{Z\sim q_\phi(Z\mid X)}[\log p_\theta(X\mid Z)] -D_{\mathrm{KL}}(q_\phi(Z\mid X)\|p(Z)) +D_{\mathrm{KL}}(q_\phi(Z\mid X)\|p_\theta(Z\mid X))logpθ​(X)=EZ∼qϕ​(Z∣X)​[logpθ​(X∣Z)]−DKL​(qϕ​(Z∣X)∥p(Z))+DKL​(qϕ​(Z∣X)∥pθ​(Z∣X))

第三项是 qϕq_\phiqϕ​ 与真实后验之间的 KL 散度,非负且不可直接计算。因此前两项构成对数似然下界:

log⁡pθ(X)≥Eqϕ[log⁡pθ(X∣Z)]−DKL(qϕ(Z∣X)∥p(Z))≜ELBO\log p_\theta(X)\ge \mathbb{E}_{q_\phi}[\log p_\theta(X\mid Z)] -D_{\mathrm{KL}}(q_\phi(Z\mid X)\|p(Z)) \triangleq \mathrm{ELBO}logpθ​(X)≥Eqϕ​​[logpθ​(X∣Z)]−DKL​(qϕ​(Z∣X)∥p(Z))≜ELBO

ELBO(Evidence Lower Bound,证据下界)由两部分组成:

项含义
Eqϕ[log⁡pθ(X∣Z)]\mathbb{E}_{q_\phi}[\log p_\theta(X\mid Z)]Eqϕ​​[logpθ​(X∣Z)]重构项,要求 Decoder 能由 ZZZ 重构输入
DKL(qϕ(Z∣X)∥p(Z))D_{\mathrm{KL}}(q_\phi(Z\mid X)\|p(Z))DKL​(qϕ​(Z∣X)∥p(Z))正则项,要求 Encoder 的隐变量分布接近先验

最大化 ELBO 等价于同时提升重构质量,并让训练时的隐变量分布接近采样时使用的先验分布。

Gaussian KL and Reconstruction Loss

若 qϕ(Z∣X)=N(μ,diag⁡(σ2))q_\phi(Z\mid X)=\mathcal{N}(\mu,\operatorname{diag}(\sigma^2))qϕ​(Z∣X)=N(μ,diag(σ2)),且 p(Z)=N(0,I)p(Z)=\mathcal{N}(0,I)p(Z)=N(0,I),则 KL 项有解析形式:

DKL(qϕ(Z∣X)∥N(0,I))=12∑j=1d(μj2+σj2−log⁡σj2−1)D_{\mathrm{KL}}(q_\phi(Z\mid X)\|\mathcal{N}(0,I)) = \frac{1}{2}\sum_{j=1}^{d} (\mu_j^2+\sigma_j^2-\log\sigma_j^2-1)DKL​(qϕ​(Z∣X)∥N(0,I))=21​j=1∑d​(μj2​+σj2​−logσj2​−1)

若进一步把 Decoder 的协方差固定为单位矩阵,则重构对数似然等价于最小化均方误差:

∥X−μX∣Z∥22\|X-\mu_{X\mid Z}\|_2^2∥X−μX∣Z​∥22​

其中 μX∣Z\mu_{X\mid Z}μX∣Z​ 是 Decoder 输出的重构均值。

Reparameterization Trick

为了从 qϕ(Z∣X)q_\phi(Z\mid X)qϕ​(Z∣X) 采样并让梯度回传到 Encoder,VAE 使用 Reparameterization Trick(重参数化技巧):

Z=μZ∣X+ε⊙σZ∣X,ε∼N(0,I)Z=\mu_{Z\mid X}+\varepsilon\odot\sigma_{Z\mid X}, \quad \varepsilon\sim\mathcal{N}(0,I)Z=μZ∣X​+ε⊙σZ∣X​,ε∼N(0,I)

这样随机性由与参数无关的 ε\varepsilonε 提供,而 ZZZ 对 μZ∣X\mu_{Z\mid X}μZ∣X​ 和 σZ∣X\sigma_{Z\mid X}σZ∣X​ 可微,梯度可以穿过采样过程。

VAE Pipeline

Training Pipeline:

  1. 输入训练样本 XXX。
  2. Encoder 输出 qϕ(Z∣X)q_\phi(Z\mid X)qϕ​(Z∣X) 的均值 μZ∣X\mu_{Z\mid X}μZ∣X​ 和方差 σZ∣X\sigma_{Z\mid X}σZ∣X​。
  3. 使用重参数化技巧采样 ZZZ。
  4. Decoder 输出 pθ(X∣Z)p_\theta(X\mid Z)pθ​(X∣Z) 的参数,通常是重构均值 μX∣Z\mu_{X\mid Z}μX∣Z​。
  5. 最大化 ELBO,等价于最小化重构损失 + KL 正则。

Sampling Pipeline:

  1. 从先验 Z∼N(0,I)Z\sim\mathcal{N}(0,I)Z∼N(0,I) 采样。
  2. 将 ZZZ 输入 Decoder。
  3. 输出 μX∣Z\mu_{X\mid Z}μX∣Z​ 作为生成样本。

实际生成图像时通常不再额外从 Decoder 的输出高斯中加噪声,而直接使用均值,以避免图像进一步变模糊。

The Problem of VAE

VAE 的两项损失存在天然张力:

  1. 若 KL 项过强,使 qϕ(Z∣X)≈N(0,I)q_\phi(Z\mid X)\approx \mathcal{N}(0,I)qϕ​(Z∣X)≈N(0,I),则 ZZZ 很少携带关于 XXX 的信息,Decoder 难以重构。
  2. 若重构项过强,Encoder 会把输入信息大量编码进 ZZZ,导致 qϕ(Z∣X)q_\phi(Z\mid X)qϕ​(Z∣X) 偏离标准正态,采样时质量下降。

VAE 生成图像常出现 Blurry Problem(模糊问题)。在高斯似然和 MSE 损失下,Decoder 倾向输出条件均值;当一个隐变量对应多个可能细节时,均值会把多种模式平均起来,导致纹理和边缘变模糊。

注:VAE 的优势是优化目标与整体数据分布相关,模式覆盖较好,隐空间也较有结构;缺点是先验表达能力有限,生成视觉质量通常不如 GAN 或 Diffusion。

The Meaning of Variational

Variational 来自 Variational Inference(变分推断)。 在概率隐变量模型中,真实后验 pθ(Z∣X)p_\theta(Z\mid X)pθ​(Z∣X) 往往不可解,于是引入一族可计算分布 qϕ(Z∣X)q_\phi(Z\mid X)qϕ​(Z∣X),在分布函数空间中寻找最接近真实后验的近似。

固定 θ\thetaθ 时,最大化 ELBO 等价于最小化:

DKL(qϕ(Z∣X)∥pθ(Z∣X))D_{\mathrm{KL}}(q_\phi(Z\mid X)\|p_\theta(Z\mid X))DKL​(qϕ​(Z∣X)∥pθ​(Z∣X))

因此 VAE 本质上是用神经网络实现的变分推断框架。

Multi-Latent VAE

VAE 可以扩展到多个隐变量。例如有 Z1,Z2Z_1,Z_2Z1​,Z2​ 时,可考虑联合分布:

pθ(X,Z1,Z2)=p(Z1)pθ(Z2∣Z1)pθ(X∣Z2)p_\theta(X,Z_1,Z_2)=p(Z_1)p_\theta(Z_2\mid Z_1)p_\theta(X\mid Z_2)pθ​(X,Z1​,Z2​)=p(Z1​)pθ​(Z2​∣Z1​)pθ​(X∣Z2​)

相应地引入变分后验近似真实后验,并得到新的 ELBO。扩散模型可以从这一方向理解为具有大量层级隐变量的生成模型。

Generative Adversarial Network

Motivation

GAN 不显式建模 p(X)p(X)p(X),而是学习一个从噪声到图像的生成器:

G:Z↦X,Z∼p(Z)G: Z\mapsto X,\quad Z\sim p(Z)G:Z↦X,Z∼p(Z)

同时训练一个 Discriminator(判别器)DDD,用于判断输入图像来自真实数据还是生成器。生成器 GGG 的目标是生成足以欺骗 DDD 的样本;判别器 DDD 的目标是区分真实样本与生成样本。

Minimax Object

原始 GAN 是一个双人极小极大博弈:

min⁡Gmax⁡D[Ex∼pdata[log⁡D(x)]+Ez∼p(z)[log⁡(1−D(G(z)))]]\min_G \max_D \left[ \mathbb{E}_{x\sim p_{\mathrm{data}}}[\log D(x)] + \mathbb{E}_{z\sim p(z)}[\log(1-D(G(z)))] \right]Gmin​Dmax​[Ex∼pdata​​[logD(x)]+Ez∼p(z)​[log(1−D(G(z)))]]

其中:

  • D(x)D(x)D(x) 表示样本为真实数据的概率;
  • DDD 希望真实图像得分接近 1,生成图像得分接近 0;
  • GGG 希望 D(G(z))D(G(z))D(G(z)) 接近 1。

Training Pipeline:

  1. 采样真实图像 x∼pdatax\sim p_{\mathrm{data}}x∼pdata​ 与噪声 z∼p(z)z\sim p(z)z∼p(z)。
  2. 用 G(z)G(z)G(z) 得到生成图像。
  3. 固定 GGG,更新 DDD,提高真假判别能力。
  4. 固定 DDD,更新 GGG,提高欺骗判别器的能力。
  5. 交替重复上述步骤。

Saturating Loss and Non-Saturating Loss

原始生成器目标来自极小化:

Ez∼p(z)[log⁡(1−D(G(z)))]\mathbb{E}_{z\sim p(z)}[\log(1-D(G(z)))]Ez∼p(z)​[log(1−D(G(z)))]

训练早期,生成样本质量很差,D(G(z))≈0D(G(z))\approx 0D(G(z))≈0。此时 log⁡(1−D(G(z)))\log(1-D(G(z)))log(1−D(G(z))) 容易进入饱和区,生成器梯度很小,训练困难。

实践中常使用 Non-Saturating Loss:

max⁡GEz∼p(z)[log⁡D(G(z))]\max_G \mathbb{E}_{z\sim p(z)}[\log D(G(z))]Gmax​Ez∼p(z)​[logD(G(z))]

该目标在 D(G(z))D(G(z))D(G(z)) 很小时仍能提供较强梯度,因此更适合训练生成器。

DCGAN, Progressive GAN, StyleGAN

早期 GAN 使用卷积架构后显著提升图像质量。后续发展包括:

方法核心思想影响
DCGAN使用卷积生成器与卷积判别器使 GAN 更适合图像生成
Progressive GAN从低分辨率开始,逐步增加网络层和图像分辨率提升高分辨率人脸生成稳定性
BigGAN大规模条件 GAN,扩大模型和 batch提升 ImageNet 类别图像生成质量
StyleGAN使用 style-based generator 调控不同尺度视觉属性在高质量人脸生成中表现突出

注:人脸生成相对更容易,因为结构模式较固定;开放类别、复杂室内场景或多物体关系生成仍更困难。

The Problem of GAN

GAN 的主要问题是 Mode Collapse(模式坍塌)。由于生成器只需骗过当前判别器,它可能只生成真实分布中的少数模式,而不是覆盖完整数据分布。

例如在多峰分布中,GGG 可能只学到几个高质量样本区域。只要这些样本足以让 DDD 难以区分,训练目标并不会直接惩罚缺失的模式。

模型分布覆盖生成清晰度主要问题
VAE通常较好容易模糊高斯似然与 MSE 导致均值化
GAN可能不足通常清晰训练不稳定、Mode Collapse

注:VAE 倾向覆盖分布但视觉质量偏模糊;GAN 倾向生成清晰样本但可能遗漏模式。这也是后来 Diffusion Model 受到重视的重要原因之一。

Evaluation of GANs

GAN 的生成器没有直接优化一个可解释的似然目标,因此评估通常需要结合定性与定量方法。

常见定性评估包括:

  1. Nearest Neighbor:将生成样本与训练集中最近邻样本对比,检查是否记忆训练集。
  2. User Study:让用户判断图像真假或比较不同模型的生成质量。
  3. Mode Drop / Mode Collapse 检查:在已知类别或已知模式的数据集上,检查生成样本是否覆盖所有模式。

FID(Fréchet Inception Distance)是常用定量指标。其流程为:

  1. 用 Inception Network 或其他 CNN 的中间层提取真实图像与生成图像特征。
  2. 分别估计两组特征的均值和协方差。
  3. 将两组特征分布近似为多元高斯。
  4. 计算两个高斯分布之间的 Fréchet 距离。

FID 公式为:

FID=∥μr−μg∥22+Tr⁡(Σr+Σg−2(ΣrΣg)1/2)\mathrm{FID} = \|\mu_r-\mu_g\|_2^2 + \operatorname{Tr}\left( \Sigma_r+\Sigma_g-2(\Sigma_r\Sigma_g)^{1/2} \right)FID=∥μr​−μg​∥22​+Tr(Σr​+Σg​−2(Σr​Σg​)1/2)

其中 (μr,Σr)(\mu_r,\Sigma_r)(μr​,Σr​) 为真实图像特征的均值与协方差,(μg,Σg)(\mu_g,\Sigma_g)(μg​,Σg​) 为生成图像特征的均值与协方差。FID 越小,表示生成分布与真实分布越接近。

注:FID 同时反映生成质量与多样性,但它依赖特征提取网络,并且对噪声、模糊、黑块污染、旋涡变形等图像失真较敏感。

Summary

模型密度建模采样方式优点局限
Autoregressive显式且可精确计算逐 token 采样似然可算,理论清晰高维视觉生成效率低
VAE显式但通过 ELBO 近似从先验采样后解码隐空间有结构,模式覆盖较好生成图像常模糊
GAN隐式密度噪声直接映射到样本图像清晰,采样快训练不稳定,容易 Mode Collapse
Diffusion与 ELBO 有联系,采样为迭代过程逐步去噪质量与覆盖较均衡采样成本较高

生成模型的核心问题可以概括为:如何学习复杂高维数据分布,并在质量、覆盖、多样性、似然可解释性与采样效率之间取得平衡。 VAE 与 GAN 分别代表了近似似然优化和对抗式隐式采样两条路线,后续 Diffusion Model 将进一步结合分布覆盖与高质量生成的优势。

目录
  • Overview of Generative Models
    • Comparison Between Three Models
    • Probability-Based Competition
    • Why We Need Generative Model
    • Taxonomy of Generative Models
    • Training Object
  • Autoregressive Model
    • Language Modeling
    • Image Modeling
  • Variational Autoencoder
    • From Autoencoder to Variational Autoencoder
    • Marginal Likelihood
    • Variational Posterior and ELBO
    • Gaussian KL and Reconstruction Loss
    • Reparameterization Trick
    • VAE Pipeline
    • The Problem of VAE
    • The Meaning of Variational
    • Multi-Latent VAE
  • Generative Adversarial Network
    • Motivation
    • Minimax Object
    • Saturating Loss and Non-Saturating Loss
    • DCGAN, Progressive GAN, StyleGAN
    • The Problem of GAN
    • Evaluation of GANs
  • Summary
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo