DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记

1. 介绍

近年来,GAN在图像和视频的生成上应用广泛,最具代表性的就是Multi-stage model的方法。

但它存在两个问题:

1. 生成结果很大程度上依赖于initial image的质量,如果initial image的生成结果很差,那么refinement的步骤也不能帮助修改从而生成好的结果。

2. 每个单词在描述图片内容上都有不同等级的信息,而现在的方法使用相同的word表示方法,不利于refinement。

本文介绍了Dynamic Memory Generative Adversarial Network(DM-GAN)来解决上述问题。对于第一个问题,我们采用了一个memory机制,即在GAN里添加一个key-value memory结构。将initial image的粗略特征送入memory module来查询特征,查询结果被用来对initial image进行修正。对于第二个问题,我们映入了一个memory writing gate,用来动态选择与生成图片相关的单词,这使得我们的生成图片与文本描述有很好的相关性。因此,这个memory writing gate被用在了每个image refinement过程中,此外,response gate用来自适应地接受image和memory的信息,而不是直接将二者concat在一起。

本实验在Caltech-UCSD Birds 200(CUB)数据集和COCO数据集上评估。使用Inception Score, Frechet Inception Distance (FID)和R-precision.来评估生成图片的质量。

2.相关工作

2.1 Generative Adversarial Networks

省略。

2.2 Memory Networks

它使用显式的存储和attention观念,可以更有效地推理记忆中的答案。它首先,将信息写入外部存储,然后根据关联概率从记忆插槽(memory slot)中读取信息。

Weston等引入了memory network,并且通过逐一搜索支持的记忆来产生输出。

End-to-end memory network是对memory network的进一步拓展,它根据memory和query的乘积加权了每个记忆插槽。

Key-Value Memory Network(KV-MemNN)对key memory和value memory使用不同的编码方式进行推理来理解未结构化的文档。key memory是相应的value memory在预测最终结果的权重。

DM-GAN就是采用了这种方法。

3. DM-GAN

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
如图所示,DM-GAN由两个部分组成:initial image generation 和 dynamic memory based image refinement.

在initial image generation步骤,输入的文本描述通过text encoder被转化为sentence feature ——s和word feature——W。然后,通过传统的方式预测initial image——x0,即根据sentence feature和随机噪声——z,R0=G0(z, s),R0是图片特征,噪声是从正态分布中采样的。

在dynamic memory based image refinement步骤,更多细粒度视觉内容被加到initial image来生成图片xi,其中xi=Gi(Ri-1, W),Ri-1是上一层的图片特征。该层可以重复多次来获得更好和更高分辨率的结果。

dynamic memory based image refinement共分为四步:Memory Writing, Key Addressing, Value Reading, Response:

Memory Writing用来将文本信息存到key-value结构的memory,以便以后的检索。

Key Addressing和Value Reading从memory module读取特征来改善低质量图片的可视特征。

Response控制图片特征和memory读取结果的融合。

在memory writing步骤,我们引入了一个memory writing gate来根据图片内容高亮重要单词信息。

3.1 Dynamic Memory

给定输入单词表达W,图片x,和图片特征Ri。

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
T是单词数量,Nw是单词维度,N是图片像素数量,图片像素特征是一个Nr维的向量。

我们希望学习一个模型,它能够使用一个更有效的方法(key和value memory的转化)来融合文本和图片信息,从而改善生成的图片。

Memory Writing步骤:
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
M()表示1x1卷积 ,将单词映射到Nm维。

Key Addressing步骤:使用key memory取得相关的记忆。我们计算每个记忆插槽的权重,作为记忆插槽mi和图片特征rj的相似度αi,j。它表示第i个memory和第j个图片特征的相似概率。Φk是一个1x1卷积,将mi映射到Nr维。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
Value Reading:对value memory进行加权和,得到记忆表达oj
  DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
Φv也是一个1x1卷积,将mi映射到Nr维。

Response: concatoi和ri得到rinew。然后上采样加残差块来将图片放大到一个高分辨率的图片特征。上采样block包含一个最近邻上采样和3x3卷积。最后对得到的图片特征进行3x3卷积得到修改后的图片x。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记

3.2 Gated Memory Writing

