Conditional GAN 论文阅读笔记

  • Abstract
  • 1 Introduction
  • 2 Related Work
  • 3 Conditional Adversarial Nets
    • 3.1 Generative Adversarial Nets
    • 3.2 Conditional Adversarial Nets
  • 4 Experimental Results
    • 4.1 Unimodal
    • 4.2 Multimodal
  • 5 Future Work
  • 6.思考

文章地址:https://arxiv.org/abs/1411.1784
Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680.

Abstract

生成对抗网[8]是最近被提出的一种训练生成模型的新方法。本文介绍了条件版本的GAN,仅通过多增加一个条件输入数据y。我们希望这个条件能同时约束生成器和判别器。我们展示了本文模型能够产生以类标签为条件的MNIST数字。这个模型还可以用来学习多模态模型,和标注图像–可以为没有训练标签的数据提供描述性的tags.

1 Introduction

最近,生成对抗网被提出,其作为生成模型的一种框架,可以避免许多难以处理的概率计算的困难。

对抗网络的优点是不需要马尔可夫链,只需要反向传播获得梯度,学习过程中不需要推理,并且可以很容易地将各种因素和相互作用纳入模型中。

此外,如[8]所示,它可以产生最先进的对数似然估计和逼真的样本。

在一个无条件的GAN模型中,数据生成的模式不受控制。但是,可以通过附加信息调整指导数据生成过程。条件可以是类标签,像[5]中的绘画数据的某些部分,甚至基于不同模态的数据。

本文我们展示了如何构建条件对抗网。在文中我们展示了两组实验结果。一个是基于类标签的MNIST数字数据集,另一个是MIR Flickr 25000数据集,用于多模式学习。

2 Related Work

最近监督神经网络(尤其是卷积网络)取得了许多成功[13,17],但要调整这些模型以适应大量的输出类别仍然是一个挑战。第二个问题是,迄今为止的大部分工作都集中在学习从输入到输出的一对一映射。然而,许多有趣的问题是一对多的概率映射。例如,在图像标记问题中,可以许多不同的标记赋予给定的同张图像,并且不同的注释者可以使用不同的(但通常是同义或相关的)术语来描述同一图像。

解决第一个问题的一种方法是利用其他模式的信息:例如,使用自然语言语料库中标签的向量表示,其中几何关系在语义上是有意义的。当在这样的空间中进行预测时,我们受益于:当预测错误时,我们仍然“接近”事实(例如预测“桌子”而不是“椅子”)。而且我们可以自然地对训练期间没见过的标签进行预测。文献[3]等研究表明,即使是从图像特征空间到词表示空间的简单线性映射也可以提高分类性能。

解决第二个问题的一种方法是使用条件概率生成模型,输入被视为条件变量,一对多映射被实例化为条件预测分布。

[16] 采用类似的方法来解决这个问题,并在MIR flickr25000数据集上训练一个多模态的深度Boltzmann机器。

此外,在[12]中,作者展示了如何训练一个有监督的多模态神经语言模型,并且他们能够为图像生成的描述性句子。

(这些相关工作的相关性不高吧)

3 Conditional Adversarial Nets

3.1 Generative Adversarial Nets

生成对抗网是一种新的生成式模型。它们由两个“对抗性”模型组成:一个是捕获数据分布的生成器G,另一个是判断样本来自训练数据还是生成数据的判别器D。G和D都可以是一个非线性映射函数,比如多层感知器。

为了学习数据x上的生成分布pgp_gpg​,生成器构建了一个从先验噪声分布pz(z)p_z(z)pz​(z)到数据空间G(z;θg)G(z;θ_g)G(z;θg​)的映射函数。鉴别器D(x;θd)D(x;θ_d)D(x;θd​)输出单个标量,表示x来自真实s数据的概率。

G和D同时训练:调整G的参数使log(1−D(G(z))log(1- D(G(z))log(1−D(G(z))最小化,调整D的参数使logD(X))最大化,以上过程遵循两人的最小−最大博弈,其值函数为logD(X))最大化,以上过程遵循两人的最小-最大博弈,其值函数为logD(X))最大化,以上过程遵循两人的最小−最大博弈,其值函数为V(G,D)$:

