社区计算机视觉课程文档

生成对抗网络

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

生成对抗网络

简介

生成对抗网络(GANs)是由Ian Goodfellow及其同事于2014年提出的一类深度学习模型。GANs的核心思想是训练一个生成器网络来生成与真实数据无区分的数据,同时训练一个判别器网络来区分真实数据和生成数据。

  • 架构概述: GANs由两个主要组件组成:生成器判别器
  • 生成器: 生成器以随机噪声zz作为输入,并生成合成数据样本。它的目标是创建足够逼真的数据来欺骗判别器。
  • 判别器: 判别器类似于侦探,评估给定的样本是真实的(来自实际数据集)还是伪造的(由生成器生成)。其目标是提高区分真实样本和生成样本的准确性。

一个常见的在线类比是艺术赝造者/画家(生成器)试图伪造画作,而艺术调查员/评论家(判别器)则试图检测限制。

Lilian Weng GAN Figure

GANs vs VAEs

GANs和VAEs都是机器学习中流行的生成模型,但它们有不同的优点和缺点。哪个“更好”取决于具体的任务和要求。以下是它们的优缺点细分。

  • 图像生成
    • GANs
      • 优点: 生成更高质量的图像,特别是对于具有锐利细节和真实纹理的复杂数据。
      • 缺点: 训练难度更大,容易出现不稳定性。
      • 示例: GAN生成的卧室图像可能与真实图像无法区分,而VAE生成的卧室可能显得模糊或具有不真实的照明。Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015 中GAN生成卧室的示例
    • VAEs
      • 优点: 比GANs更容易训练,更稳定。
      • 缺点: 可能生成模糊、细节较少、特征不真实的图像。
  • 其他任务
    • GANs
      • 优点: 可用于超分辨率和图像到图像转换等任务。
      • 缺点: 对于需要数据点之间平滑过渡的任务可能不是最佳选择。
    • VAEs
      • 优点: 广泛用于图像去噪和异常检测等任务。
      • 缺点: 对于需要高质量图像生成的任务可能不如GANs有效。

下表总结了主要区别

特性 GANs VAEs
图像质量 更高 更低
训练难度 更难 更容易
稳定性 更不稳定 更稳定
应用 图像生成、超分辨率、图像到图像转换 图像去噪、异常检测、信号分析

最终,最佳选择取决于具体的需要和优先级。如果需要高质量图像用于生成逼真的人脸或风景等任务,那么GAN可能是更好的选择。但是,如果需要一个更容易训练且更稳定的模型,那么VAE可能是更好的选择。

训练GANs

训练GANs涉及一个独特的对抗过程,其中生成器和判别器玩着猫捉老鼠的游戏。

  • 对抗训练过程: 生成器和判别器同时训练。生成器旨在生成与真实数据无区分的数据,而判别器则努力提高区分真实样本和伪造样本的能力。
  • 目标函数: 训练过程由一个最小-最大博弈型目标函数指导,该函数用于优化生成器和判别器。生成器旨在最小化判别器正确将生成样本分类为伪造的概率,而判别器则力求最大化此概率。此目标函数表示为minGmaxDL(D,G)=Expr(x)[logD(x)]+Expg(x)[log(1D(x))]\min_G \max_D L(D, G)=\mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{x \sim p_g(x)} [\log(1 - D(x))]这里,判别器试图最大化此损失函数,而生成器则试图最小化它,从而形成对抗性质。
  • 迭代改进: 随着训练的进行,生成器变得擅长生成逼真样本,判别器也变得更具辨别力。这种对抗循环持续进行,直到生成器生成的数据几乎与真实数据无法区分。

参考文献:

  1. Lilian Weng关于GANs的精彩博客
  2. GAN — 什么是生成对抗网络
  3. 用于图像生成的VAE和GAN之间根本区别是什么?
  4. GAN和VAE模型的问题
  5. VAE 与 GAN 图像生成对比
  6. 扩散模型 vs. GANs vs. VAEs:深度生成模型比较
< > 在 GitHub 上更新