MirroGAN: Learning Text-to-image Generation by Redescription
摘要
尽管 GAN 已经能够生成非常逼真的高分辨率图片了, 但是要确保生成的图片和文本语义的一致还是一个很有挑战性的问题. 为了解决这个问题, 作者提出了 MirroGAN (a novel global-local attentive and semantic-preserving text-to-image-to-text framework) 这个模型. 这个模型主要由三个部分组成:
-
文本语义嵌入模块 (STEM, semantic text embedding module):
STEM 模块主要是为了生成单词和句子级别的嵌入语义.
-
全局和局部的注意力协同模块 (GLAM, global-local collaborative attentive module):
在这个模块主要是使用 STEM 模块生成的嵌入语义作为全局和局部的注意力逐步生成语义一致且逼真的图片.
-
语义文本再生和对齐模块 (STREAM, semantic text regeneration and alignment module):
在这个模块会使用一个 RNN 网络对生成的图片重新生成描述, 然后与原来的文本进行语义上的对齐.
模型的结构示意如下:
1. 注意力机制的应用
之前的文本到图像任务都是只通过一个判别器去判断文本和生成的图片对是否逼真以及图片语义是否和文本语义一致, 但是由于文本和图像之间的语义鸿沟, 单纯的依赖判别器是很难判断的而且是很不高效. 最近注意力模块开始被用来解决这个问题, 在 AttnGAN 中就使用了单词层次的注意力. 但是作者认为仅仅使用单词层次的注意力是不够的, 例如在 CUB 和 COCO 数据集中同一个语义的描述分别有 10 个和 5 个. 作者认为对于多阶段训练的生成器, 语义平滑是很重要的, 一次全局的句子级别的注意力也是应该要考虑的.
1.1 STEM 模块
在 MirroGAN 中 STEM 模块就是为了提取描述的单词特征和句子特征的模块. 作者使用了 RNN 提取这些特征:
w , s = R N N ( T ) w, s=RNN(T) w,s=RNN(T)
其中 T = { T l ∣ l = 0 , ⋯ , L } T=\{T_l|l=0,\cdots,L\} T={ Tl∣l=0,⋯,L}, L L L 表示句子的长度. w = { w l ∣ l = 0 , ⋯ , L } ∈ R D × L w=\{w^l|l=0,\cdots,L\}\in\mathbb{R}^{D\times L} w={ wl∣l=0,⋯,L}∈RD×L 表示单词级别的特征, s ∈ R D s\in\mathbb{R}^{D} s∈RD 表示句子级别特征. 由于不同的单词的排序可能表示相同的语义. 因此, 为了提高模型的鲁棒性, 这里作者还使用了StackGAN 中提出的 conditioning augmentation method, 从而产生更多的图像-文本对数据, 增强对条件文本流形上的小扰动的鲁棒性.
s c a = F c a ( s ) s_{ca}=F_{ca}(s) sca=Fca(s)
其中 s c a ∈ R D ′ s_{ca}\in\mathbb{R}^{D'} sca∈RD′, D ′ D' D′ 是增强后的维度.
2. 文本到图像与图像到文本
虽然从图像到文本是另外一个任务, 但是这两个任务都需要在两个域 (文本域和图像域)对齐语义. 所以作者就想到构建一个包含这两个任务的模型, 在这个模型下就能够使用对称的约束. 下图展示了这种约束:
2.1 GLAM 模块
GLAM 模块是一个级联的生成网络. 借鉴了 AttnGAN 的结构:
f 0 = F 0 ( z , s c a ) f_0=F_0(z, s_{ca}) f0=F0(z,sca)
f i = F i ( f i − 1 , F a t t i ( f i − 1 , w , s c a ) ) , i ∈ { 1 , 2 , ⋯ , m − 1 } f_i=F_i(f_{i-1}, F_{att_i}(f_{i-1}, w, s_{ca})), i \in\{1,2,\cdots,m-1\} fi=Fi(fi−1,Fatti(fi−1,w,sca)),i∈{ 1,2,⋯,m−1}
I i = G i ( f i ) , i ∈ { 1 , 2 , ⋯ , m − 1 } I_i=G_i(f_i),i \in\{1,2,\cdots,m-1\} I