码迷,mamicode.com
首页 > Web开发 > 详细

Conditional Generative Adversarial Nets

时间:2017-10-10 00:05:50      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:纯粹   out   nta   xpl   评价   线性   size   应该   ons   

本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加“激烈”的对抗,从而达到更好的结果。 

  众所周知,GANs 是一个 minmax 的过程:

    技术分享

  GAN的原始模型有很多可以改进的缺点,首当其中就是“模型不可控”。从上面对GAN的介绍能够看出,模型以一个随机噪声为输入。显然,我们很难对输出的结构进行控制。例如,使用纯粹的GAN,我们可以训练出一个生成器:输入随机噪声,产生一张写着0-9某一个数字的图片。然而,在现实应用中,我们往往想要生成“指定”的一张图片。

而本文通过引入 条件 y,从而将优化的目标函数变成了:

    技术分享

下图给出了条件产生式对抗网络的结构示意图:

       技术分享

把噪声z和条件y作为输入同时送进生成器,生成跨域向量,再通过非线性函数映射到数据空间。

把数据x和条件y作为输入同时送进判别器,生成跨域向量,并进一步判断x是真实训练数据的概率。

 

实验

1.MNIST数据集实验

在MNIST上以数字类别标签为约束条件,最终根据类别标签信息,生成对应的数字。

  生成模型的输入是100维服从均匀分布的噪声向量,条件y是类别标签的one hot编码。噪声z和标签y分别映射到隐层(200和1000个unit),在被第二次映射前,连接了所有1200个unit。最终用一个sigmoid层输出784维(28*28)的单通道图像。

  判别模型把输入图像x映射到一个有240个unit和5 pieces的maxout layer,把y映射到有50个unit和5pieces的maxout layer。然后把所有隐层连在一起映射到240个unit和4pieces的maxout layer,然后经过sigmoid层。最终的输出是该样本x来自训练集的概率。

 技术分享

 

2.Flickr数据集上的图像自动标注实验(Mir Flickr-25k)

   首先在完整的ImageNet数据集(21,000个label)上训练了一个卷积模型作为特征提取器。对于词语表达(原文中是world representation,个人认为是笔误,应该是word representation),作者使用YFCC100M数据集中的user-tags, titles和descriptions,利用skip-gram训练了一个200维的词向量。训练中忽略了词频小于200的词,最终词典大小是247465。 

  实验是基于MIR Flickr数据集,利用上面的模型提取图像和文本特征。为了便于评价,对于每个图片我们生成了100的标签样本,对于每个生成标签利用余弦相似度找到20个最接近的词,最后是选取了其中10个最常见的词。

  在实验中,效果最好的生成器是接收100维的高斯噪声把它映射到500维的ReLu层,同时把4096维的图像特征向量映射到一个2000维的ReLu隐层,再上面的两种表示连接在一起映射到一个200维的线性层,最终由这个层输出200维的仿标签文本向量。(噪声+图像)

判别器是由500维和1200维的ReLu隐层组成,用于处理文本和图像。maxout层是有1000个单元和3spieces的连接层用于给最终的sigmoid层处理输入数据。(文本+图像)

技术分享

 

注:

1.one hot编码

 

有如下三个特征属性:

 

  • 性别:["male","female"]
  • 地区:["Europe","US","Asia"]
  • 浏览器:["Firefox","Chrome","Safari","Internet Explorer"]
对于某一个样本,如["male","US","Internet Explorer"],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用序列化的方式:[0,1,3]。但是这样的特征处理并不能直接放入机器学习算法中。 

One-Hot Encoding的处理方法 

    对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是思维的,这样,我们可以采用One-Hot编码的方式对上述的样本“["male","US","Internet Explorer"]”编码,“male”则对应着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。
 

 

2.maxout(参数k=5)

技术分享

所以这就是为什么采用maxout的时候,参数个数成k倍增加的原因。本来我们只需要一组参数就够了,采用maxout后,就需要有k组参数。

 

Conditional Generative Adversarial Nets

标签:纯粹   out   nta   xpl   评价   线性   size   应该   ons   

原文地址:http://www.cnblogs.com/J-K-Guo/p/7643439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!