Conditional Generative Adversarial Nets论文笔记

原创 2017年01月22日 17:22:55

论文地址:Conditional Generative Adversarial Nets


2014年,Goodfellow提出了Generative Adversarial Networks,在论文的最后他指出了GAN的优缺点以及未来的研究方向和拓展,其中他提到的第一点拓展就是:A conditional generative model p(x|c) can be obtained by adding c as input to both G and D。这是因为这种不需要预先建模的方法缺点是太过自由了,对于较大的图片,较多的pixel的情形,基于简单 GAN 的方式就不太可控了。于是我们希望得到一种条件型的生成对抗网络,通过给GAN中的G和D增加一些条件性的约束,来解决训练太自由的问题。于是同年,Mirza等人就提出了一种Conditional Generative Adversarial Networks,这是一种带条件约束的生成对抗模型,它在生成模型(G)和判别模型(D)的建模中均引入了条件变量y,这里y可以是label,可以是tags,可以是来自不同模态是数据,甚至可以是一张图片,使用这个额外的条件变量,对于生成器对数据的生成具有指导作用,因此,Conditional Generative Adversarial Networks也可以看成是把无监督的GAN变成有监督模型的一种改进,这个改进也被证明是非常有效的,为后续的相关工作提供了指导作用。


在之前的文章中,我们提到了Generative Adversarial Networks实际上是对D和G解决以下极小化极大的二元博弈问题:


而在D和G中均加入条件约束y时,实际上就变成了带有条件概率的二元极小化极大问题:


在生成器模型中,条件变量y实际上是作为一个额外的输入层(additional input layer),它与生成器的噪声输入p(z)组合形成了一个联合的隐层表达;在判别器模型中,y与真实数据x也是作为输入,并输入到一个判别函数当中。实际上就是将z和x分别于y进行concat,分别作为生成器和判别器的输入,再来进行训练。其实在有监督的DBN中,也用到了类似的做法。Conditional Generative Adversarial Networks的基本框架如下图:


在论文中,作者做了两个实验,一是MNIST手写体数据集的生成,二是基于多模态的图像自动标注。

在MNIST数据集的实验中,对于生成器模型,将label的one-hot编码与100维的均匀分布的噪声输入concat起来作为输入,输出是784维的生成数据,与数据集28*28的维度一致。对于判别器模型,作者使用了一个maxout的激活层,对maxout感兴趣的朋友可以去看Goodfellow2013年的一篇论文Maxout Networks,本文作者提到了模型的框架并不是限定的,只不过在这里使用maxout对于这个任务的效果非常好。

在多模态的实验中,作者使用的是Flickr数据集,这个数据集具有大量的含有标签的图像,并且具有很多user-generated metadat/user-tags,而这些user-tags的好处是,相当于是很多人来描述这张图片,而不是仅仅来定义这张图片,并且对于不同的人来描述可能会出现很多同义词,这对训练也起到了非常有效的效果。

在这里,作者的目的是利用图像的特征作为条件变量,生成词向量的分布,实现一个图像自动标注的功能。对于image feature,作者使用的是在ImageNet数据集上预训练的卷积神经网络,利用最后一个全连接层的4096个单元的输出作为图像特征。对于word representation,先从YFCC100M数据集中收集一个语料库,包含有相关的user-tags、标题以及描述等,然后训练一个skip-gram的模型,用来生成一个语义的字典。

然后在实验中,分别使用上面的卷积模型和skip-gram模型来提取Flickr数据集中的图片和tag特征,然后来训练我们的Conditional Generative Adversarial Network,最终实现了很好的图像自动标注的效果。

在文章的最后,作者提出了几点未来的研究方向,第一,文中使用的模型和方法都是比较简单的,作者希望能够探索更加sophisticated的Conditional Generative Adversarial Network;第二,在文章中的图像自动标注实验中,是每次单独使用一个tag,作者希望能够同时使用多个tags能达到更好的效果;第三,作者希望能够构建一个联合训练机制来学习一个language model,能够适应于特定的任务。


