AE、VAE与GAN简明指南:三大生成模型对比
AE、VAE与GAN简明指南:三大生成模型对比
1. 核心概念一句话总结
2. 模型结构对比
2.1 AE结构(最简单)
输入图片 → [编码器] → 隐向量z → [解码器] → 还原图片

特点:
- 隐向量是确定的(无随机性)
 - 训练目标:输入输出尽可能像
 - 隐空间可能不连续
 
2.2 VAE结构(AE升级版)
输入图片 → [编码器] → μ+σ → [采样] → 隐向量z → [解码器] → 生成图片

特点:
- 隐向量是概率分布(有随机性)
 - 训练目标:输入输出像 + 隐向量接近正态分布
 - 隐空间连续,可插值
 
2.3 GAN结构(完全不同)
噪声z → [生成器] → 假图片 → [判别器] → 真/假真实图片 → [判别器] → 真/假

特点:
- 无编码器,直接从噪声生成
 - 对抗训练,生成器vs判别器
 - 生成质量最高,但训练不稳定
 
3. 训练与推理流程
3.1 AE训练流程
训练:
- 输入图片x
 - 编码器得到隐向量z
 - 解码器得到重构图片x̂
 - 计算MSE损失:||x - x̂||²
 - 反向传播
 
推理:
# 只能还原训练过的图片reconstructed = ae(original_image)# 无法生成新图片(隐空间不连续)
3.2 VAE训练流程
训练:
- 输入图片x
 - 编码器输出μ和σ
 - 从N(μ,σ)采样得到z
 - 解码器得到生成图片x̂
 - 计算损失:重构误差 + KL散度
 
推理:
# 生成新图片(采样隐向量)z = torch.randn(1, 100)new_image = vae.decode(z)# 插值生成(隐空间连续)z1 = vae.encode(image1)z2 = vae.encode(image2)interp_image = vae.decode(0.5*z1 + 0.5*z2)
3.3 GAN训练流程
训练:
- 训练判别器:
- 真实图片 → 输出1
 - 生成假图片 → 输出0
 
 - 训练生成器:
- 生成假图片 → 让判别器输出1
 
 - 交替训练
 
推理:
# 直接生成新图片noise = torch.randn(1, 100)new_image = generator(noise)
4. 损失函数对比
5. 实际应用对比
5.1 AE应用场景
5.2 VAE应用场景
5.3 GAN应用场景
6. 选择建议
6.1 按需求选择
6.2 按经验选择
- 新手:先AE,再VAE,最后GAN
 - 研究:VAE理论清晰,GAN效果好
 - 工业:GAN质量优先,VAE稳定性优先
 
7. 一句话总结
- AE:最简单的压缩还原,像zip文件
 - VAE:AE加随机性,可以生成新图片
 - GAN:对抗训练,质量最高但最难调
 
参考:
 1、Autoencoders
 2、Generative Adversarial Networks