min⁡Gmax⁡DV(D,G)=Ex∼pdata(x)[log⁡D(x)]+Ez∼pz(z)[log(1−D(G(z)))]\min_G \max_D V(D,G) = \mathbb{E}_{x\sim p_{data}(x)}[\log D(x)]+ \mathbb{E}_{z\sim p_z(z)}[log(1-D(G(z)))]Gmin​Dmax​V(D,G)=Ex∼pdata​(x)​[logD(x)]+Ez∼pz​(z)​[log(1−D(G(z)))]

3.2 Conditional Adversarial Nets

如果生成器和鉴别器都以一些附加信息为条件y,生成对抗网可以扩展为一个条件模型。y可以是任何类型的辅助信息,例如类标签或来自其他模式的数据。我们可以通过向D和G输入y作为附加输入层来实现条件控制。

在G中,先验输入噪声pz(z)和y被组合在联合隐藏表示中,并且对抗性训练框架对hidden representation的构成方式具有很大的灵活性。(目前,我们只是将条件输入和先验噪声作为MLP的一个隐藏层的输入,但是可以想象使用更高阶的交互来允许复杂的生成机制,这在传统的生成框架中是非常困难的。)

在鉴别器中,x和y被表示为判别函数的输入(在这种情况下由MLP实现)。

此时两人极小极大博弈的目标函数如下所示:
min⁡Gmax⁡DV(D,G)=Ex∼pdata(x)[logD(x∣y)]+Ez∼pz(z)[log⁡(1−D(G(z∣y)))]\min_G \max_D V(D,G)= \mathbb{E}_{x\sim p_{data}(x)}[logD(x|y)]+\mathbb{E}_{z\sim p_z(z)}[\log (1-D(G(z|y)))]Gmin​Dmax​V(D,G)=Ex∼pdata​(x)​[logD(x∣y)]+Ez∼pz​(z)​[log(1−D(G(z∣y)))]

(细节没有说)
图1展示了一个简单条件对抗网的结构。

4 Experimental Results

4.1 Unimodal

我们在MNIST图像上训练了一个条件对抗网络,条件输入是类标签。类标签采用one-hot 编码。

对于生成器G,噪声先验z是从单位超立方体内的均匀分布提取维数为100向量。ReLu作为隐藏层的激活函数[4,11],层大小分别为200和1000,然后将它们映射到维度为1200的第二个组合隐藏ReLu层。然后我们有一个最终的sigmoid单元层作为我们的输出,用于生成784维MNIST样本(28*28)。

判别器D将x映射到具有240个单元和5个pieces的maxout[6]层,而将y映射到具有50个单元和5个pieces的maxout层。这两个隐藏层映射到一个有240个单元和4个pieces的联合maxout层,然后被送入sigmoid层。(只要判别器有足够的能力,判别器的精确结构并不重要;我们发现maxout单元通常非常适合这项任务。)
网络训练超参数设置

(maxout 通俗理解–本来传统的MLP算法在第i层到第i+1层,参数只有一组,然而现在不这么干了,在这一层同时训练n组参数,然后选择激活值最大的作为下一层神经元的激活值。)

模型采用随机梯度下降法训练,mini-batch size为100,初始学习率为0.1,指数下降到0.000001,衰减因子为1.00004。同时使用动量系数,初始值为0.5,增加到0.7。概率为0.5的Dropout[9]同时应用于生成器和鉴别器。以验证集上对数似然的最佳估计作为停止点。(什么的停止点?超参数的停止点?)

表1显示了MNIST数据集测试数据的高斯Parzen窗口对数似然估计。从每10个类中抽取1000个样本,并将高斯Parzen窗口(概率密度估计的一种)拟合到这些样本上。然后,我们使用Parzen窗口分布估计测试集的对数似然(关于如何构造这个估计的更多细节,请参见[8])

我们所提出的条件对抗网络结果与一些模型的效果是相当,也优于一些方法(包括非条件对抗网络)。我们提出这些结果更多的是概念的证明,而不是作为有效性的证明,并认为随着超参数空间和体系结构的进一步探索,条件模型应该匹配或将超过非条件模型的性能。

4.2 Multimodal

(生成词向量的工作)

