论文链接: https://arxiv.org/pdf/1711.10485.pdf. StackGAN++论文解读: https://blog.csdn.net/weixin_43551972/article/details/89884003.
这篇文章的主要创新点有两处:
注意力生成网络(attentional generative network)。它能够在单词的水平上实现单词与图片中的某个子区域的映射,从而实现细粒度的图片细节。提出了DAMSM(Deep Attentional Multimodal Similarity Model)模块,进而提出了DAMSM损失函数,加入到整个网络的损失函数中后,有利于生成更高质量的图片。与之前的StackGAN++相比,主要的不同就是加入了Attentional Generative Network 和 DAMSM模块。
首先我们要有以下概念: 在这里向量e–是整个文本的嵌入向量,向量e ∈ RD x T是文本中单词向量矩阵,即每个单词对应矩阵中的一列,二由生成器生成的图片特征为 h ∈ RD^ x T。由于向量e与向量h行数,也就是维数不同,必须做 e’=Ue的矩阵转换操作,U ∈ RD^ x D。向量h的每一列对应这生成图片的每一个子区域,用 jth 表示该子区域,而 jth 区域与 e’ 中的每个列(也就是每个单词)的相关性可以用下面这个公式表示: s’ j,i =hT j e’ i,βi,j表示第i个单词对第j个区域的所占的权重。从而有:
在介绍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– )。
s ∈ RT x 289。si,j描述的是文本中第i个单词和图片的第j个区域的相似性。我们将其归一化为: 然后为每一个单词计算区域文本向量(region-context vector)ci: 最后我们第一第i个单词与图片的相关性: 进而有整个文本D与整个图片Q的匹配分:
对于一个批度文本图片对{[Qi,Di]}Mi=1,有一个后验概率: 从而有负对数损失函数(‘w’ stands for ‘word’): 类似的有: 最后DAMSM损失函数定义为(‘s’ stands for ‘sentence’):
文中还有一个验证注意力机制的重要性的实验,我就不介绍了,感兴趣的可以看看原文,我放张图感受一下