abstract
- 本文在之前GAN论文中的future work中其中已经提到了,主要是给定条件y,结合随机分布,可以生成符合条件y的样本。
- 论文中基于CGAN,基于mnist,提出了一个可以基于给定label生成特定数字的模型;同时CGAN可以用于
multi-model model
的学习,论文中给出了一个示例,模型可以给出训练标签中没有出现过的标签。
introduction
- 在之前的unconditional GAN中,生成的数据是不可控的,对于mnist来说,生成的只能保证是0~9的数字,没法确定是什么数字,给定条件的话,则可以基于给定的class label,生成特定的数字图像,此外也有可能控制数字的风格等。
- 之前的监督学习中,主要有2个挑战
- 输出的类别数量太多,模型难以改进。
- 之前的模型大多是生成一个
1V1 mapping
,即one input,one output,但是许多情况都是one-to-many mapping
的情况。比如说image tag的问题,一张图像可能不止一个tag,传统的模型无法解决这样的问题。
- 为了解决上面2个问题,可以
- 针对第一个问题,可以借助其他的辅助信息,比如说获取语料库中labels之间的关系等,之前也有过验证,简单的从image feature-space到word-representation-space的显性映射都可以大大提升分类性能。
- 针对第二个问题,可以使用条件概率生成模型,将输入图像视为
conditional variable
,使用条件预测分布去获取one-to-many mapping
。
Conditional Adversarial Nets
Generative Adversarial Nets
- GAN在上一篇博客中已经有所介绍,这里就不详细说了。
Conditional Adversarial Nets
- CGAN流程图如下:
与之前GAN的目标函数稍有不同,CGAN的目标函数如下,主要就是引入了条件y。
$$\mathop {\min }\limits_G {\kern 3pt} \mathop {\max }\limits_D {\kern 3pt} V(D,G) = E_{x \sim p_{data}(x) }[logD(x|y)] + {E_{z \sim {p_x}(z)}\;}[log(1 - D(G(z|y)))]$$
Experimental Results
Unimodal
- 将class label作为条件,结合单峰函数作为输入,在mnist中,class label是one-hot向量,单峰函数是1X100正态分布向量。关于hidden layer等具体信息可以看论文,最后得到的结果如下
Multimodal
- 做了image tags的生成实验,生成的多峰的分布(一张image的tag一般不止一个)
Future Work
- 本文中的CGAN还是比较初级的,之后会尝试一些更加复杂的模型。
- CGAN在语言模型的学习中也可以发挥其作用。