Abstract
在这篇论文中,我们提出了自注意生成对抗网络(SAGAN),它是用于图像生成任务的允许注意力驱动的、长距离依赖的建模。传统的卷积GANs只根据低分辨率图上的空间局部点生成高分辨率细节。在SAGAN中,可以使用来自所有特征位置的线索生成细节。此外,判别器可以检查图像中较远部分的细节特征是否一致。此外,最近的研究表明,生成器条件会影响GAN的性能。利用这一观点,我们将光谱归一化应用到GAN生成器上,发现这改善了训练的动态。提出的SAGAN比以前的研究的效果更好,在ImageNet数据集的挑战中,将最好的Inception分数从36.8提高到52.52,将Fréchet初始距离从27.62减少到18.65。对注意力层的可视化显示,生成器利用了与目标形状对应的邻域,而不是固定形状的局部区域。
1. Introduction
图像合成是计算机视觉中的一个重要问题。随着生成式对抗网络(GANs)的出现,这方面已经取得了显著的进展(Goodfellow et al., 2014),尽管仍存在许多开放问题(Odena, 2019)。基于深度卷积网络的GANs(Radford et al., 2016; Karras et al., 2018; Zhang et al.) 尤其成功。然而,通过仔细检查这些模型生成的样本,我们可以观察到卷积GANs (Odena et al., 2017; Miyato et al., 2018; Miyato & Koyama, 2018)在多类数据集上训练时,某些图像类的建模比其他类的建模困难得多(例如,ImageNet (Russakovsky et al., 2015))。例如,当先进的ImageNet GAN模型(Miyato & Koyama, 2018) 擅长合成图像类和一些结构性限制(如海洋、天空和景观类等更易通过纹理区分而不是通过几何结构),不能捕捉几何或在一些类持续发生的结构模式(例如,在绘制狗时往往带着真实的皮毛纹理,但没有明确定义分开的脚)。一种可能的解释是,以前的模型严重依赖于卷积来对不同图像区域之间的相关性进行建模。由于卷积操作符有一个局部接受域,长距离的依赖关系必须经过几个卷积层才能处理。因为各种各样的原因,这都将防止学习长距离依赖,缺点有:
- 一个小模型可能无法表示该长距离依赖
- 优化算法可能难以发现能够仔细协调多层,并能捕获这些依赖的参数值, 而且当这些参数化被应用于之前的不可见的输入时,可能是统计脆弱的且容易失败
- 增加卷积核的大小可以增加网络的表示能力,但是这样做也会损失使用局部卷积结构获得的计算和统计效率
从另一方面来说,自注意(Cheng et al., 2016; Parikh et al., 2016; Vaswani et al., 2017)在构建长期依赖关系的能力与计算和统计效率之间表现出更好的平衡。自注意模块计算一个位置的响应,作为所有位置特征的加权和,其中的权重 —— 或注意力向量 —— 只需要很小的计算成本就可以计算出来。
在这项工作中,我们提出了自注意生成对抗网络(SAGANs),它将一种自注意机制引入到卷积GANs中。
它的好处有:
- 自注意模块是卷积的补充,帮助建模跨图像区域的长距离、多层次的依赖关系。
- 有了自注意的配备,生成器可以绘制每个位置的精细细节都与图像远处部分的精细细节仔细协调的图像。
- 此外,该判别器还可以更准确地对全局图像结构执行复杂的几何约束。
除了自注意,我们还结合了用于GAN性能的网络调节的最新研究成果。(Odena et al., 2018)的研究表明,状态良好的生成器往往性能更好。我们建议使用之前仅应用于判别器的光谱归一化技术来加强GAN生成器的良好条件(Miyato et al., 2018)。
我们在ImageNet数据集上进行了大量的实验,以验证所提出的自注意机制和稳定技术的有效性。通过将最好的Inception分数从36.8提高到52.52,将Fréchet初始距离从27.62减少到18.65说明SAGAN显著优于之前在图像合成的工作。对注意力层的可视化显示,生成器利用了与目标形状对应的邻域,而不是固定形状的局部区域。我们的代码可以在https://github.com/ brain-research/self-attention-gan找到。
2. Related Work
生成对抗网络. GANs在各种图像生成任务中取得了巨大成功,包括图像到图像的转换(Isola et al., 2017; Zhu et al., 2017; Taigman et al., 2017; Liu & Tuzel, 2016; Xue et al., 2018; Park et al., 2019),图像超分辨率(Ledig et al., 2017; Snderby et al., 2017) 和文本-图像合成(Reed et al., 2016b;a; Zhang et al., 2017; Hong et al., 2018)。尽管取得了这样的成功,但是GANs的训练是不稳定的,并且对超参数的选择非常敏感。一些工作试图通过设计新的网络架构来稳定GAN的训练动态和提高样本多样性(Radford et al., 2016; Zhang et al., 2017; Karras et al., 2018; 2019),修改学习目标和动态 (Arjovsky et al., 2017; Salimans et al., 2018; Metz et al., 2017; Che et al., 2017; Zhao et al., 2017; Jolicoeur-Martineau, 2019)添加正则化方法(Gulrajani et al., 2017; Miyato et al., 2018) 和引入启发式技巧(Salimans et al., 2016; Odena et al., 2017; Azadi et al., 2018)。最近,Miyato等人 (Miyato et al., 2018) 为了约束判别器函数的Lipschitz常数,提出了限制判别器中权重矩阵的谱范数。结合基于项目的判别器(Miyato和Koyama, 2018),该光谱标准化模型极大地改进了ImageNet上的类条件图像生成。
注意模型. 最近,注意力机制已经成为捕获全局依赖关系的模型的一个组成部分 (Bahdanau et al., 2014; Xu et al., 2015; Yang et al., 2016; Gregor et al., 2015; Chen et al., 2018)。特别是自注意 (Cheng et al., 2016; Parikh et al., 2016),也称为内注意,通过关注同一序列中的所有位置来计算序列中某个位置的响应。Vaswani等人(Vaswani et al., 2017)证明了机器转换模型仅通过使用自注意模型就可以达到最先进的结果。Parmar等人(Parmar et al., 2018)提出了一种图像转换器模型,将自注意添加到自回归模型中进行图像生成。Wang等人(Wang et al., 2018)将自注意作为一种非局部操作来对视频序列的时空依赖性进行建模。尽管有了这些进展,自注意还没有在GANs的背景下被探索。(AttnGAN (Xu et al., 2018)对输入序列中的词嵌入使用注意机制,而对内部模型状态不使用自注意)。SAGAN学会了在图像的内部表示中有效地找到全局的、长距离的依赖关系。
3. Self-Attention Generative Adversarial Networks
大多数基于GAN的模型(Radford et al., 2016; Salimans et al., 2016; Karras et al., 2018)使用卷积层构建图像生成。卷积处理一个局部邻域内的信息,因此单独使用卷积层对图像的长期依赖关系建模在计算上是低效的。在本节中,我们采用了(Wang et al., 2018)的非局部模型来介绍GAN框架中的自注意机制,使得生成器和判别器能够有效地对广泛分离的空间区域之间的关系进行建模。因为它的自我注意模块(参见图2),我们将提出的方法称为自注意生成对抗网络(SAGAN)。
将前一隐含层x∈RC×N的图像特征先变换成两个特征空间f,g来计算注意,其中f (x) = Wfx, g(x) = Wgx:
βj,i表示模型在合成第j个区域时对第i个位置的关注程度。其中,C为通道数,N为前一隐含层特征的特征位置数。注意层的输出为o = (o1,o2,…,oj,…,oN)∈RC×N,其中:
在上述公式中,Wg∈RC̄ ×C、Wf∈RC̄ ×C、Wh∈RC̄ ×C和Wv∈RC̄ ×C是可学习的权重矩阵,用来实现1×1的矩阵。在ImageNet的一些迭代后将通道数量从C̄ 减少到C / k, k = 1, 2, 4, 8时,我们没有注意到任何显著的性能下降的。为了提高内存效率,我们选择在我们所有的实验中设置k = 8(即C̄ = C / 8)。
总结一下,CxN = Cx( WxH ),为了进行矩阵相乘所以转换成这个样子,即进行flat操作。通过f(x)、g(x)操作后的输出是[C/8, N],然后对f(x)的结果转置后两者相乘,得到[N, N]大小的s矩阵,表示每个像素点之间的相互关系,可以看成是一个相关性矩阵。h(x)的操作稍微有点不同,输出是[C, N]
然后再使用softmax对s矩阵归一化后得到β矩阵,βj,i表示模型在合成第j像素点时对第i个位置的关注程度,即一个attention map
然后将得到的attention map应用到一个h(x)输出的特征图上,将会对生成的第j个像素造成影响的h(xi)与其对应的影响程度βj,i相乘,然后求和,这就能根据影响程度来生成j像素,将这个结果在进行一层卷积即得到添加上注意的特征图的结果o
此外,我们还将注意力层的输出与比例参数相乘,并将输入的特征图添加回来。因此,最终输出为:
这样得到的结果就是将原来的特征图x加上增加上注意机制的o后的结果
γ是可学习的标量,它初始化为0。首先介绍可学习的γ允许网络依赖在局部领域的线索——因为这更容易,然后逐渐学习分配更多的权重给非局部的证据。我们这样做的直觉很简单:我们想先学习简单的任务,然后逐步增加任务的复杂性。在SAGAN中,提出的注意模块已应用于生成器和判别器,通过最小化铰链式的对抗损失以交替方式进行训练(Lim & Ye, 2017; Tran et al., 2017; Miyato et al., 2018)
4. Techniques to Stabilize the Training of GANs
我们还研究了两种技术去对具有挑战性的数据集稳定的训练GANs。首先,我们在生成器和判别器使用光谱归一化(Miyato et al., 2018)。其次,我们证实了双时间尺度更新规则(TTUR) (Heusel et al., 2017)是有效的,我们主张在正则化判别器中专门使用它来解决慢速学习问题。
4.1. Spectral normalization for both generator and discriminator
Miyato 等人 (Miyato et al., 2018)最初提出通过将光谱归一化应用于判别器网络来稳定GANs的训练。这样做通过限制每一层的谱范数来约束判别器的Lipschitz常数。与其他归一化技术相比,光谱归一化不需要额外的超参数调整(将所有权层的光谱范数设置为1在实践中表现良好)。此外,计算成本也相对较小。
我们认为,生成器也可以从光谱归一化中受益,基于最近的证据表明,生成器的调节是影响GANs性能的一个重要因素(Odena et al., 2018)。谱归一化可以防止参数幅度的增大,避免异常梯度。我们的经验发现,谱归一化的生成器和判别器使它可能使用较少的判别器更新每次生成器的更新,从而大大降低了训练的计算成本。该方法也显示出更稳定的训练行为。
4.2. Imbalanced learning rate for generator and discriminator updates
在之前的工作中,判别器的正则化(Miyato et al., 2018; Gulrajani et al., 2017) 经常减慢GANs的学习过程。在实践中,使用正则化判别器的方法在训练期间通常需要经过多个(例如,5个)判别器更新steps后,才更新每个生成器的一个step。Heusel等人(Heusel et al., 2017)主张对生成器和判别器使用单独的学习速率(TTUR)。我们建议使用TTUR来弥补正则化判别器中学习速度慢的问题,使得每个生成器步骤使用更少的判别器步骤成为可能。使用这种方法,我们能够在相同的壁钟时间下得到更好的结果。
5. Experiments
为了评估提出的方法,我们在LSVRC2012 (ImageNet)数据集上进行了大量的实验(Russakovsky et al., 2015)。首先,在5.1节中,我们设计了一些实验来评估这两种提出的技术对于稳定GANs训练的有效性。接下来,在5.2节中研究了所提出的自注意机制。最后,我们将SAGAN与最先进的方法(Odena et al., 2017; Miyato & Koyama, 2018) ,即5.3节中的图像生成任务进行比较 。模型使用同步SGD(众所周知,异步SGD存在一些困难,如(Odena, 2016)),使用4个gpu,在每个上进行大约2周的训练。
评价指标。我们选择Inception分数(IS)(Salimans et al ., 2016)和Fréchet初始距离(FID) (Heusel et al ., 2017)进行定量评价。尽管存在可替代的选择(Zhou et al., 2019; Khrulkov & Oseledets, 2018; Olsson et al., 2018),但是它们没有被广泛使用。Inception分数(Salimans et al., 2016)计算了条件类分布和边缘类分布之间的KL散度。更高的Inception分数意味着更好的图像质量。我们包含了Inception分数,因为它被广泛使用,因此可以将我们的结果与之前的工作进行比较。然而,重要的是要明白,Inception分数有严重的局限性—— 其主要目的是确保模型生成的样本,可以明确地被识别为是属于一个特定的类的,然而模型生成来自许多类的样本,不是非要评估细节的真实性或内部类的多样性的。FID是一个更有原则和更全面的度量标准,在评估生成样本的真实性和变化方面,它已被证明与人类评估更一致(Heusel et al., 2017)。FID计算生成的图像与Inception-v3网络特征空间中的真实图像之间的Wasserstein-2距离。此外,FID计算了整个数据分布(即在ImageNet中的1000个类的图像) ,我们还计算每个类中生成的图像和数据集图像之间的FID(称为intra FID (Miyato & Koyama, 2018))。较低的FID和内部FID值意味着合成数据分布和实际数据分布之间的距离更近。在我们所有的实验中,每个模型随机生成50k个样本来计算Inception分数,FID和intra FID。
网络结构和实现细节。我们训练的所有SAGAN模型都被设计成生成128×128的图像。默认情况下,光谱归一化(Miyato et al., 2018)用于生成器和判别器中的层。与(Miyato & Koyama, 2018)类似,SAGAN在生成器中使用条件batch normalization,在判别器中使用投影。对于所有的模型,我们使用Adam优化器 (Kingma & Ba, 2015) 在训练中设置β1 = 0和β2 = 0.9。默认情况下,判别器的学习率为0.0004,生成器的学习率为0.0001。
5.1. Evaluating the proposed stabilization techniques
在本节中,进行了实验来评估所提出的稳定技术的有效性,即,将光谱归一化(SN)应用于生成器,利用不平衡学习率(TTUR)。在图3中,我们的模型“SN on G/D”和“SN on G/D+TTUR”与基线模型进行了比较,基线模型是基于最先进的图像生成方法实现的(Miyato et al., 2018)。
在这个基线模型中,仅在判别器中使用了SN。当我们对判别器(D)和生成器(G)进行1:1的平衡更新训练时,训练变得非常不稳定,如图3中最左边的子图所示。它在训练中很早就表现出模式崩溃。例如,图4的左上子图演示了基线模型在第10k次迭代时随机生成的一些图像。
虽然在最初的论文(Miyato et al., 2018)中,这种不稳定的训练行为通过对D和G使用5:1的不平衡更新得到了极大的缓解,但是为了提高模型的收敛速度,需要使用1:1的平衡更新来稳定地训练。因此,使用我们提出的技术,意味着该模型可以产生更好的结果给定相同的壁钟时间。因此,不需要为生成器和判别器搜索合适的更新比率。如图3的中间子图所示,在生成器和判别器上同时添加SN,使得我们的模型“SN on G/D”得到了极大的稳定,即使是经过1:1的均衡更新训练。然而,在训练过程中,样本的质量并不是单调地提高。例如,由FID和IS测量的图像质量在第260次迭代时开始下降。该模型在不同迭代下随机生成的示例图像如图4所示。当我们将不均衡的学习速率应用于训练判别器和生成器时,“SN on G/D+TTUR”模型生成的图像质量在整个训练过程中单调提高。如图3和图4所示,在一百万次的训练迭代中,我们没有观察到样本质量、FID或Inception分数有任何显著的下降。因此,定量结果和定性结果都证明了所提出的GANs训练稳定技术的有效性。他们还证明,这两种技术的效果至少在一定程度上是相加的。在剩下的实验中,所有的模型对生成器和判别器都使用光谱归一化,并使用不平衡的学习速率以1:1的更新来训练生成器和判别器。
5.2. Self-attention mechanism.
为了探讨所提出的自注意机制的效果,我们建立了几个SAGAN模型,将自注意机制添加到生成器和判别器的不同阶段。如表1所示,使用自注意机制建模的SAGAN在中级到高级级别的特征图(如f eat32和feat64)比自注意机制的模型在低级别特征映射(例如,feat8和feat16)中取得更好的性能:
例如,“SAGAN, feat8”模型的FID从22.98改进为“SAGAN, feat32”的18.28。原因是,自注意获得了更多的证据,并享有更多的自由去选择条件与更大的特征图(即对于大的特征图,它与卷积是互补的),但是对于小的特征图(例如8×8),它与局部卷积的作用类似。实验结果表明,该注意机制为生成器和判别器提供了更大的能力,可以直接对特征图中的长距离依赖关系进行建模。此外,将我们的SAGAN与不需要注意的基线模型(表1第二列)进行比较,进一步表明了所提出的自注意机制的有效性。
与具有相同数量参数的残差块相比,自注意块也取得了较好的效果。例如,当我们用8×8特征图中的残差块替换自注意块时,训练不稳定,导致性能显著下降(如FID从22.98增加到42.13)。即使在训练顺利进行的情况下,将自注意块替换为残差块仍然会导致FID和Inception分数的下降。(例如,在特征图32×32中,FID为18.28 vs 27.33)。这一比较表明,使用SAGAN所带来的性能改进不仅仅是由于模型深度和容量的增加。
为了更好地理解在生成过程中所学到的知识,我们在SAGAN中可视化了不同图像中生成器的注意权重。图5和图1显示了一些需要注意的示例图像。参见图5的说明,以了解所学习的注意图的一些属性。
5.3. Comparison with the state-of-the-art
我们的SAGAN还与最先进的GAN模型进行了比较 (Odena et al., 2017; Miyato & Koyama, 2018) ,其用于生成ImageNet上的类条件图像。如表2所示,我们提出的SAGAN获得了最好的Inception分数,intra FID和FID。
所提出的SAGAN显著地将发布的最佳Inception分数从36.8提高到52.52。SAGAN获得的较低的FID(18.65)和intra FID(83.7)也表明,通过使用自注意模块对图像区域间的长距离依赖关系建模,SAGAN能够更好地逼近原始图像分布。
图6显示了一些ImageNet代表性类的比较结果和生成的图像。
我们观察到,我们的SAGAN比最先进的GAN模型(Miyato & Koyama, 2018)在合成有着复杂几何或结构模式的图像类,如金鱼和Saint Bernard时实现了更好的性能(即更低的intra FID)。对于结构约束较少的类(如山谷、石墙和珊瑚菌类,它们更多地由纹理而不是几何来区分),我们的SAGAN与基线模型相比显示出较少的优越性(Miyato和Koyama, 2018)。再次,原因是SAGAN中的自注意与用于捕获在几何或结构模式中一致出现的长距离全局级依赖的卷积是互补的,但在对简单纹理的依赖进行建模时,其作用与局部卷积类似。
所以SAGAN比较适合用在合成有着复杂几何或结构模式的图像中
6. Conclusion
在这篇论文中,我们提出了自注意生成对抗网络(SAGANs),它将一个自注意机制整合到GAN框架中。自注意模块可以有效地建模长距离依赖关系。此外,我们还证明了将谱归一化技术应用到生成器中可以稳定GAN训练,而TTUR可以加速正则化判别器的训练。SAGAN在ImageNet上实现了类条件图像生成的最新性能。