ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-03-21 13:58:06  阅读:240  来源: 互联网

标签:DM Text Image 生成 GAN memory 文本 image 图片


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由两个部分组成: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。

在这里插入图片描述
T是单词数量,Nw是单词维度,N是图片像素数量,图片像素特征是一个Nr维的向量。

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

Memory Writing步骤:
在这里插入图片描述
M()表示1x1卷积 ,将单词映射到Nm维。

Key Addressing步骤:使用key memory取得相关的记忆。我们计算每个记忆插槽的权重,作为记忆插槽mi和图片特征rj的相似度αi,j。它表示第i个memory和第j个图片特征的相似概率。Φk是一个1x1卷积,将mi映射到Nr维。
在这里插入图片描述
Value Reading:对value memory进行加权和,得到记忆表达oj
  在这里插入图片描述
Φv也是一个1x1卷积,将mi映射到Nr维。

Response: concatoi和ri得到rinew。然后上采样加残差块来将图片放大到一个高分辨率的图片特征。上采样block包含一个最近邻上采样和3x3卷积。最后对得到的图片特征进行3x3卷积得到修改后的图片x。
在这里插入图片描述

3.2 Gated Memory Writing

对memory writing步骤进行改进,不再采用公式3,使用memory writing gate来选择改善initial image最相关的单词。memory writing gate——giw合并了上一层得到的图片特征Ri和单词特征W来计算一个单词的重要性。
在这里插入图片描述
σ是sigmoid函数。A是一个1xNw矩阵,B是一个1xNr矩阵。

计算memory slot——mi。
在这里插入图片描述
Mw()和Mr()是1x1卷积,将图片特征和单词特征映射到Nm维。

3.3 Gated Response

使用自适应的门机制来动态控制信息流和更新图片特征。gir是信息融合的response gate,W是参数矩阵,b是偏差。
在这里插入图片描述

3.4 目标函数

在这里插入图片描述
λ1和λ2分别是条件增强loss和DAMSM loss的权重。G0代表最初生成步骤的生成器,Gi代表第i个图片refinement层的生成器。

generator的对抗损失LGi定义如下:其中第一项代表非条件损失,使得生成图片尽量的真实,第二项是条件损失,使生成图片与输入文本相对应。
在这里插入图片描述
同样,定义discriminator的对抗损失如下:
在这里插入图片描述
条件增强损失(Conditioning Augmentation Loss):用来数据增强并且通过从独立的高斯分布中采样防止过拟合。CA loss被定义为标准高斯分布和训练数据的高斯分布之间的Kullback-Leibler divergence,如下:
在这里插入图片描述
其中,μ(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:
  在这里插入图片描述
FID和R-precision:
在这里插入图片描述
不同结构的表现:
在这里插入图片描述
4.2 Visual Quality

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

在这里插入图片描述
下图说明,即使初始化的图片质量不好,DM-GAN也能很好地生成。

在这里插入图片描述

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

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

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

标签:DM,Text,Image,生成,GAN,memory,文本,image,图片
来源: https://blog.csdn.net/qq_26136211/article/details/115048490

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有