Progressive GAN
我们描述了一种新的生成式对抗网络的训练方法。其关键思想是逐步发展生成器和鉴别器:从低分辨率开始,随着训练的进行,我们增加新的层来模拟越来越精细的细节。这既加快了训练速度,又极大地稳定了训练效果,使我们能够生成质量空前的图像,例如 102 4 2 1024^2 10242的CELEBA图像。我们还提出了一个简单的方法来增加生成图像的变化,并在无监督的CIFAR10中取得了创纪录的8.80分。此外,我们还描述了几个实施细节,这对阻止生成器和判别器之间的恶性竞争很重要。最后,我们提出了一个评估GAN结果的新指标,包括图像质量和变化方面。作为一个额外的贡献,我们构建了一个更高质量的CELEBA数据集版本。
1 INTRODUCTION
高分辨率图像的生成是困难的,因为更高的分辨率使生成的图像更容易与训练图像区分开来(Odena等人,2017),从而急剧放大了梯度问题。由于内存的限制,大的分辨率也必须使用较小的迷你批,进一步影响了训练的稳定性。我们的关键见解是,我们可以逐步增长生成器和鉴别器,从更容易的低分辨率图像开始,并随着训练的进行增加新的层,引入更高分辨率的细节。这大大加快了训练速度,并提高了高分辨率下的稳定性,我们将在第二节中讨论。
我们将在第3节中描述鼓励生成图像多样性的方法,并在第5节中提出评估质量和变化的新指标。
第4.1节讨论了对网络初始化的微妙修改,导致不同层的学习速度更加平衡。此外,我们观察到,传统上困扰GANs的模式崩溃往往发生得非常快。通常情况下,当鉴别器overshoots,导致梯度夸张时,它们就开始了,随后出现了不健康的竞争,两个网络的信号量都在升级。我们提出了一种机制来阻止生成器参与这种升级,从而解决了这个问题(第4.2节)。
2 PROGRESSIVE GROWING OF GANS
我们的主要贡献是一种GANs的训练方法,我们从低分辨率的图像开始,然后通过向网络添加层来逐步提高分辨率,如图1所示。这种递增的性质允许训练首先发现图像分布的large-scale 结构,然后将注意力转移到越来越精细的细节上,而不是同时学习所有的尺度。
图1:我们的训练开始时,生成器(G)和鉴别器(D)都具有4×4像素的低空间分辨率。随着训练的推进,我们逐步增加G和D的层数,从而提高生成图像的空间分辨率。在整个过程中,所有现有的层都是可训练的。这里的N×N指的是在N×N空间分辨率上操作的卷积层。这允许在高分辨率下进行稳定的合成,也大大加快了训练的速度。右图中我们展示了六个使用1024×1024的渐进式增长生成的图像例子。
图2:当把生成器(G)和鉴别器(D)的分辨率提高一倍时,we fade in the new layers smoothly。这个例子说明了从16×16图像(a)到32×32图像(c)的过渡。在过渡期间(b),我们把在更高的分辨率上操作的层当作一个残差块,其权重α从0到1线性增加。这里的2×和0.5×指的是分别使用近邻过滤和平均池将图像分辨率翻倍和减半。在训练判别器时,我们输入真实的图像,这些图像被降级以匹配网络的当前分辨率。在分辨率转换期间,我们在真实图像的两个分辨率之间进行插值,类似于生成器的输出结合两个分辨率。
我们使用生成器和鉴别器网络,它们是彼此的镜像,总是同步增长。在整个训练过程中,这两个网络中的所有现有层都是可训练的。当新的层被添加到网络中时,we fade them in smoothly,如图2所示,这就避免了对已经训练好的小分辨率层的突然冲击。附录A详细描述了发生器和鉴别器的结构,以及其他训练参数。
我们观察到,渐进式训练有几个好处。早期,由于类信息较少,模式也较少,所以小图像的生成明显更稳定(Odena等人,2017)。通过一点一点地提高分辨率,与发现从潜伏向量到例如10242张图像的映射的最终目标相比,我们不断提出一个简单得多的问题。这种方法与Chen & Koltun(2017)最近的工作在概念上有相似之处。在实践中,它充分稳定了训练,使我们能够可靠地使用WGAN-GP损失(Gulrajani等人,2017)甚至LSGAN损失(Mao等人,2016b)合成百万像素级的图像。
另一个好处是减少了训练时间。通过逐步增长的GANs,大部分的迭代是在较低的分辨率下完成的,而且根据最终的输出分辨率,获得可比的结果质量往往快2-6倍。
3 INCREASING VARIATION USING MINIBATCH STANDARD DEVIATION
GANs有一种倾向,即只捕捉训练数据中发现的变化的一个子集,Salimans等人(2016)建议将 "minibatch discrimination"作为一种解决方案。他们不仅计算单个图像的特征统计,而且计算整个minibatch的特征统计,从而鼓励生成和训练图像的minibatch显示类似的统计。这是通过在判别器的末端添加一个minibatch layer层来实现的,该层学习一个大的张量,将输入激活投射到一个统计数组中(an array of statistics)。在minibatch中的每个例子都会产生一组单独的统计数据,并将其串联到层的输出中,这样判别器就可以在内部使用这些统计数据。我们大大简化了这种方法,同时也提高了变异性。
我们的简化解既没有可学习的参数,也没有新的超参数。我们首先计算每个特征在每个空间位置上的标准差。然后,我们对所有特征和空间位置进行平均,得出一个值。我们复制该值并将其连接到所有空间位置和minibatch上,生成一个额外的(常量)特征图。该层可以插入鉴别器中的任何位置,但我们发现最好将其插入末端(有关详细信息,请参阅附录A.1)。我们尝试了一组更丰富的统计数据,但无法进一步改善变异。在平行工作中,Lin等人(2017)提供了关于向鉴别器显示多幅图像的益处的理论见解。
variation problem的替代解决方案包括unrolling the discriminator(Metz等人,2016年)以regularize其更新,以及一个 “repelling regularizer”(Zhao等人,2017年),它为生成器增加了一个新的损失项,试图鼓励它在一个最小批次中正交特征向量。Ghosh等人(2017)的多个生成器也是为了实现类似的目标。我们承认,这些解决方案可能比我们的解决方案增加了更多的变化–或者可能与之正交–但将详细的比较留待以后。
4 NORMALIZATION IN GENERATOR AND DISCRIMINATOR
GANs很容易因为两个网络之间的恶性竞争而导致信号量级的升级。大多数(如果不是所有的)早期解决方案通过在生成器中使用批量归一化的变体(Ioffe & Szegedy, 2015; Salimans & Kingma, 2016; Ba et al., 2016)来阻止这种情况的发生,而且通常也在判别器中。这些归一化方法最初是为了消除协方差的转移而引入的(These normalization methods were originally introduced to eliminate covariate shift)。然而,我们没有观察到这是GANs中的一个问题,因此认为GANs中的实际需求是约束信号的大小和竞争。我们使用一种不同的方法,它由两种成分组成,其中都不包括可学习的参数。
4.1 EQUALIZED LEARNING RATE
我们偏离了当前谨慎的权重初始化趋势,而是使用一个简单的N(0,1)初始化,然后在运行时显式地缩放权重。准确地说,我们设定了 w ^ i = w i / c \hat w_i=w_i/c w^i=wi/c,其中 w i w_i wi是权重,c是来自He初始值设定项的每层归一化常数(He等人,2015)。动态地而不是在初始化过程中这样做的好处有些微妙,这与常用的自适应随机梯度下降方法(如RMSProp(Tieleman&Hinton,2012)和Adam(Kingma&Ba,2015))中的尺度不变性有关。这些方法通过其估计的标准差将梯度更新归一,从而使更新与参数的规模无关。因此,如果一些参数的动态范围比其他参数大,它们将需要更长的时间来调整。这是现代初始化器造成的情况,因此有可能一个学习率同时过大和过小。我们的方法确保动态范围,也就是学习速度,对所有权重都是一样的。van Laarhoven(2017)也独立使用了类似的推理。
4.2 PIXELWISE FEATURE VECTOR NORMALIZATION IN GENERATOR
为了不允许出现生成器和鉴别器中的幅度因竞争而失控的情况,我们在每个卷积层之后将生成器中每个像素的特征向量归一到单位长度。我们使用 "局部响应归一化 "的变体(Krizhevsky等人,2012)来做这件事,配置为 b x , y = a x , y / 1 N Σ j = 0 N − 1 ( a x , y j ) 2 + ϵ , w h e r e ϵ = 1 0 − 8 b_{x,y}=a_{x,y}/\sqrt{\frac{1}{N}\Sigma^{N-1}_{j=0}(a_{x,y}^j)^2+\epsilon},where\ \epsilon=10^{-8} bx,y=ax,y/N1Σj=0N−1(ax,yj)2+ϵ,where ϵ=10−8,N是特征图的数量,ax,y和bx,y分别是像素(x,y)中的原始和归一化特征向量。我们发现令人惊讶的是,这种强硬的约束似乎并没有对生成器造成任何伤害,事实上对于大多数数据集来说,它并没有对结果造成多大的改变,但是在需要的时候,它可以非常有效地防止信号量级的升级。
5 MULTI-SCALE STATISTICAL SIMILARITY FOR ASSESSING GAN RESULTS
为了比较一个GAN与另一个GAN的结果,人们需要调查大量的图像,这可能是乏味的、困难的和主观的。因此,最好是依靠自动方法,从大型图像集合中计算出一些指示性指标。我们注意到,现有的方法如MS-SSIM(Odena等人,2017)可靠地找到了大规模的模式塌陷,但未能对较小的影响作出反应,如颜色或纹理的变化损失,而且它们也没有直接评估图像质量与训练集的相似性。
论文地址:https://arxiv.org/pdf/1710.10196.pdf