读CGAN文章

        提出CGAN是因为非条件的生成模型中,对生成的内容控制,实际上只要保证真实性就可以了;采用CGAN的话,我们会增加一些额外的信息去控制数据生成的过程,例如一些类别的标签,例如数字图片数据集中,可以通过引入标签(one-hot),来控制生成的图片趋向于数字,而不是其他的一些图片。

 

  • CGAN模型

目标函数:

相比较GAN模型的目标函数

多了一个标签信息y,在D 和 G 中都用到了,在各自的输入中增加这一项

 

示意图

 

 

  • 一些实验
    • 单一模型
      • MNIST图片数据集中,条件是one-hot形式的图片标签,即 数字1 用 [0,1,0,0,0,0,0,0,0,0] 来表示
      • 在G中,从均匀分布中抽取100维的噪声数据z,hidden layer 是 1200个单元(z连接到200个单元,y连接到1000个单元,然后拼接起来),并通过relu 来激活,最后通过全连接到784维并对每个单元做sigmoid激活
      • 在D中,通过maxout网络将x 映射到240维,将y映射到50维;采用5组权重W,最终的结果是采用max(f(W1*X),f(W2*X),f(W3*X),f(W4*X),f(W5*X)) 对应的那组,实际上maxout方法,随着深度越深,参数会呈现指数式的增长。
      • 采用SGD,batch设置为100,采用momentum的方法控制学习率。dropout 设置为0.5 
      • 生成的结果如下图所示
    • 多模型
      • 有些图片是有多个标签的,例如一张 图片,标签可以为女性,香蕉等。
      • 用户产生的标识(metadata)跟传统意义上的标签不太一样,因为描述可以是主观的,另外UGM(user-generated metadata) 有大量的同义词,不同的人会用不同的词来描述同一个概念,解决这个问题,采用词向量的方式。
      • 多模型的“多”指的是一个图片有多个标签的意思
      • 对于图片的表示,首先预训练一个CNN,并用最后一个全连接层(4096个单元)来表示图片
      • 对于词语的表示,从YFCC100M的metadata中获取用户标识,标题,以及描述。然后利用skip-gram训练了一个200维的词向量,我们会删除出现次数小于200的词语,最终得到247465大小的词典
      • 我们把卷积和词语得到的向量在GAN训练过程中是固定的。
      • 这里,我们目标是生成图片的标签(tags)
      • 评估阶段,对于每张图片,我们生成100个样例(tag),然后从词库中找到最相近的20个单词,那么总共会得到20*100个,然后选出排名top10的词作为图片的tags
      • 这里,我们可以理解为,把图片作为CGAN中的y

refer:https://arxiv.org/pdf/1411.1784.pdf Conditional Generative Adversarial Nets

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章