Generative Adversarial Text to Image Synthesis 论文解读

链接: [link]https://arxiv.org/pdf/1605.05396.pdf
Scott Reed, Zeynep Akata, Xinchen Yan, Lajanugen Logeswaran
Bernt Schiele, Honglak Lee

这是一篇刊在 ICML 2016上的一篇文章,我觉得还是很好的,我把自己对它的理解写在这里,有不对的地方希望大家能够及时纠正,本人万分感谢

从文本生成对应的图像,将文本中的描述性语言很好的生成图片中对应的像素点,一直都在研究中。根据深度卷积和递归神经网络能够自动的从单词和字符中学习具有高辨别度和泛化性的图片。

而为了解决这样一个目标:希望学习到一个直接从单词和字符到图像像素的映射函数。

我们需要将其变为两个容易解决的小问题:1.将描述性文本表示成一个特征向量;2.用这个向量来生成以假乱真的图像;

幸运的是:深度卷积网络能够解决这两个问题----自然语言表示和图片生成

论文中提出了以下几个难点以及解决办法:

  • .根据文本描述性语言生成对应的图片,这个图片分布具有多模态性。文中运用了风格迁移来解决这个问题;
  • 用什么网络结构来生成图片。文中用了条件深度卷积GAN(DCGAN),在这里用文本描述的特征向量代替类标签作为条件输入;
  • 鉴于有限的text-image(pairs),怎样更好的提高生成的图片的质量。文中提出了GAN-CLS 和 GAN-INT 。

论文中还介绍了一些相关工作

Generative adversarial networks

Generative Adversarial Text to Image Synthesis 论文解读

Deep symmetric structured joint embedding

通过文本描述性语言获得可以用来可视化且有辨别度的特征向量
Generative Adversarial Text to Image Synthesis 论文解读
Generative Adversarial Text to Image Synthesis 论文解读

整个网络结构

Generative Adversarial Text to Image Synthesis 论文解读
生成网络用G来表示:RZ x RT -> RD,判别网络用D来表示:RD x RT -> {0,1}。其中T是文本嵌入向量的维度,D是图片的维度,Z是噪音的维度。
工作过程是:
生成器:将文本通过编码器变为嵌入向量 ψ(t) 先后经过全连接层压缩为128维向量,再经过leaky-ReLU**函数,最后与噪音z(z ~N(0,1))在depth方向上concatenated,经由反卷积网络生成合成的图片x
判别器:将生成的图片x 和文本嵌入向量 ψ(t) 作为输入,对x进行下采样为4 x 4 x channel,而将ψ(t)通过压缩为N维(文中没给)再经过空间复制为4 x 4 x N(ψ(t)也是经过全连接层后在通过**函数),再将其concatenated,接着用filter大小为1 x 1但数量未知的卷积核融合提取特征,最后再用4 x 4 的卷积核计算最后的得分。注意到批度归一化用在所有的卷积层中。

Matching-aware discriminator(GAN-CLS)

就是在原本只有两种输入:real-images with matching text 和 synthetic images with arbitrary text 情况下再加入第三种输入:real images with mismatched text,且判别器必须能够判别为假并给出得分。这种做法有利于提高判别器的判别能力即能够评估由G生成的图片能否满足条件(嵌入向量)的约束。具体的算法流程如下:
Generative Adversarial Text to Image Synthesis 论文解读

Learning with manifold interpolation(GAN-INT)

为了提高生成图片的质量,我们可以对描述文本进行流型插值。因为深度网络展示出在嵌入向量对之间学习其对应的表示时,嵌入向量趋向于靠近数据域。通俗的讲就是运用流型插值后的文本送入生成器G生成的图片的风格样式会比较接近真实图片,此时再用real-image with matching text 训练网络时,生成的图片将更加与描述性文本匹配,相当于增加了训练样本的数量。例如有两个文本:天上有只黑色的鸟在飞 和 地上有只黑色的乌龟在爬。经过流型插值后,可能会生成一个这样的新文本:天上有只黑色的乌龟在爬行。尽管不真实的描述,但对于训练生成器G来说,有一部分是对的,那么生成的图片就会有点真实,至少风格样式不会相差太远,相当于增加了样本数量。这样的话生成器的目标函数变为:
Generative Adversarial Text to Image Synthesis 论文解读
t1 和 t2 分别表示不同的文本嵌入向量,此时β取固定值0.5。

文中也比较了GAN 、GAN-CLS、GAN-INT、GAN-INT-CLS不同算法的结果,最终认为GAN-INT-CLS融合了两种算法的实验结果最好。

Generative Adversarial Text to Image Synthesis 论文解读

风格转换

如果文本嵌入向量 ψ(t) 能够很好的捕获图片的内容(例如花的颜色和形状),此时为了更好的生成图片,name噪音 z 应该能够捕获图片的风格样式(例如背景颜色或者目标姿势)。换句话说我们能不能让 z 在所需要的风格样式的图片分布中?怎样才能让 z 处于这样的分布中呢?论文中提出使用一个风格编码(style encoder)器:
Generative Adversarial Text to Image Synthesis 论文解读
S 是风格编码器网络,使用一个已经训练过的生成器G 和风格编码器,就可以生成一个在文本描述条件下的图片,且具有特定的风格:
Generative Adversarial Text to Image Synthesis 论文解读

实验结果展示

Generative Adversarial Text to Image Synthesis 论文解读

Generative Adversarial Text to Image Synthesis 论文解读

用GAN-INT-CLS算法的实验结果
Generative Adversarial Text to Image Synthesis 论文解读

更多的算法原理和实验细节及结果可看原文。