StackGAN: 通过堆叠生成对抗网络进行文本图像合成.

本文提出了StackGAN,解决文本到图像生成分辨率不高的问题。StackGAN堆叠了两阶段的GAN,第一阶段根据给定的文本描述,生成低分辨率的图像;第二阶段根据生成的低分辨率图像以及原始文本描述,生成具有更多细节的高分辨率图像。

对于文本图像生成任务,由于训练样本对的数量有限,文本学习词嵌入时具有稀疏性(由于词嵌入的隐空间维度一般很高,当输入数据量很少时,会导致隐变量分布空间不连续,大部分值为$0$);作者提出一种条件增强(Conditioning Augmentation)方法改善文本嵌入的稀疏性,并稳定生成对抗网络的学习过程,提高了生成图像的多样性。

条件增强方法把将原始词向量分布映射到一个高斯分布$N(\mu(\phi_t),\Sigma(\phi_t))$中,均值$\mu(\phi_t)$和对角方差矩阵$\Sigma(\phi_t)$是关于词嵌入向量$\phi_t$的函数(通过全连接网络构造)。在训练时,最小化其与标准正态分布的KL散度:

\[D_{KL}(N(\mu(\phi_t),\Sigma(\phi_t)) || N(0,1))\]

第一阶段主要用于生成低分辨率的图像信息。首先从由文本词嵌入$\phi_t$构造的高斯分布$N(\mu(\phi_t),\Sigma(\phi_t))$中随机采样一个词向量$\hat{c}_0$,将其与随机采样的高斯噪声$z$拼接后作为生成器$G_0$的输入,生成低分辨率图像。判别器$D_0$把生成图像下采样为图像特征,然后通过词嵌入$\phi_t$构造文本特征,拼接两个特征综合文本和图像的信息,并通过全连接层进行判别分类。

第一阶段生成的低分辨率图像通常缺乏鲜明的目标特征,并且可能包含一些变形。同时,文本描述中的部分信息可能也未体现出来。第二阶段在文本描述和第一阶段生成的低分辨率图像的基础上生成高分辨率图片,完善了被忽略的文本信息细节。

第二阶段的生成器$G$采用条件生成结构,输入低分辨率图像,并随机采样词向量$\hat{c}$构造文本特征,连接到图像特征上,最终生成高分辨率图像。判别器$D$与判别器$D_0$的结构一致,用于区分生成图像和真实图像。