论文地址:Conditional Generative Adversarial Nets
Conditional Generative Adversarial Nets(cGANs)条件生成对抗网络
就是在之前GANs中,都是无条件约束的生成,在cGANs中,在D和G的输入都加入条件,使得生成的模型是在一定条件下进行的,能够更好得达到要求
整个网络结构如上图所示,其中z为生成网络随机的输入,y为条件,x为真实样本
训练过程仍如GANs,先训练判别器,再训练生成器,交替进行,直到判别器无法判定真实样本和生成的样本
训练过程中,不同的在于,判别器D需要判别三种类型:
(1)条件和与条件相符的真实图片,期望输出为1;(2)条件和与条件不符的真实图片,期望输出为0;(3)条件和生成网络生成的输出,期望输出为0
在cGANs的论文中,进行了MNIST数据集的测试
在这个测试中,加入的条件为每个图片的标签
也就是生成器G的输入为随机向量和需要生成的图片的对应标签
判别器D的输入为真实图片和真实图片对应的标签、以及生成图片
下图为生成的一些图片
我的对于条件的理解是这样的,也就是之前我们一个GAN,只把0这个数字的图片作为真实样本放入GAN训练,GAN能生成一个数字的图片比如0这个数字的图片,我们要想要生成0-9所有的对应图片,我们需要训练10个不同的GAN,
但是加入条件,也就是每个图片样本对应的标签的时候,我们就可以把10个数字的样本和对应的标签都同时放到这个网络里边,我们就可以使用一个GAN网络生成0-9这十个数字的图片了