对memory writing步骤进行改进,不再采用公式3,使用memory writing gate来选择改善initial image最相关的单词。memory writing gate——giw合并了上一层得到的图片特征Ri和单词特征W来计算一个单词的重要性。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
σ是sigmoid函数。A是一个1xNw矩阵,B是一个1xNr矩阵。

计算memory slot——mi。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
Mw()和Mr()是1x1卷积,将图片特征和单词特征映射到Nm维。

3.3 Gated Response

使用自适应的门机制来动态控制信息流和更新图片特征。gir是信息融合的response gate,W是参数矩阵,b是偏差。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记

3.4 目标函数

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
λ1和λ2分别是条件增强loss和DAMSM loss的权重。G0代表最初生成步骤的生成器,Gi代表第i个图片refinement层的生成器。

generator的对抗损失LGi定义如下:其中第一项代表非条件损失,使得生成图片尽量的真实,第二项是条件损失,使生成图片与输入文本相对应。
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
同样,定义discriminator的对抗损失如下:
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
条件增强损失(Conditioning Augmentation Loss):用来数据增强并且通过从独立的高斯分布中采样防止过拟合。CA loss被定义为标准高斯分布和训练数据的高斯分布之间的Kullback-Leibler divergence,如下:
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
其中,μ(s)和Σ(s)分别是句子特征的均值矩阵和对角协方差矩阵,通过全连接层计算得到。

DAMSM loss:详见AttnGAN。

3.5 实现细节

采用AttnGAN中提出的方法将文本嵌入向量表示为一个预训练的双向LSTM。

最初的图片生成步骤生成64x64的图片大小,然后依次增加到128x128,256x256。由于GPU内存限制,只重复两次refinement步骤。

对于所有discriminator,在每一个卷积后使用spectral normalization来避免梯度异常。

文本维度Nw=256,图片维度Nr=64,记忆维度Nm=128。

对于CUB数据集,λ1=1, λ2=5.

对于COCO数据集,λ1=1, λ2=50.

使用Adam optimizer,batch size=10,β1=0.5, β2=0.999.学习率为0.0002.

DM-GAN在CUB上跑了600个epoch,COCO上120个epoch。

4. 实验

使用Pytorch实现。

数据集:

CUB:200种鸟类,共11788张图片。其中150个类(8855张图片)被用于训练。每张图片有十个对应文本。

COCO:训练集80k图片,测试集40k图片。每张图片有5条对应文本。

评估指标:

使用Inception Score, Frechet Inception Distance (FID)和R-precision.每个模型从测试集中生成30000张图片。

IS使用一个预训练的Inception v3网络来计算条件类分布和边际类分布的KL-divergence。IS越大,说明生成种类多且图片明确属于某类。

FID根据从预训练的Inception v3网络中提取的特征来计算合成图片和真实图片的Frechet距离,FID越低,代表生成图片的分布和真实图片的分布越接近。

R-precision:预测图片是否匹配文本。R-precision通过给定一个图片从而取得相关的文本,计算全局图片向量和100个候选句子特征的余弦距离,候选具体特征包含R个事实和100-R个随机选择的不匹配文本,对于每一张图片,如果r个结果在前R个取得的相关文本里,那么R-precision是r/R。实践中,我们定义R=1.将生成图片分为10组来检索,然后取均值和标准偏差。

4.1 文本生成图片质量

Inception Score:
  DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
FID和R-precision:
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
不同结构的表现:
DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
4.2 Visual Quality

相比于AttnGAn,DM-GAN高亮了图片的主要部分。对于更加复杂的文本描述(包含多个物体),它可以更准确地捕捉最重要的物体,并且根据逻辑将剩余描述内容绘制好。比如,DM-GAN是唯一一个成功地可以辨别浴室和必要部件的模型。

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记
下图说明,即使初始化的图片质量不好,DM-GAN也能很好地生成。

DM-GAN Dynamic Memory Generative Adversarial Networks for Text-to-Image Synthesis论文阅读笔记

本人小结:暂时没搞明白Memory和Attention的区别。

目前有个不知道是不是官方的代码:https://github.com/qwfy/DM-GAN

这是最基本的text-to-image任务,大多参数都有,复现的话可以考虑。

上一篇:【20210821 corCTF YauzaCTF】Crypto&OSINT方向部分WP


下一篇:宏判断是否为Excel打开,若不是则关闭表格