结合皮尔逊重构的文本到图像生成模型
2020-12-18莫建文徐凯亮
莫建文,徐凯亮
(桂林电子科技大学 信息与通信学院,广西 桂林 541004)
利用自然语言描述自动生成语义匹配的逼真图像,在图像生成领域中一直是一项具有挑战的研究任务。目的是为了学习一个从文本语义空间到彩色图像空间的映射,生成逼真图像的同时捕捉到文本的语义,即生成图像应保留文本描述中的物体特征和语义细节。近年来,由于图像生成领域越来越活跃,一些应用方面也都有了广泛的需求,比如艺术生成,计算机辅助设计等。
目前文本到图像生成的方法主要基于生成式对抗网络[1](generative adversarial networks,简称GAN),方法是将整个文本描述编码为一个全局的句子向量作为条件进行图像生成,最先由Reed等[2]通过一个基于条件生成对抗网络(condition generative adversarial networks,简称CGAN)[3]的框架来处理这项任务,并且提出了一种新的图像文本匹配对抗训练策略,这种方法成功生成了分辨率64×64的可信赖样本,但几乎无法生成生动的细节。为了更好地控制图像生成,Reed等又提出生成对抗What-Where网络模型(generative adversarial what-where network,简称GAWWN)[4],模型利用样本标签中给出的文本描述和具体的对象部件位置,生成分辨率128×128的图像,而由于标签获取成本高,模型具有一定的局限性。为了生成更高质量和分辨率的样本,Zhang等[5]提出了堆叠式生成对抗网络(stacked generative adversarial networks, 简称StackGAN),将生成网络分为2个阶段,先绘制出对象的大致轮廓和颜色,再通过多级残差网络修补生成样本的细节和缺陷,最后生成分辨率256×256的样本,极大提高了生成样本的质量。而后又提出了StackGAN的端对端改进方法StackGAN-v2[6],进一步优化了模型的稳定性,提高了生成样本的多样性。尽管以上方法生成样本的分辨率越来越高,但对抗学习中判别器训练速度普遍快于生成器,这会导致两者训练时难以达到纳什平衡,使得生成样本质量难以提升。
除了通过增强生成器能让训练加快收敛,限制判别器使训练更为平衡也能达到很好的效果。Peng 等[7]提出采用变分判别器瓶颈(variational discriminator Bottleneck,简称VDB),通过对数据样本和编码到的特征空间的互信息进行限制,提高判别器的判别难度,进而提高了对抗学习中的平衡性。生成对抗网络中判别器在二分类任务上表现了强大的区分能力,Martineau[8]提出相对生成对抗网络(relativistic standard GAN,简称RSGAN),使用相对判别器将真假样本混合,利用“图灵测试”的思想削弱了判别器的能力,VDB 则是通过对判别器加上互信息瓶颈来限制判别器的能力。另一方面,一般的生成对抗网络没有推理模型,这使得网络模型训练变得简单,但同时模型也变得难以控制,这就是生成对抗网络容易崩溃,难以收敛的原因。Kingma等[9]提出的变分自编码器(variational-autoencoder,简称VAE)是另一种生成式模型,该方法引入变分推理,利用编码器计算样本的均值和方差,并对均值网络加入高斯噪声,使生成的样本也具备多样性,虽然该方法理论完备,但由于损失项中均方误差是逐像素生成的方法,导致生成样本较为模糊。在生成对抗网络的基础上,Lucic等[10]提出自监督和半监督的协同训练方法,给判别器添加额外的特征提取器,将判别器训练为分类器,为扩增的数据集做预测,利用少量的标注数据训练就达到了很好的效果。Su[11]提出了的正交生成对抗网络(Orthogonal GAN,简称O-GAN),该方法对判别器网络的自由度进行正交分解,将额外的损失加入到目标损失中,使判别器成为一种有效的编码器的同时保留判别的自由度。通过最大化特征向量与输入的皮尔逊相关系数(Pearson correlation),增强两者间的线性相关性,从而达到重构的目的。
结合以上2个方面,借鉴O-GAN中最大化皮尔逊相关系数的方法,提出一种结合最大化皮尔逊相关系数的堆叠式生成对抗网络,主要对堆叠式生成对抗网络做了两点改进:
1)将原有的判别器的标量输出替换为特征向量,通过最大化特征向量与输入的皮尔逊相关系数加深两者线性相关性,使判别器具有编码能力,仅利用特征向量的平均值作判别,增加判别器任务的同时,限制判别器的判别能力;
2)平衡多级网络中的皮尔逊重构项,令多个尺度的特征向量与唯一的输入线性相关,增强判别网络的一致性。
通过实验证明,该改进方法在堆叠式生成对抗网络模型上能生成多样性更高和图像质量更好的样本,有效改善了模式崩溃的现象。
1 本文模型
在堆叠式生成对抗网络模型下,结合了最大化皮尔逊相关系数的方法,主要由多个生成网络和多个改进的判别器构成。改进的堆叠式生成对抗网络如图1所示。
1.1 堆叠式生成对抗网络
具体框架如图1所示,图中虚线框为标准的StackGAN-v2网络,c是条件向量且c∈Rnc,通过文本编码器[5]将文本描述映射为句嵌入向量,再对其进行条件增强[5]得到低维条件向量c。首先将条件向量c与高斯随机噪声向量z组合得到全局向量y,然后通过StackGAN-v2网络生成不同尺寸的图像,并经过不同尺度的判别器得到特征向量,最后计算特征向量与输入向量的皮尔逊相关系数并最大化,F0、G0、D0和Fi、Gi、Di分别为不同尺度的生成器和判别器。
样本生成过程可表示为
h0=F0(c,z),hi=Fi(c,hi-1),i=1,2;
si=Gi(hi),i=0,1,2。
(1)
其中:z~N(0,1)为高斯先验;z∈Rnz,{h0,h1,…,hi}为不同尺度的特征层;{s0,s1,…,si}为分辨率逐渐增加的生成样本。每个生成器都有不同的判别器进行竞争,并学习不同尺度的判别特征。Fi、Gi和Di都被建模为神经网络,设置nc=128,nz=100。
1.2 改进的判别器
生成对抗网络一般由生成器和判别器组成,传统的GAN没有推理模型,另一种生成模型VAE虽然具有编码器和生成器,拥有完备的推理过程并且没有模式崩溃等训练问题,但无法像GAN一样生成逼真的纹理和细节。在对抗训练过程中,判别器主要为生成器的训练提供梯度,随着训练的进行,判别器越来越强(即识别真假越来越简单),为生成器提供的梯度会越来越小,当训练完成时,判别器无法提供梯度,导致判别器参数的浪费。另外,标准生成对抗网络进行判别时,判别器只需要完成一个任务:对真实样本和生成样本进行判别。为了完成该项任务,判别器参数中所有与判别相关的自由度都被限制去完成判别的任务,而正由于判别器过强的拟合能力导致训练过程中很难找到生成器与判别器之间的纳什平衡,从而引发网络不收敛或崩溃等问题。
图1 StackGAN with Pearson correlation框架
为了更好地限制判别器的能力,借鉴O-GAN的方法改进了判别器,让其同时完成2个任务:1)对图像进行编码;2)对图像进行判别。通过最大化特征向量与输入向量的皮尔逊相关系数,增强两者的线性相关性,皮尔逊相关系数由减去均值并除去标准差得到,所以当完成训练时,均值和标准差的变化并不影响两者的线性相关性,当样本总体服从正态分布时,样本的均值和标准差相互独立,即在完成编码任务的同时保留了2个自由度供判别器所用。另从信息瓶颈[12]的角度来看,假设判别器原本有N个自由度与判别相关,加入皮尔逊重构项后,均值和标准差自由度被释放,剩下N-2个自由度则被强制与输入向量进行重构。为了完成判别的任务,判别器只能让重要的信息通过瓶颈,也就是说,判别器的泛化能力会有一定提升。判别器结构如图2所示。
图2 多尺度判别器结构示意图
如图2所示,判别器和编码器具有相似的网络结构,为共享两者之间的参数,将原本输出标量的判别器网络替换为输出向量的编码网络。
图2中过程具体表示为:
(2)
(3)
其中:μ为均值;σ为标准差;y为条件向量c和随机高斯向量z的组合向量;yj为组合向量y={y1,y2,…,yn}第j个变量;avg(·)用于计算平均值;N(·)为去除均值和标准差后的算子。式(3)中3个统计量相互正交。
2个变量之间的皮尔逊相关系数定义为2个变量之间的协方差和标准差乘积的比值:
(4)
(5)
由于n≫1,那么结合式(2)可以近似得:
cos(N(y),N(Di(si),c))。
(6)
式(4)表明组合向量与特征向量的皮尔逊相关系数为两者减去均值并除去标准差后的余弦相似度,本研究将该项作为重构项加入判别器损失中。
1.3 多尺度联合损失
在StackGAN-v2中的多尺度图像分布近似和条件与非条件联合分布近似理论下,网络输出多种尺度图像。各尺度生成器训练时共享大部分权值,分别对应了一个独立的判别器,无条件时网络的输入为随机高斯向量z,加入文本条件后输入为组合向量y。将判别器改进为编码器后,所有判别器就有了一个共同的重构目标(即网络的输入),当训练完成时,各尺度图像编码后的特征向量都应与输入呈线性相关。若在编码过程中不对网络进行约束,会导致特征向量间相关性差,使得网络难以收敛。为保证重构的准确性和稳定性,额外加入一致性重构目标,即强制所有判别器输出的特征向量皆与输入向量相关。
判别器改进为编码器时保留了特征向量的2个自由度(即均值和方差),而判别只需一个自由度就可完成,所以利用特征向量的均值就可以进行判别,则判别器最大化优化目标为
(log(avg(Di(xi)))+log(1-avg(Di(si)))+
(log(avg(Di(xi,c)))+log(1-avg(Di×
(si,c)))+λρ(y,Di(si,c))),i=0,1,2
(7)
其中:xi为第i个尺度的真实图像分布pdata,i,si为自相同尺度的模型分布pGi;z为随机高斯输入向量;y为组合向量;ρ为皮尔逊重构项,多个判别器并行训练;LDi表示第i个判别器损失。前3项为无条件损失,后3项为条件损失,设置λ=0.5。
生成器最小化优化目标:
λρ(y,Di(si,c))),i=0,1,2。
(8)
其中LG为总生成器损失,网络阶数m设置为3,由于皮尔逊重构项与生成器也有关系,因此生成损失中也加入了皮尔逊重构项。
2 实验结果与分析
实验平台的配置为 Intel Xeon E5-2687 W八核3.1 GHz处理器、32 GiB内存、GTX1080Ti 显卡以及 Ubuntu 16.04 操作系统,并使用基于Python编程语言的 Pytroch深度学习框架。
2.1 数据集及评估指标
1)数据集。在公开鸟类数据集CUB[13]上评估了本模型。CUB数据集包含了200类别的11 788张鸟类图像,其中8 855张样本作为训练集,2 933张样本作为测试集,每张图像都另外注释了10个文本描述[14]。使用了预先训练的文本编码器将每个句子编码为1024维度的文本嵌入向量,再进行条件增强处理得到128维的条件向量。
2)评估指标。选择Inception score[15](IS)为定量评估指标,评估方法表示为
IS=exp(ExDKL(p(y|x)‖p(y)))。
(9)
其中:x为一个生成的样本;y为Inception模型预测的标签。这个指标表示为一个好的模型应该具备多样性,因此边缘分布p(y)和条件分布p(y|x)的KL散度应该足够大。
2.2 实验细节
实验使用的基础框架为StackGAN-v2,使用了StackGAN-v2的生成器网络,同样分三级堆叠网络,分别输出分辨率为64×64,128×128,256×256的图像。由图1可知,第一级网络:将随机向量z和条件向量c组合得到输入向量y,经过全连接网络重组后再通过4个上采样块得到N个尺寸大小为64×64的特征图,N设置为64;第二级网络由一个联合层(将条件向量拓展后与特征图组合),2个残差块和一个上采样块组成,第三级网络与第二级网络一致。图2中每个判别器都有无条件特征向量和有条件特征向量2个输出,向量维度分别为100和128。StackGAN-v2原网络参数不变,改进判别器后,计算并最大化特征向量与输入组合向量间的皮尔逊相关系数,当相关系数为1时,两者完全线性相关。网络模型均采用学习率为0.000 2的Adam求解器,求解器动量设置为[0.5,0.999],批次大小为24,迭代600个周期。
2.3 结果对比
2.3.1 多样性评估与定性结果对比
为了证明改进判别器和多尺度联合损失的有效性,通过与各种主流的文本到图像生成的网络模型进行结果对比,利用IS评估指标来衡量模型生成图像的客观性和多样性。按照StackGAN的实验设置,总共采样了约30 000张模型生成的随机图像来评估模型的该指标。
表1 Inception score对比结果
由表1结果可知,本模型较之前不同的模型都有了很大的提高,IS较StackGAN-v2提高了0.32,这表明本模型生成的样本多样性明显强于其他模型。另外特别详细地与StackGAN-v2进行了结果比较。定性地比较了2种模型在同一个文本描述条件和随机噪声情况下生成的图像。结果如图3所示。
图3中结果都是在数据集CUB的测试集上得到,本模型与StackGAN-v2同样生成分辨率256×256的样本。由对比结果可知,图3中的(a)和(b),(c)和(d),(e)和(f),每两列图都对应同一种鸟类,分别属于3类不同的鸟,每个样本都由不同的文本描述生成。
在图3(a)和(b)中,StackGAN-v2生成的样本虽然在毛色和特征上与文本描述一致,但在物体结构上表现得较为糟糕,而本模型生成的样本不仅与语义一致,在鸟的结构上也表现得更为圆滑,该问题同样体现在(c)和(d)中,(d)甚至已经失去了鸟的形态。在(e)和(f)中,2种模型生成的样本在结构上表现良好,而区分在黑色的头部该特征,本模型表现与原图一致,而StackGAN-v2并没有捕捉到该特征。在大多数情况下,特征的生成取决于文本中描述的不同特征组合,生成样本的特征都会倾向于训练的标签原图,不同的特征组成不同的鸟,不过主要形态和纹理细节都基本与原图一致。本模型在整体的结构上的表现强于StackGAN-v2,由此认为这是由于生成损失和判别损失中加入的皮尔逊重构项对空间结构敏感,并且多级网络的一致性约束了生成样本的特征与原图特征之间的差异。生成样本姿态对比如图4所示。
图4(a)和(b)为同一图像的不同文本描述条件下生成的样本,图4(c)、(d)、(e)和(f)为同一类鸟的不同文本描述条件下生成的样本。以上图像的不同主要体现在姿态,本模型在不同条件下的姿态变化明显优于StackGAN-v2,在表3中的IS指标也说明了多样性优于StackGAN-v2。改进的判别器由于需要同时进行编码和判别的任务,导致判别性能要弱于普通判别器,基于信息瓶颈原理分析,对于细节和一些微小的差异,本判别器会对其进行限制和忽略,而对于明显的特征、色彩和物体空间结构,泛化性能优于普通判别器,这有益于对大量样本判别。实验表明,对判别器的改进和多级网络的一致性约束,提高了生成样本的多样性和增强了对鸟类边缘结构的约束。
图3 结果对比图
图4 生成样本姿态对比
图5 重构样本到原生成样本的变化过程图
2.3.2 重构插值对比
在相同文本描述条件下,在组合向量和特征向量之间进行插值评估,具体可表示为
(10)
3 结束语
由于标准生成对抗网络中判别器训练速度普遍快于生成器,当判别器完全收敛后无法为生成器提供梯度,导致生成器无法收敛,从而使得生成样本的质量难以提升。另外文本到图像生成任务中缺乏推理模型,缺少特征提取的过程,导致模型对图像整体的结构不敏感,从而引发模式崩溃等问题。提出了一种结合最大化皮尔逊相关系数的文本到图像生成模型,该模型将判别器进行了改进,令判别器能同时判别和编码,为模型提供了推理模型的同时限制判别器的判别能力,增强了判别器的泛化性能,使判别器和生成器的训练更容易达到纳什平衡。为了增强多尺度图像编码的一致性,还提出了多尺度联合损失,令各尺度特征向量重构目标为输入组合向量,建立一致的重构目标。实验结果表明,该方法有效提高了生成样本的多样性和图像质量,插值实验表明,判别器能有效作为编码器生成特征向量。