Conditional Generative Adversarial Nets
关于原版的生成对抗网络模型以及公式推导可以参考:【论文精读】对Generative Adversarial Net的一点理解
摘要
生成对抗网络最近介绍了一种新的方法来训练生成模型。本文将介绍生成对抗网络的条件版本,通过简单的输入数据 y y y来构建,作者希望生成器和辨别器都能够被训练。
作者展示了此模型能够生成以类标签为条件的 M N I S T MNIST MNIST数字。
作者还展示此模型如何能够用来学习一个多模态模型,并且提供了一个图像标签应用的初级例子,在这个例子中作者演示了这种方法是如何生成描述性标签的,而这种标签并不是训练标签的一部分。
1. 介绍
作者先介绍了当前训练生成模型的难点,介绍了 G o o d f e l l o w Goodfellow Goodfellow提出的 G A N GAN GAN的优点。
然后作者认为在无条件的对抗网络中,被生成的数据的模式没有控制。通过对模型施加额外的信息条件,就有可能监督数据生成的过程。这种条件可以基于类标签,也可以基于部分用语修复的数据,甚至是来自不同模态的数据。
本文中作者展示了如何构建条件对抗网络,并且演示了两个实验,一个在 M I N I S T MINIST MINIST数据集上基于类标签,一个是在 M I R F l i c k r 25000 MIR Flickr 25000 MIRFlickr25000数据集上进行多模态学习。
2. 相关工作
尽管监督学习(尤其是卷积网络)的成功,但是还存在以下两个问题:
-
扩大模型去容纳极大数量的预测输出种类仍然很有挑战性(因为没有限制条件,解空间无限大)。
-
很多研究将注意力放在学习从输入到输出的一堆一映射上,但是很多有意思的问题都被认为是一对多映射。例如一个图像可能会有很多不同的标签,不同的人也可能用不同的词语去表述同一张图。
解决上述第一个问题的方法是利用额外的信息,比如使用自然语言语料库去学习标签的向量表示,这样几何关系就具有了语义上的意义。即便是预测错了也不会太离谱,还可以对预测期间未见过的标签做出预测概括。
解决第二个问题的一种方法是使用条件概率生成模型,输入被当作条件变量,一对多映射被实例化为传统的预测分布。
3. 条件对抗网络
如果生成器和判别器都以额外的信息 y y y为条件,那么生成对抗网络就被拓展为一个条件模型。
y y y可以是任何种类的辅助信息,例如类标签或者其他情形下的数据。我们可以像将 y y y作为额外的输入层传递给辨别器和生成器来执行这种条件。
在生成器中,先验的输入噪声和 y y y以一种连接的隐藏表示形式组合起来,对抗训练框架对与如何构成这种隐藏表示具有相当大的灵活性。
在辨别器中, x x x和 y y y作为输入输入给辨别函数(又一次以 M L P MLP MLP实现)。
这种极大极小对抗的目标函数如下:
m i n G m a x D V ( G , D ) = E x ~ p d a t a log ( D ( x | y ) + E z ~ p z ( z ) log ( 1 − D ( G ( z ∣ y ) ) min_Gmax_D\space V(G,D)=E_{x~p_{data}} \log(D(x|y)\space +E_{z~p_z(z)}\log{(1-D(G(z|y))} minGmaxD V(G,D)=Ex~pdatalog(D(x|y) +Ez~pz(z)log(1−D(G(z∣y))
条件对抗网络的结构如下图: