AttnGAN: Fine-Grained Text to Image Generationwith Attentional Generative Adversarial Networks 论文解读
attnGAN是CVPR 2018的一篇文章,我觉得写得很好,是十分值得一读的文章。文章引进了注意力(attention)机制。
Attentional Generative Adversarial Network(AttnGAN)能够生成细粒度(fine-grained)细节的的图片,与之前的text to image最好的 文章相比在CUB数据集上的inception score 提高了14.14%,而在COCO数据集上的性能提高了惊人的170.25%。这篇文章首次提出了分层的注意力机制的GAN网络能够自动的在单词水平上实现与图片中的某个子区域的映射,从而实现细粒度的细节。
论文链接: https://arxiv.org/pdf/1711.10485.pdf.
StackGAN++论文解读: https://blog.****.net/weixin_43551972/article/details/89884003.
这篇文章的主要创新点有两处:
- 注意力生成网络(attentional generative network)。它能够在单词的水平上实现单词与图片中的某个子区域的映射,从而实现细粒度的图片细节。
- 提出了DAMSM(Deep Attentional Multimodal Similarity Model)模块,进而提出了DAMSM损失函数,加入到整个网络的损失函数中后,有利于生成更高质量的图片。
整个网络机构为:
与之前的StackGAN++相比,主要的不同就是加入了Attentional Generative Network 和 DAMSM模块。
Attentional Generative Network
首先我们要有以下概念:
在这里向量e–是整个文本的嵌入向量,向量e ∈ RD x T是文本中单词向量矩阵,即每个单词对应矩阵中的一列,二由生成器生成的图片特征为 h ∈ RD^ x T。由于向量e与向量h行数,也就是维数不同,必须做 e’=Ue的矩阵转换操作,U ∈ RD^ x D。向量h的每一列对应这生成图片的每一个子区域,用 jth 表示该子区域,而 jth 区域与 e’ 中的每个列(也就是每个单词)的相关性可以用下面这个公式表示:
s’j,i =hTj e’i,βi,j表示第i个单词对第j个区域的所占的权重。从而有:
Deep Attentional Multimodal Similarity Model(DAMSM)
在介绍DAMSM损失之前先了解两个编码模块:
-
The text encoder:
文中采用了双向LSTM文本编码器,形成两个向量:e 和 e–。 -
The image encoder:
文中采用的是CNN,形成两个矩阵:v ∈ RD x 289(在深度卷积网络中得到的各子区域的特征f ∈ R768 x 289通过 v = Wf 公式所组成的矩阵)和 v– ∈ RD(由CNN的最后的池化层得到的一个整张图片的向量f ∈ R2048通过W–f– )。
The attention-driven image-text matching score
s ∈ RT x 289。si,j描述的是文本中第i个单词和图片的第j个区域的相似性。我们将其归一化为:
然后为每一个单词计算区域文本向量(region-context vector)ci:
最后我们第一第i个单词与图片的相关性:
进而有整个文本D与整个图片Q的匹配分:
DAMSM损失:
对于一个批度文本图片对{[Qi,Di]}Mi=1,有一个后验概率:
从而有负对数损失函数(‘w’ stands for ‘word’):
类似的有:
最后DAMSM损失函数定义为(‘s’ stands for ‘sentence’):
整个网络的损失函数为
实验结果展示
文中还有一个验证注意力机制的重要性的实验,我就不介绍了,感兴趣的可以看看原文,我放张图感受一下