像Flickr这样的照片网站?是一个丰富的标记数据源,这些数据以图像和它们相关联的用户生成元数据(UGM)的形式存在,尤其是用户标记。

用户生成的元数据不同于更“规范”的图像标记模式,因为它们通常更具描述性,并且在语义上更接近人类用自然语言描述图像的方式,而不仅仅是识别图像中的对象。UGM的另一个方面是synoymy很流行,不同的用户可能使用不同的词汇来描述相同的概念,因此,有一种有效的方法来规范这些标签变得非常重要。概念词嵌入[14]在这里是非常有用的,因为相关概念最终由相似的向量表示。

在本节中,我们将演示图像的自动标记,使用基于图像特征的条件对抗网络来生成的标记向量分布来实现。

对于图像特征,我们在带有21000个标签的完整ImageNet数据集上预先训练了一个类似于[13]的卷积模型[15]。我们使用最后一个有4096个单元的全连接层的输出作为图像表示。

对于单词表示,我们首先从YFCC100M 数据集元数据中收集用户标记、标题和描述的文本语料库。在对文本进行预处理和清理之后,我们训练了一个单词向量大小为200的skip gram模型[14]。我们省略了词汇表中出现次数少于200次的单词,最终得到了一本247465的词典。

在GAN训练过程中,我们保持卷积模型和语言模型参数不变。梯度在这两个模型中的传递将作为下一步的工作。

在实验中,我们使用MIR-flickr25000数据集[10],并使用上面描述的卷积模型和语言模型提取图像和标签特征。我们的实验中省略了没有任何标记的图像,并将注释视为额外的标记。前15万个样本被用作训练集。在训练集中带有多标签的图像会按相应的tag 重复多次。

为了评估,我们为每个图像生成100个样本,并使用词汇表中单词与每个样本向量表示的余弦相似度来找出最接近的20个单词。然后我们从100个样本中选出最常见的10个单词。表4.2显示了用户分配的标记和注释以及生成的标记的一些示例。

最佳的生成器结构为:接收大小为100的高斯噪声作为噪声先验,并将其映射到500维ReLu层。将4096维图像特征向量映射到2000维ReLu隐层。这两个层被映射到一个200维线性层的联合表示,该层将输出生成的词向量。

最佳鉴别器结构为:500维和1200维ReLu隐层组成,分别用于词向量和图像特征,maxout层由1000个单元和3个块组成连接层,最后送入单个sigmoid单元。

模型采用随机梯度下降法训练,mini-batch size 为100,初始学习率为0.1,指数下降到.000001,衰减因子为1.00004。使用动量梯度下降算法,动量系数的初始值为0.5,增加到0.7。发生器和鉴别器均采用了概率为0.5的drop out 结构。

超参数和体系结构的选择是通过交叉验证以及随机网格搜索和手动选择的混合(尽管搜索空间有限)

5 Future Work

本文的结果是非常初步的,但它们展示了条件对抗网的潜力,并显示了有趣和有用的应用前景。

在未来探索中,我们希望探索更复杂的模型,并对其性能和特点进行更详细和透彻的分析。

在目前的实验中,我们只单独使用每个标签。但是,我们希望通过同时使用多个标签(有效地将生成问题作为“集合生成”的一个)来实现更好的结果。

另外一个可以深入研究的方向是构建一个联合训练方案,用来学习语言模型(语言模型随着网络进行训练)。类似[12]这样的工作表明,我们可以学习适合特定任务的语言模型。

6.思考

1.本文只是简单的在GAN的输入处嵌入了一个条件,并没有说明由此带来的训练上的差别。光从目标函数上来看应该是训练形式不做改变。