总的来说,Conditional Generative Adversarial Networks的确是一个在原始GAN上非常直接也很有效的改进,能够更加有效的发挥GAN在数据生成上的效果,并且在很多场所都会有非常重要的运用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

对抗神经网络之对抗卷积神经网络[2]

上一篇博文[1]简单介绍了对抗网络的理论和大概流程。其中所谓的对抗网络可以归结为unsupervised learning 或者 generative model。从无监督学习来进行feature r...
  • u013139259
  • u013139259
  • 2016年12月13日 16:53
  • 5670

生成式对抗网络GAN研究进展(三)——条件GAN

【前言】     本文首先介绍生成式模型,然后着重梳理生成式模型(Generative Models)中生成对抗网络(Generative Adversarial Network)的研究与发展。...
  • Solomon1558
  • Solomon1558
  • 2016年09月16日 17:30
  • 14394

Image-to-Image Translation with Conditional Adversarial Networks

图像转换的条件对抗网络不仅学习了从输入图像到输出图像之间的映射,也学习了一个用来训练这个映射的损失函数。使得网络可以很好地应用到传统上需要不同损失结构的问题上。          图像处理,图形学,...
  • KGzhang
  • KGzhang
  • 2017年08月17日 15:39
  • 662

GANs学习系列(6):条件生成式对抗网络Conditional Generative Adversarial Networks

【前言】      本文首先介绍生成式模型,然后着重梳理生成式模型(Generative Models)中生成对抗网络(Generative Adversarial Network)的研究与发展。作者...
  • u011534057
  • u011534057
  • 2016年11月30日 16:33
  • 4423

DCGAN论文笔记+源码解析

DCGAN,Deep Convolutional Generative Adversarial Networks是生成对抗网络(Generative Adversarial Networks)的一种延...
  • wspba
  • wspba
  • 2017年01月25日 22:55
  • 4728

GANs学习系列(5): 生成式对抗网络Generative Adversarial Networks

【前言】      本文首先介绍生成式模型,然后着重梳理生成式模型(Generative Models)中生成对抗网络(Generative Adversarial Network)的研究与发展。作者...
  • u011534057
  • u011534057
  • 2016年10月17日 18:43
  • 8693

GANs学习系列(2):cGANs:Conditional Generative Adversarial Networks

reference: http://blog.csdn.net/u011534057/article/details/53409968 条件生成式对抗网络(Conditional Generative...
  • cookie_234
  • cookie_234
  • 2017年04月23日 15:12
  • 615

GAN Zoo:千奇百怪的生成对抗网络,都在这里了

自从Goodfellow2014年提出这个想法之后,生成对抗网络(GAN)就成了深度学习领域内最火的一个概念,包括LeCun在内的许多学者都认为,GAN的出现将会大大推进AI向无监督学习发展的进程。 ...
  • c2a2o2
  • c2a2o2
  • 2017年06月28日 17:08
  • 713

生成式对抗网络GAN研究进展(三)——条件GAN

【前言】     本文首先介绍生成式模型,然后着重梳理生成式模型(Generative Models)中生成对抗网络(Generative Adversarial Network)的研究与发展。...
  • Solomon1558
  • Solomon1558
  • 2016年09月16日 17:30
  • 14394

深度学习(五十四)图片翻译WGAN实验测试

WGAN相比于GAN的优点在于:具有更高的稳定性。在原始的WGAN中,作者通过一堆的理论,提出了WGAN,理论证明n多页,不过代码实现就两行:(1)去掉了判别网络的判别的概念,在原始的GAN中,判别网...
  • hjimce
  • hjimce
  • 2017年03月04日 21:12
  • 4888
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Conditional Generative Adversarial Nets论文笔记
举报原因:
原因补充:

(最多只允许输入30个字)