AE、VAE与GAN简明指南:三大生成模型对比

发布于:2025-07-30 ⋅ 阅读:(17) ⋅ 点赞:(0)

AE、VAE与GAN简明指南:三大生成模型对比

1. 核心概念一句话总结

模型 核心思想 一句话理解
AE 压缩-还原 把图片压成向量,再还原,像zip压缩
VAE 压缩+随机性 AE加噪声,让向量有概率意义
GAN 造假-识别 两个网络打架,越打越真

2. 模型结构对比

2.1 AE结构(最简单)

输入图片 → [编码器] → 隐向量z → [解码器] → 还原图片

在这里插入图片描述

特点

  • 隐向量是确定的(无随机性)
  • 训练目标:输入输出尽可能像
  • 隐空间可能不连续

2.2 VAE结构(AE升级版)

输入图片 → [编码器] → μ+σ → [采样] → 隐向量z → [解码器] → 生成图片

在这里插入图片描述

特点

  • 隐向量是概率分布(有随机性)
  • 训练目标:输入输出像 + 隐向量接近正态分布
  • 隐空间连续,可插值

2.3 GAN结构(完全不同)

噪声z → [生成器] → 假图片 → [判别器] → 真/假
真实图片 → [判别器] → 真/假

在这里插入图片描述

特点

  • 无编码器,直接从噪声生成
  • 对抗训练,生成器vs判别器
  • 生成质量最高,但训练不稳定

3. 训练与推理流程

3.1 AE训练流程

训练

  1. 输入图片x
  2. 编码器得到隐向量z
  3. 解码器得到重构图片x̂
  4. 计算MSE损失:||x - x̂||²
  5. 反向传播

推理

# 只能还原训练过的图片
reconstructed = ae(original_image)

# 无法生成新图片(隐空间不连续)

3.2 VAE训练流程

训练

  1. 输入图片x
  2. 编码器输出μ和σ
  3. 从N(μ,σ)采样得到z
  4. 解码器得到生成图片x̂
  5. 计算损失:重构误差 + 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. 训练判别器
    • 真实图片 → 输出1
    • 生成假图片 → 输出0
  2. 训练生成器
    • 生成假图片 → 让判别器输出1
  3. 交替训练

推理

# 直接生成新图片
noise = torch.randn(1, 100)
new_image = generator(noise)

4. 损失函数对比

模型 损失函数 优化目标
AE MSE损失 输入输出尽可能像
VAE MSE + KL散度 输入输出像 + 隐向量正态分布
GAN 对抗损失 生成器骗过判别器

5. 实际应用对比

5.1 AE应用场景

应用 实现方式 局限性
图像压缩 隐向量就是压缩码 压缩率有限
特征提取 用隐向量做下游任务 特征可能不够好
去噪 训练有噪声→无噪声 只能去训练过的噪声

5.2 VAE应用场景

应用 实现方式 优势
人脸生成 在隐空间插值 平滑过渡
数据增强 采样生成新样本 多样性高
异常检测 重构误差大的为异常 无需异常样本

5.3 GAN应用场景

应用 实现方式 优势
艺术创作 StyleGAN等 质量最高
图像修复 条件GAN 逼真细节
风格迁移 CycleGAN 无需配对数据

6. 选择建议

6.1 按需求选择

需求 推荐模型 理由
快速原型 AE 最简单,易实现
稳定生成 VAE 训练稳定,可解释
最高质量 GAN 生成效果最佳
特征提取 AE/VAE 有编码器
数据增强 VAE 隐空间连续

6.2 按经验选择

  • 新手:先AE,再VAE,最后GAN
  • 研究:VAE理论清晰,GAN效果好
  • 工业:GAN质量优先,VAE稳定性优先

7. 一句话总结

  • AE:最简单的压缩还原,像zip文件
  • VAE:AE加随机性,可以生成新图片
  • GAN:对抗训练,质量最高但最难调

参考:
1、Autoencoders
2、Generative Adversarial Networks


网站公告

今日签到

点亮在社区的每一天
去签到