2.与早期调研的李宏毅的条件GAN目标函数有所不同。李宏毅的课件中所用的框架为另一篇文章的工作:Generative Adversarial Text to Image Synthesis [ICML 2016,http://arxiv.org/abs/1605.05396] ,此文是目前公认的条件GAN框架的出处。

PaperNotes(5)-Conditional Generative Adversarial Nets相关推荐

  1. 【GANs】Conditional Generative Adversarial Nets

    [GANs]Conditional Generative Adversarial Nets 2 CGAN 2.1 CGAN简介 前言 流程图 目标函数 2.2 CGAN代码 2 CGAN 2.1 CG ...

  2. CGAN论文解读:Conditional Generative Adversarial Nets

    论文链接:Conditional Generative Adversarial Nets 代码解读:Keras-CGAN_MNIST 代码解读 目录 一.前言 二.相关工作 三.网络结构 CGAN N ...

  3. 学习记录:Improving Image Captioning with Conditional Generative Adversarial Nets

    学习记录:Improving Image Captioning with Conditional Generative Adversarial Nets 提示:这里可以添加系列文章的所有文章的目录,目 ...

  4. cGAN:Conditional Generative Adversarial Nets

    论文阅读之cGAN:Conditional Generative Adversarial Nets #Abstract 本文提出了条件-生成对抗网络(Conditional-GAN),Generato ...

  5. Conditional Generative Adversarial Nets

    Conditional Generative Adversarial Nets 利用五一假期的小尾巴终于看完了CGAN的论文,特意记录一下,方便以后查找. 文章目录 Conditional Gener ...

  6. GAN(Generative Adversarial Nets)研究进展

    想与大家分享的是图像生成中一些工作. 这些工作都基于一大类模型,Generative Adversarial Networks(GAN).从模型名称上甚至都可以看出一些发展轨迹:GAN->CGA ...

  7. Conditional Structure Generation throughGraph Variational Generative Adversarial Nets 论文阅读

    目标 基于语义条件生成图 (1)基于条件生成尽可能相似的图. (2)有条件的生成新的图. 解决的问题 (1)基于语义有条件的生成图 (2)如何处理图在生成过程中的顺序的问题 解决问题的方法 (1)提出 ...

  8. Generative Adversarial Nets[BEGAN]

    本文来自<BEGAN: Boundary Equilibrium Generative Adversarial Networks>,时间线为2017年3月.是google的工作. 作者提出 ...

  9. GAIN: Missing Data Imputation using Generative Adversarial Nets学习笔记

    GAIN: Missing Data Imputation using Generative Adversarial Nets(基于对抗生成网络实现缺失数据插补) 缺失数据插补算法问题背景 缺失数据 ...

最新文章

  1. 天文学家搞医术,Science也挡不住
  2. 二、Windows基础数据类型
  3. 使用宝塔面板部署node.js后台:koa2+mysql+vue
  4. vs2012安装教程图文版
  5. abb机器人编程指令goto指令_abb机器人编程指令——轨迹偏移使用的指令以及moveL指令...
  6. Julia学习04——函数
  7. 记录一次idea启动失败问题Improperly specified VM option. To fix the problem, edit your JVM options and remove t
  8. html中哪些字体不识别中文字体,div字体_正确设置div兼容的汉字中文字体
  9. 写着代码的插画师—王凌 |WLOP|
  10. 充分了解Web语义化
  11. java怎么快速补缺_Java基础查漏补缺(1)
  12. 三点水加一个必须的必
  13. 国外生活必备的英文词汇
  14. FL Studio20.9中文补丁
  15. 怀揣美好前行 善良的人终究都会幸福
  16. Android 今日头条适配详解
  17. 宏用于所有的excel文件
  18. robocode 相关的总结
  19. 简述计算机三大变换的联系和区别 (傅里叶变换 拉普拉斯变换 z变换)
  20. 有毒气体运输如何监管?资产监测设备可以完成实现透明化监测

热门文章

  1. WinCE的I2C驱动程序设计
  2. Windows Embedded CE 6.0开发初体验(五)构建CE平台
  3. 系统会自带java吗_使用eclipse自带制作帮助系统
  4. java判断tcp是否阻塞_connect()调用在TCP堆栈中是非阻塞的(java)是什么意思
  5. python的map怎么用_python中的map怎么使用
  6. beautifulsoup网页爬虫解析_Python爬虫神器:PyQuery,解析网页更简单,小白也能学会
  7. 单选按钮_PerlTk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton(附完整代码)...
  8. 【转】Azure DevOps —— Azure Board 之 长篇故事、特性、用户情景(故事)的用法应用场景
  9. c++ pdflib输出表格_DescrTab2包,输出SCI级别的描述统计表
  10. 【BZOJ - 4754】独特的树叶(树哈希)