作者:中南大学可视化实验室 硕士研究生 HYH

日期:2020-8-1

标签:GAN 对抗 进化

论文期刊: 2014-NIPS

简单介绍

提出了一种生成对抗网络(generative adversarial network,GAN),完全避免了现有生成模型的难点痛点。

问题陈述

1.生成模型要做的事情是什么?

生成模型(generative model)描述的是这一类的模型:接收了从某一未知分布p_data取样的若干样本构成我们的训练集,生成模型会学习到一个模拟这一分布的概率分布p_model,如下图所示的密度概率分布模型:
Generative Adversarial Nets-GAN生成对抗网络
如果生成模型是要生成图像的话可以用这张图片理解:图像在高维空间可以表示为一个点,我们要做的事情其实就是估计这些点在高维空间上的概率分布(Estimate the probability distribution),有了这个分布以后我们就可以根据它去sample出一张接近真实图片的图。

怎么去估计这个概率是一个难点1(但其难点在于如何定义模型使得其既能表达数据的复杂度同时又方便计算);

生成模型的训练过程中还要控制让输出图片跟原图越像越好:
Generative Adversarial Nets-GAN生成对抗网络
但这样的话我们的模型学到的并不是生成从未见过的图像,而是去模仿真实图像:
Generative Adversarial Nets-GAN生成对抗网络
怎样学到像素点components之间的关系是另一个难点2

2.于是作者提出一种开创性的GAN网络来完全避免这些问题。

怎么做的

1、主要思想:

GAN的思想就像生物进化一样,G和D是两种敌对生物,在天则过程中,相互不断进化。

G是生成模型,用来模仿真实数据生成合成数据;D是判别模型,用来判断一个数据是真实的还是合成的。如果G进化后生成的数据能骗过D,D进化后能够察觉出来G骗了他;一直相互进化下去互相变强。

2、具体算法

Generative Adversarial Nets-GAN生成对抗网络
上图为利用GAN生成二次元头像的一个例子。
Generative Adversarial Nets-GAN生成对抗网络
我们希望训练出D模型(判别模型)可以让真实图片的值越大越好,让合成图片的值越小越好。

我们希望G模型输出的图片更接近真实值,那就可以将其pipe进D模型后数出来的值越大越好。

3、实验结果

Generative Adversarial Nets-GAN生成对抗网络
上图为通过在z空间进行线性插值得到的对应的图片。
Generative Adversarial Nets-GAN生成对抗网络
上图为别人利用GAN做出的在z空间进行线性插值得到的对应的图片。

结论

缺点:

在训练过程中D必须与G同步更新。

优点:

和其他生成模型相比,在计算上更为简单。

extensions:

  1. GAN对于输入的generator的vector还是无法控制,可以对输入加个条件c(Conditional GAN)。
  2. 提高效率方面:可以通过更好的协调G和D的更新或确定样本z的更好分布来加快训练速度。

注:本文发表已经过原文作者同意 若有侵权请及时联系