生成模型

9 minAdvanced2026/6/15

GAN、VAE、Diffusion Model生成模型原理与对比。

1. 生成模型概述

生成模型学习数据的分布 P(x)P(\mathbf{x}),从而能够生成新的样本。

1.1 分

方法代表
显式密度模型直接建模 P(x)P(\mathbf{x})VAE、Flow
隐式密度模型不显式建模分布GAN
得分模型学习得分函数Diffusion

2. GAN(生成对抗网络)

2.1 基本原理

GAN 由生成器判别器对抗训练:

minGmaxDV(D,G)=Expdata[logD(x)]+Ezpz[log(1D(G(z)))]\min_G \max_D V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{data}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

graph LR
    Z["随机噪声z"] --> G["生成器G"]
    G --> Fake["假样本G(z)"]
    X["真实样本x"] --> D["判别器D"]
    Fake --> D
    D --> Out["真/假"]

2.2 训练过程

交替训练:
1. 固定G,训练D: 区分真假样本
   D_loss = -E[log D(x)] - E[log(1 - D(G(z)))]

2. 固定D,训练G: 生成更逼真的样本
   G_loss = -E[log D(G(z))]  (非饱和损失)

2.3 理论保证

最优判别器

D(x)=pdata(x)pdata(x)+pg(x)D^*(\mathbf{x}) = \frac{p_{data}(\mathbf{x})}{p_{data}(\mathbf{x}) + p_g(\mathbf{x})}

全局最优:当 pg=pdatap_g = p_{data} 时,D(x)=0.5D^*(\mathbf{x}) = 0.5

2.4 GAN变体

变体改进说明
DCGAN卷积架构稳定训练
WGANWasserstein距离解决模式崩溃
CGAN条件生成控制生成内容
CycleGAN循环一致性无配对像转换
StyleGAN风格控制高质量人脸生成
SAGAN自注意力全局一致性

WGAN:用Wasserstein距离替代JS散度:

W(pdata,pg)=supfL1Expdata[f(x)]Expg[f(x)]W(p_{data}, p_g) = \sup_{\|f\|_L \leq 1} \mathbb{E}_{\mathbf{x} \sim p_{data}}[f(\mathbf{x})] - \mathbb{E}_{\mathbf{x} \sim p_g}[f(\mathbf{x})]

2.5 GAN训练问题

问题原因解决方案
模式崩溃G只生成少数样本WGAN、Minibatch判别
训练不稳定D和G能力不匹配谱归一化、梯度惩罚
评估困难无显式似然FID、IS指标

3. VAE(变分自编码器)

3.1 基本原理

VAE 通过编码器-解码器结构学习数据的潜在表示:

编码器:qϕ(zx)p(zx)\text{编码器}: q_\phi(\mathbf{z}|\mathbf{x}) \approx p(\mathbf{z}|\mathbf{x}) 解码器:pθ(xz)\text{解码器}: p_\theta(\mathbf{x}|\mathbf{z})

3.2 损失函数(ELBO)

L(θ,ϕ)=Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z))\mathcal{L}(\theta, \phi) = \mathbb{E}_{q_\phi(\mathbf{z}|\mathbf{x})}[\log p_\theta(\mathbf{x}|\mathbf{z})] - D_{KL}(q_\phi(\mathbf{z}|\mathbf{x}) \| p(\mathbf{z}))

| 项 | 含义 | 作用 | | :------- | :------------------------------------ | :--------------------- | -------- | | 重建项 | E[logp_θ(xz)]\mathbb{E}[\log p\_\theta(\mathbf{x} | \mathbf{z})] | 重建质量 | | KL散度项 | DKL(qϕp)D_{KL}(q_\phi \| p) | 正则化,使后验接近先验 |

3.3 重参数化技巧

直接从 qϕ(zx)q_\phi(\mathbf{z}|\mathbf{x}) 采样不可微,使用重参数化:

z=μ+σϵ,ϵN(0,I)\mathbf{z} = \boldsymbol{\mu} + \boldsymbol{\sigma} \odot \boldsymbol{\epsilon}, \quad \boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{I})

3.4 VAE vs GAN

维度VAEGAN
训练稳定性稳定不稳定
生成质量较模糊较清晰
似然估计
潜在空间有结构无结构
模式覆盖差(模式崩溃)

4. Diffusion Model(扩散模型)

4.1 基本原理

扩散模型包含前向扩散反向去噪两个过程:

前向过程(加噪):

q(xtxt1)=N(xt;1βtxt1,βtI)q(\mathbf{x}_t | \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1-\beta_t}\mathbf{x}_{t-1}, \beta_t\mathbf{I})

任意时刻的分布:

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)q(\mathbf{x}_t | \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\mathbf{x}_0, (1-\bar{\alpha}_t)\mathbf{I})

其中 αˉt=s=1t(1βs)\bar{\alpha}_t = \prod_{s=1}^{t}(1-\beta_s)

反向过程(去噪):

pθ(xt1xt)=N(xt1;μθ(xt,t),σt2I)p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) = \mathcal{N}(\mathbf{x}_{t-1}; \boldsymbol{\mu}_\theta(\mathbf{x}_t, t), \sigma_t^2\mathbf{I})

4.2 训练目标

简化后的损失函数:

Lsimple=Et,x0,ϵ[ϵϵθ(xt,t)2]\mathcal{L}_{simple} = \mathbb{E}_{t, \mathbf{x}_0, \boldsymbol{\epsilon}}\left[\|\boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)\|^2\right]

模型学习预测添加的噪声 ϵ\boldsymbol{\epsilon}

4.3 采样方法

方法步数质量
DDPM1000步
DDIM20~50步
DPM-Solver10~20步
LCM1~4步

4.4 条件生成

Classifier-Free Guidance

ϵ^θ=(1+w)ϵθ(xt,t,c)wϵθ(xt,t,)\hat{\boldsymbol{\epsilon}}_\theta = (1+w)\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, \mathbf{c}) - w\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, \emptyset)

  • ww 为引导强度
  • ww 越大,生成结果越符合条件但多样性降低

4.5 代表模型

模型领域特点
DDPM开创性工作
Stable Diffusion潜在空间扩散
DALL-E 2/3文本到
Sora视频视频生成
AudioLDM音频音频生成

5. 生成模型对比

维度GANVAEDiffusion
生成质量最高
多样性
训练稳定性
采样速度
似然估计有(下界)
可控性