本文是 GANs 的拓展,在产生 和 判别时,考虑到额外的条件 y,以进行更加“激烈”的对抗,从而达到更好的结果。 算法
众所周知,GANs 是一个 minmax 的过程:跨域
GAN的原始模型有不少能够改进的缺点,首当其中就是“模型不可控”。从上面对GAN的介绍可以看出,模型以一个随机噪声为输入。显然,咱们很难对输出的结构进行控制。例如,使用纯粹的GAN,咱们能够训练出一个生成器:输入随机噪声,产生一张写着0-9某一个数字的图片。然而,在现实应用中,咱们每每想要生成“指定”的一张图片。浏览器
而本文经过引入 条件 y,从而将优化的目标函数变成了:网络
下图给出了条件产生式对抗网络的结构示意图:机器学习
把噪声z和条件y做为输入同时送进生成器,生成跨域向量,再经过非线性函数映射到数据空间。函数
把数据x和条件y做为输入同时送进判别器,生成跨域向量,并进一步判断x是真实训练数据的几率。学习
实验优化
1.MNIST数据集实验编码
在MNIST上以数字类别标签为约束条件,最终根据类别标签信息,生成对应的数字。spa
生成模型的输入是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编码
2.maxout(参数k=5)
因此这就是为何采用maxout的时候,参数个数成k倍增长的缘由。原本咱们只须要一组参数就够了,采用maxout后,就须要有k组参数。