【paddleGAN学习笔记】 GAN介绍

文章目录

  • GAN简介
  • GAN的公式
  • GAN的演进图谱
      • DCGAN
      • ImprovedGAN
      • PACGAN
      • WGAN
      • CycleGAN
      • Vid2Vid
      • PGGAN
      • StackGAN
      • BigGAN
      • StyleGAN
  • 参考


GAN简介

  • GAN最直接的应用在于数据的生成,也就是通过GAN的建模能力生成图像、语音、文字、视频等等。
  • 目前,GAN最成功的应用领域主要是计算机视觉,包括图像、视频的生成,如图像翻译、图像上色、图像修复、视频生成等。
  • 此外GAN在自然语言处理,人机交互领域也略有拓展和应用。
  • 近期,GAN在娱乐方向的应用一直在不断增长,比如人脸表情迁移、肢体动作迁移、动漫化等等,皆为娱乐界提供了人工智能的助力。

GAN的公式

  • G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
  • D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。

【paddleGAN学习笔记】 GAN介绍_第1张图片

上图中的标记符号:

  • Pdata(x) → 真实数据的分布
  • X → pdata(x)的样本(真实图片)
  • P(z) →生成器的分布
  • Z → p(z)的样本(噪声)
  • 在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。
    而D的目标就是尽量把G生成的图片和真实的图片分别开来。
    这样,G和D构成了一个动态的“博弈过程”。

  • 最后博弈的结果是什么?
    在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。
    对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5

用公式表示如下:
在这里插入图片描述

整个式子由两项构成。

X表示真实图片,Z表示输入G网络的噪声,而G(z)表示G网络生成的图片。
D(x)表示D网络判断真实图片是否真实的概率(因为x就是真实的,所以对于D来说,这个值越接近1越好)。
而D(G(z))是D网络判断G生成的图片的是否真实的概率。

G的目的:上面提到过,D(G(z))是D网络判断G生成的图片是否真实的概率,G应该希望自己生成的图片“越接近真实越好”。也就是说,G希望D(G(z))尽可能得大,这时V(D, G)会变小。因此我们看到式子的最前面的记号是(min_G)。

D的目的:D的能力越强,D(x)应该越大,D(G(z))应该越小。这时V(D,G)会变大。因此式子对于D来说是求最大(max_D)。


GAN的演进图谱

【paddleGAN学习笔记】 GAN介绍_第2张图片

DCGAN

  • DCGAN主要讨论 CNN 与 GAN 如何结合使用并给出了一系列建议。
  • 由于卷积神经网络(Convolutional neural network, CNN)比MLP有更强的拟合与表达能力,并在判别式模型中取得了很大的成果。
  • 因此,Alec等人将CNN引入生成器和判别器,称作深度卷积对抗神经网络(Deep Convolutional GAN, DCGAN)。
  • 另外还讨论了 GAN 特征的可视化、潜在空间插值等问题。

ImprovedGAN

  • Ian Goodfellow 等人提供了诸多训练稳定 GAN 的建议。
  • 包括特征匹配、mini-batch 识别、历史平均、单边标签平滑以及虚拟批标准化等技巧。
  • 讨论了 GAN 不稳定性的最佳假设

PACGAN

  • PACGAN讨论的是如何分析 model collapse,以及提出了 PAC 判别器的方法用于解决 model collapse。
  • 思想其实就是将判别器的输入改成多个样本,这样判别器可以同时看到多个样本可以从一定程度上防止 model collapse。

WGAN

  • WGAN从理论上分析了原始 GAN 模型存在的训练不稳定、生成器和判别器的 loss 无法只是训练进程、生成样本缺乏多样性等问题。
  • 并通过改进算法流程针对性的给出了改进要点。

CycleGAN

  • CycleGAN讨论 image2image 的转换问题,提出了 Cycle consistency loss 来处理缺乏成对训练样本来做 image2image 的转换问题。
  • Cycle Consistency Loss 背后的主要想法,图片 A 转化得到图片 B,再从图片 B 转换得到图片 A’,那么图片 A 和图片 A’应该是图一张图片。

Vid2Vid

  • Vid2Vid通过在生成器中加入光流约束判别器中加入光流信息
  • 对前景和背景分别建模重点解决了视频转换过程中前后帧图像的不一致性问题。

PGGAN

  • PGGAN创造性地提出了以一种渐进增大(Progressive growing)的方式训练 GAN,利用逐渐增大的 PGGAN 网络实现了效果令人惊叹的生成图像。
  • “Progressive Growing” 指的是先训练 4x4 的网络,然后训练 8x8,不断增大,最终达到 1024x1024。这既加快了训练速度,又大大稳定了训练速度,并且生成的图像质量非常高

StackGAN

  • StackGAN是由文本生成图像,StackGAN 模型与 PGGAN 工作的原理很像。
  • StackGAN 首先输出分辨率为 64×64 的图像,然后将其作为先验信息生成一个 256×256 分辨率的图像。

BigGAN

  • BigGAN模型是基于 ImageNet 生成图像质量最高的模型之一
  • 该模型很难在本地机器上实现,而且有许多组件,如 Self-Attention、 Spectral Normalization 和带有投影鉴别器的 cGAN 等。

StyleGAN

  • StyleGAN应该是截至目前最复杂的 GAN 模型,该模型借鉴了一种称为自适应实例标准化 (AdaIN) 的机制来控制潜在空间向量 z。
  • 虽然很难自己实现一个 StyleGAN,但是它提供了很多有趣的想法。

参考

https://aistudio.baidu.com/aistudio/projectdetail/4042847

你可能感兴趣的:(paddleGAN学习笔记,学习,深度学习,计算机视觉)