标题:Progressive Growing of GANs for Improved Quality, Stability, and Variation
链接:[1710.10196] Progressive Growing of GANs for Improved Quality, Stability, and Variation (arxiv.org)
摘要
我们描述了一种新的生成对抗网络(GANs)训练方法。关键思想是逐步地使生成器和判别器增长:从低分辨率开始,随着训练的进行,我们添加新的层(layer),这些层模拟了越来越精细的细节。这不仅加速了训练过程,还极大地稳定了训练过程,使我们能够生成前所未有质量的图像,例如 102 4 2 1024^2 10242分辨率的CELEBA图像。我们还提出了一种简单的方法来增加生成图像的变化,并在无监督的CIFAR10数据集中实现了创纪录的 8.80 8.80 8.80的Inception分数。
此外,我们描述了一些对于防止生成器和判别器之间不健康的竞争很重要的实现细节。最后,我们提出了一种用于评估GAN结果的新指标,既涉及图像质量又涉及变化。作为额外的贡献,我们构建了一个更高质量的CELEBA数据集版本。
1 引言
生成方法用于从高维数据分布(例如图像)中产生新样本,正在广泛应用于语音合成(van den Oord等,2016a)、图像转换(Zhu等,2017;Liu等,2017;Wang等,2017)和图像修复(Iizuka等,2017)等领域。目前,最突出的方法包括自回归模型(van den Oord等,2016b;c)、变分自编码器(VAE)(Kingma和Welling,2014)和生成对抗网络(GAN)(Goodfellow等,2014)。目前,它们都有显著的优势和劣势。自回归模型(如PixelCNN)可以生成清晰的图像,但评估速度较慢,并且由于直接模拟像素上的条件分布,它们没有潜在表示,这可能限制了它们的适用性。VAE易于训练,但由于模型的限制,往往会产生模糊的结果,尽管近期的工作正在改进这一点(Kingma等,2016)。GAN可以生成清晰的图像,尽管仅限于相对较小的分辨率,并且变化有些有限,尽管近期取得了进展,训练仍然不稳定(Salimans等,2016;Gulrajani等,2017;Berthelot等,2017;Kodali等,2017)。混合方法结合了这三种方法的各种优势,但在图像质量方面仍落后于GAN(Makhzani和Frey,2017;Ulyanov等,2017;Dumoulin等,2016)。
通常情况下,GAN由两个网络组成:生成器和判别器(也称为评论家)。生成器从潜在编码生成样本,例如图像,这些图像的分布理想情况下应与训练分布不可区分。由于通常不可能设计一个函数来判断是否为这种情况,因此训练一个判别器网络来进行评估。由于网络可微分,我们还可以获得梯度,以引导两个网络朝着正确的方向进行调整。通常,生成器是主要关注的对象,判别器是一个自适应的损失函数,在生成器训练完成后就会被丢弃。
这种表述存在多个潜在问题。当我们衡量训练分布和生成分布之间的距离时,如果这些分布没有实质性的重叠,即很容易区分开(Arjovsky和Bottou,2017),梯度可能指向更多或更少的随机方向。最初,Jensen-Shannon散度被用作距离度量(Goodfellow等,2014),近期这种表述已经得到改进(Hjelm等,2017),并且已经提出了许多更稳定的替代方法,包括最小二乘(Mao等,2016b)、带边际的绝对偏差(Zhao等,2017)和Wasserstein距离(Arjovsky等,2017;Gulrajani等,2017)。我们的贡献在很大程度上与这个持续的讨论无关,我们主要使用改进的Wasserstein损失,但也尝试了最小二乘损失。
由于更高的分辨率使得容易区分生成的图像与训练图像(Odena等,2017),因此严重放大了梯度问题,生成高分辨率图像变得困难。由于内存限制,大分辨率还需要使用较小的小批量,进一步影响训练的稳定性。我们的关键洞察是,我们可以逐步地使生成器和判别器增长,从容易的低分辨率图像开始,随着训练的进行,添加新的层,引入更高分辨率的细节。这极大地加速了训练,并提高了高分辨率图像的稳定性,我们将在第2节中讨论。
GAN的表述并不明确要求生成模型代表整个训练数据分布。传统观点认为图像质量和变化之间存在权衡,但这一观点最近受到了挑战(Odena等,2017)。当前正在关注保留的变化程度,已经提出了各种方法来衡量它,包括Inception分数(Salimans等,2016)、多尺度结构相似性(MS-SSIM)(Odena等,2017;Wang等,2003)、生日悖论(Arora和Zhang,2017)以及显式测试发现的离散模式数量(Metz等,2016)。我们将在第3节中描述鼓励变化的方法,并在第5节中提出用于评估质量和变化的新指标。
第4.1节讨论了对网络初始化的微小修改,以实现不同层之间更平衡的学习速度。此外,我们观察到通常困扰GAN的模式崩溃往往发生得非常快,仅在几十个小批量内。通常,它们在判别器超调时开始,导致梯度夸张,然后会出现不健康的竞争,两个网络中的信号幅度升高。我们提出了一种机制来阻止生成器参与这种升级,克服了这个问题(第4.2节)。
我们使用CELEBA、LSUN、CIFAR10数据集来评估我们的贡献。我们改进了CIFAR10的最佳发布Inception分数。由于在基准生成方法中通常使用的数据集分辨率较低,我们还创建了一个更高质量的CELEBA数据集版本,允许在输出分辨率高达1024×1024像素进行实验。该数据集和我们的完整实现可在 https://github.com/tkarras/progressive_growing_of_gans 找到,训练好的网络可在 https://drive.google.com/open?id=0B4qLcYyJmiz0NHFULTdYc05lX0U 找到,同时附带结果图像,以及一个说明性视频,展示了数据集、附加结果和潜在空间插值,地址为 https://youtu.be/G06dEcZ-QTg 。
2 逐步增长的生成对抗网络
我们的主要贡献是一种生成对抗网络(GANs)的训练方法,我们从低分辨率图像开始,逐步增加分辨率,通过向网络添加层,如图1所示。这种渐进的方式使得训练首先可以发现图像分布的大尺度结构,然后将注意力转移到越来越细的尺度细节,而不是必须同时学习所有尺度。
我们使用生成器和判别器网络,它们是彼此的镜像,始终同步增长。在整个训练过程中,两个网络中的所有现有层都保持可训练状态。当向网络添加新层时,我们会平滑地将它们淡入,如图2所示。这避免了对已经训练得很好的较小分辨率层造成突然的冲击。附录A详细描述了生成器和判别器的结构,以及其他训练参数。
我们观察到,渐进式训练有几个好处。早期,生成较小图像的稳定性要更高,因为这里的类别信息较少,模式也较少(Odena等,2017)。通过逐渐增加分辨率,与从潜在向量到例如1024^2图像的最终目标相比,我们一直在持续地提出一个更简单的问题。这种方法在概念上与Chen和Koltun(2017)最近的工作有相似之处。在实践中,它稳定了训练,使我们能够使用WGAN-GP损失(Gulrajani等,2017)甚至LSGAN损失(Mao等,2016b)可靠地合成百万像素级别的图像。另一个好处是减少的训练时间。通过逐步增长的GANs,在较低分辨率下完成大部分迭代,通常可以在2-6倍的速度上获得相当的结果质量,具体取决于最终的输出分辨率。
渐进增长GANs的思想与Wang等(2017)的工作相关,他们使用多个判别器来操作不同的空间分辨率。这项工作受到Durugkar等(2016)的启发,后者同时使用一个生成器和多个判别器,以及Ghosh等(2017),他们使用多个生成器和一个判别器。分层GANs(Denton等,2015;Huang等,2016;Zhang等,2017)为图像金字塔的每个层级定义一个生成器和判别器。这些方法建立在与我们工作相同的观察基础上,即从潜在向量到高分辨率图像的复杂映射在逐步学习中更容易实现,但关键的区别是我们只有一个单一的GAN,而不是一系列的GAN层级。与早期关于自适应增长网络的工作相反,例如自适应增长神经气体(Fritzke,1995)和增强拓扑的神经进化(Stanley和Miikkulainen,2002),这些方法会贪婪地增加网络,我们只是延迟引入预配置的层。在这种意义上,我们的方法类似于自编码器的逐层训练(Bengio等,2007)。
3 使用小批量标准差增加变化
生成对抗网络(GANs)往往只能捕捉到训练数据中的一个子集的变化,Salimans等人(2016)提出了“小批量区分”作为解决方案。他们不仅从单个图像计算特征统计信息,还从小批量中计算,从而鼓励生成和训练图像的小批量显示类似的统计信息。这是通过在判别器末尾添加一个小批量层来实现的,该层学习一个大张量,将输入激活投影到一组统计数据中。对于小批量中的每个示例,都会生成一组单独的统计数据,并将其连接到层的输出,以便判别器可以在内部使用这些统计数据。我们在极大地简化了这个方法的同时,也改善了变化。
我们的简化解决方案既没有可学习的参数,也没有新的超参数。我们首先计算每个空间位置上的每个特征在小批量上的标准差。然后,我们将这些估计值在所有特征和空间位置上平均,得到一个单一的值。我们复制这个值,并将它连接到所有的空间位置和小批量上,从而产生一个额外的(恒定的)特征图。这个层可以插入到判别器的任何位置,但我们发现将其插入到末尾是最好的(详见附录A.1)。我们尝试了更丰富的统计数据集,但未能进一步改善变化。在平行的工作中,Lin等人(2017)就向判别器显示多个图像的益处提供了理论洞察。
解决变化问题的其他方法包括展开判别器(Metz等人,2016)以规范其更新,以及添加“排斥正则化器”(Zhao等人,2017)到生成器中,试图鼓励生成器在小批量中使特征向量正交。Ghosh等人(2017)的多个生成器也有类似的目标。我们承认,这些解决方案可能会进一步增加变化,甚至可能与我们的解决方案正交,但将详细的比较留待以后。
4 生成器和判别器中的标准化
生成对抗网络(GANs)容易因为两个网络之间的不健康竞争而导致信号幅度的升级。大多数情况下,如果不是全部情况,以前的解决方案都会使用批归一化的变体(Ioffe&Szegedy,2015;Salimans&Kingma,2016;Ba等,2016)在生成器中使用,通常也会在判别器中使用。这些归一化方法最初是引入的,以消除协变量偏移。然而,在GAN中,我们并没有观察到这是一个问题,因此我们认为GAN中的实际需求是约束信号幅度和竞争。我们使用了一个包含两个成分的不同方法,其中都没有可学习的参数。
4.1 均衡学习率
我们不同于当前谨慎权重初始化的趋势,而是使用了一个简单的 N ( 0 , 1 ) N(0, 1) N(0,1)初始化,然后在运行时明确地缩放权重。准确地说,我们设置 w ^ i = w i / c ŵ_i = w_i/c w^i=wi/c,其中 w i w_i wi是权重, c c c是来自He的初始化器(He等,2015)的每层归一化常数。之所以在运行时而不是在初始化时执行这个操作的好处,有些微妙,与常用的自适应随机梯度下降方法(例如RMSProp(Tieleman&Hinton,2012)和Adam(Kingma&Ba,2015))中的尺度不变性有关。这些方法通过其估计的标准差来归一化梯度更新,从而使更新独立于参数的尺度。因此,如果某些参数的动态范围大于其他参数,它们将需要更长时间来调整。这是现代初始化器引起的情况,因此可能学习率同时过大和过小。我们的方法确保所有权重的动态范围以及学习速度都相同。Van Laarhoven(2017)也独立地使用了类似的推理。
4.2 生成器中的像素特征向量标准化
为了防止生成器和判别器中的幅度因竞争而失控的情况,我们在每个卷积层后将生成器中每个像素的特征向量归一化为单位长度。我们使用一种“局部响应归一化”的变体(Krizhevsky等人,2012),配置为
b x , y = a x , y 1 N ∑ j = 0 N − 1 ( a x , y j ) 2 + ε b_{x,y} = \frac {a_{x,y}} {\sqrt {\frac{1}{N} \sum_{j=0}^{N-1}(a^j_{x,y}) ^ 2 + ε}} bx,y=N1∑j=0N−1(ax,yj)2+ε ax,y
其中 ε = 1 0 − 8 ε = 10^{-8} ε=10−8, N N N是特征图的数量, a x , y a_{x,y} ax,y和 b x , y b_{x,y} bx,y分别是像素 ( x , y ) (x,y) (x,y)中的原始和归一化特征向量。令人惊讶的是,这种严格的约束似乎并没有以任何方式损害生成器,实际上在大多数数据集上它并没有太大地改变结果,但在需要时它能够非常有效地防止信号幅度的升级。
5 用于评估GAN结果的多尺度统计相似性
为了将一个GAN的结果与另一个进行比较,需要调查大量图像,这可能是繁琐、困难且主观的。因此,希望能依赖于自动化方法,从大型图像集合中计算出一些指示性的度量。我们注意到,现有方法,如多尺度结构相似性(MS-SSIM)(Odena等人,2017),能够可靠地发现大尺度的模式崩溃,但无法对颜色或纹理变化的较小效果做出反应,它们也不能直接从与训练集的相似性来评估图像质量。
我们基于这样的直觉构建,即一个成功的生成器会产生出样本,其局部图像结构在所有尺度上都类似于训练集。我们提出通过考虑从生成和目标图像的拉普拉斯金字塔(Burt&Adelson,1987)表示中提取的局部图像块的分布之间的多尺度统计相似性来研究这一点,从16×16像素的低通分辨率开始。按照标准做法,该金字塔逐渐倍增,直到达到完整的分辨率,每个连续的层级编码到前一层级的上采样版本的差异。
一个单一的拉普拉斯金字塔级别对应于特定的空间频率带。我们随机采样了16384张图像,并从拉普拉斯金字塔的每个级别中提取了128个描述符,为每个级别给出了 2 21 2^{21} 221(2.1M)个描述符。每个描述符是一个带有3个颜色通道的 7 × 7 7×7 7×7像素邻域,用 x ∈ R 7 × 7 × 3 = R 147 x ∈ R^{7×7×3} = R^{147} x∈R7×7×3=R147表示。我们将训练集和生成集中级别 l l l的图像块分别表示为 { x i l } i = 1 2 21 \{x^l_i\}^{2^{21}}_{i=1} {xil}i=1221 和 { x i l } i = 1 2 21 \{x^l_i\}^{2^{21}}_{i=1} {xil}i=1221 ,我们首先根据每个颜色通道的均值和标准差对 { x i l } \{x^l_i\} {xil} 和 { y i l } \{y^l_i\} {yil} 进行归一化,然后通过计算它们的切片Wasserstein距离 S W D ( { x i l } { y i l } ) SWD(\{x^l_i\}\{y^l_i\}) SWD({xil}{yil}) 来估计统计相似性,这是对移动距离的有效可计算随机估计,使用512个投影(Rabin等人,2011)。
直观地,小的Wasserstein距离表明图像块的分布是相似的,这意味着训练图像和生成样本在这个空间分辨率上看起来在外观和变化方面都相似。特别是,从最低分辨率的 16 × 16 16×16 16×16图像中提取的块集之间的距离指示了大尺度图像结构的相似性,而最细级别的块则编码了有关像素级属性(如边缘的清晰度和噪声)的信息。
6 实验
本节讨论了我们进行的一系列实验,以评估我们结果的质量。有关网络结构和训练配置的详细描述,请参见附录A。我们还邀请读者查阅附带的视频( https://youtu.be/G06dEcZ-QTg )以获取更多的结果图像和潜在空间插值。
在本节中,我们将区分网络结构(例如,卷积层,调整大小)、训练配置(各种规范化层,与小批量相关的操作)以及训练损失(WGAN-GP,LSGAN)。
6.1 通过统计相似性评估各项贡献的重要性
首先,我们将使用切片Wasserstein距离(SWD)和多尺度结构相似性(MS-SSIM)(Odena等人,2017)来评估我们各个贡献的重要性,并对度量本身进行感知验证。我们将在先前的状态-of-the-art损失函数(WGAN-GP)和训练配置(Gulrajani等人,2017)的基础上进行构建,以无监督的方式使用CELEBA(Liu等人,2015)和LSUN BEDROOM(Yu等人,2015)数据集进行1282分辨率的测试。 CELEBA特别适合此类比较,因为训练图像包含难以忠实地再现的明显伪影(混叠、压缩、模糊等)。在此测试中,我们通过选择相对低容量的网络结构(附录A.2)并在将总共显示给判别器的真实图像数量达到1000万时终止训练,放大了训练配置之间的差异。因此,结果尚未完全收敛。
表1列出了几种训练配置中的SWD和MS-SSIM的数值,在基线(Gulrajani等人,2017)之上逐步启用我们的各个贡献。 MS-SSIM数字是从10000对生成的图像中平均得出的,而SWD是如第5节所述计算得出的。这些配置生成的CELEBA图像显示在图3中。由于篇幅限制,该图只显示了表中每行的一小部分示例,但在附录H中提供了更广泛的示例。直观上,一个好的评估指标应该奖励在颜色、纹理和视角方面表现出丰富变化的合理图像。然而,MS-SSIM没有捕捉到这一点:我们可以立即看出配置(h)生成的图像明显比配置(a)更好,但MS-SSIM基本保持不变,因为它仅测量输出之间的变化,而不是与训练集的相似性。另一方面,SWD确实表明了明显的改进。
第一个训练配置(a)对应于Gulrajani等人(2017),其中生成器中有批归一化,判别器中有层归一化,小批量大小为64。 (b) 启用了网络的逐步增长,导致更锐利、更可信的输出图像。SWD正确地发现生成图像的分布更类似于训练集。我们的主要目标是实现高分辨率输出,这需要减小小批量的大小,以使其适应可用的内存预算。我们在©中展示了随着小批量大小从64减小到16所带来的挑战。生成的图像是不自然的,这在两个指标中都明显可见。在(d)中,我们通过调整超参数以及去除批归一化和层归一化(附录A.2)来稳定训练过程。作为中间测试(e∗),我们启用了小批量判别(Salimans等人,2016),令人惊讶的是,它在任何指标上都没有改善,包括衡量输出变化的MS-SSIM。相反,我们的小批量标准差(e)提高了平均SWD分数和图像质量。然后,在(f)和(g)中启用了我们的其他贡献,从而在SWD和主观视觉质量方面都取得了改进。最后,在(h)中,我们使用非缩减的网络和更长的训练 - 我们认为生成的图像质量至少与迄今为止发表的最佳结果相当。
6.2 收敛和训练速度
图4说明了在SWD指标和原始图像吞吐量方面,逐步增长对训练的影响。前两个图对应于Gulrajani等人(2017)的训练配置,没有逐步增长和有逐步增长。我们观察到,逐步增长变体提供了两个主要优势:它收敛到更好的极值,并且将总训练时间减少了约两倍。改进的收敛性是通过逐渐增加网络容量所实施的一种隐式的课程学习来解释的。没有逐步增长,生成器和判别器的所有层都要同时为大尺度变化和小尺度细节找到简洁的中间表示。然而,通过逐步增长,现有的低分辨率层在早期可能已经收敛,因此网络只需要通过引入新层来逐渐减小尺度效应来精炼表示。的确,我们可以在图4(b)中看到最大尺度统计相似性曲线(16)非常快速地达到其最佳值,并在其余训练的过程中保持一致。较小尺度的曲线(32、64、128)随着分辨率的增加逐一趋于平稳,但每个曲线的收敛都同样一致。在图4(a)中,非逐步增长训练中,每个尺度的SWD指标大致同时收敛,这是可以预期的。
逐步增长的加速度随着输出分辨率的增加而增加。图4©显示了在训练过程中,以显示给判别器的真实图像数量为衡量标准,当训练一直进行到1024 × 1024分辨率时的训练时间的情况。我们可以看到,逐步增长变体因为网络在开始时是浅层且快速评估,所以获得了显著的起步优势。一旦达到完整分辨率,两种方法之间的图像吞吐量是相等的。图表显示,逐步变体在96小时内达到了大约640万张图像,而可以推测,非逐步变体将花费大约520小时才能达到相同的程度。在这种情况下,逐步增长提供了大约5.4倍的加速度。
6.3 使用CELEBA-HQ数据集生成高分辨率图像
为了有意义地展示高输出分辨率下的结果,我们需要一个足够多样且高质量的数据集。然而,先前在GAN文献中使用的几乎所有公开数据集都限制在相对较低的分辨率范围内,从322到4802不等。为此,我们创建了一个高质量版本的CELEBA数据集,由30000张1024 × 1024分辨率的图像组成。有关创建此数据集的更多细节,请参见附录C。我们的贡献使我们能够以稳健且高效的方式处理高输出分辨率。
图5显示了我们的网络生成的选定1024 × 1024图像。虽然在另一个数据集(Marchesi,2017)中已经展示过百万像素GAN结果,但我们的结果更加多样且具有更高的视觉质量。更多的结果图像以及从训练数据中找到的最近邻示例,请参阅附录F。随附的视频展示了潜在空间插值并可视化了逐步训练。插值的工作方式是首先为每个帧随机生成一个潜在编码(从N(0,1)中单独采样的512个分量),然后使用高斯(σ = 45帧@60Hz)在时间上模糊潜在变量,最后将每个向量归一化为超球面上的向量。
我们使用8台Tesla V100 GPU对网络进行了4天的训练,在此之后,我们不再观察到连续训练迭代的结果有质量上的差异。我们的实现根据当前输出分辨率使用自适应小批量大小,以便最佳地利用可用内存预算。
为了证明我们的贡献在很大程度上与损失函数的选择无关,我们还使用了LSGAN损失而不是WGAN-GP损失对同一网络进行了训练。图1显示了使用LSGAN生成的六个10242图像的示例。有关此设置的更多细节,请参见附录B。
6.4 LSUN的结果
图6在视觉上比较了我们的解决方案与先前在LSUN BEDROOM中的结果。图7从2562的七个非常不同的LSUN类别中选择了一些示例。来自所有30个LSUN类别的更大、非精选的结果集在附录G中提供,视频演示了插值。我们不知道在这些类别中有哪些先前的结果,尽管有些类别效果比其他类别更好,但我们认为总体质量较高。
6.5 CIFAR10的Inception分数
我们知道CIFAR10(32 × 32的RGB图像的10个类别)的最佳Inception分数是7.90,而标签条件设置的分数是8.87(Grinblat等人,2017)。两个数字之间的巨大差异主要是由于在无监督设置中必然出现的“幽灵”(即类别之间的过渡)而引起的,而标签条件设置可以消除许多这样的过渡。
当启用我们的所有贡献时,我们在无监督设置下得到了8.80的分数。附录D展示了一组生成图像的代表性示例,以及早期方法的更全面的结果列表。网络和训练设置与CELEBA相同,当然,分辨率限制在32 × 32。唯一的定制是WGAN-GP的正则化项 KaTeX parse error: Got function '\hat' with no arguments as subscript at position 14: E_{\hat{x}∼P_\̲h̲a̲t̲{x}}[(||∇\hat{x… 。Gulrajani等人(2017)使用了 γ = 1.0 γ = 1.0 γ=1.0 ,这对应于1-Lipschitz,但我们注意到实际上最好是优先选择快速过渡( γ = 750 γ = 750 γ=750),以最小化“幽灵”。我们没有尝试在其他数据集上使用这个技巧。
7 讨论
虽然与GANs以前的工作相比,我们的结果质量通常较高,并且在高分辨率下的训练是稳定的,但要达到真正的逼真程度还有很长的路要走。语义上的合理性和理解数据集特定的约束,比如某些物体是直的而不是弯曲的,仍有很大的改进空间。图像的微观结构也有提升的空间。尽管如此,我们认为令人信服的逼真感现在可能已经近在眼前,特别是在CELEBA-HQ数据集中。
8 致谢
我们要感谢Mikael Honkavaara、Tero Kuosmanen和Timi Hietanen提供的计算基础设施。Dmitry Korobchenko和Richard Calderwood为CELEBA-HQ数据集相关工作所做的努力。Oskar Elek、Jacob Munkberg和Jon Hasselgren为有益的评论。
REFERENCES
-
Martin Arjovsky and L´eon Bottou. Towards principled methods for training generative adversarial networks. In ICLR, 2017.
-
Martin Arjovsky, Soumith Chintala, and L´eon Bottou. Wasserstein GAN. CoRR, abs/1701.07875, 2017.
-
Sanjeev Arora and Yi Zhang. Do GANs actually learn the distribution? an empirical study. CoRR, abs/1706.08224, 2017.
-
Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E. Hinton. Layer normalization. CoRR, abs/1607.06450, 2016.
-
Yoshua Bengio, Pascal Lamblin, Dan Popovici, and Hugo Larochelle. Greedy layer-wise training of deep networks. In NIPS, pp. 153–160. 2007.
-
David Berthelot, Tom Schumm, and Luke Metz. BEGAN: Boundary equilibrium generative adversarial networks. CoRR, abs/1703.10717, 2017.
-
Peter J. Burt and Edward H. Adelson. Readings in computer vision: Issues, problems, principles, and paradigms. Chapter: The Laplacian Pyramid As a Compact Image Code, pp. 671–679. 1987.
-
Qifeng Chen and Vladlen Koltun. Photographic image synthesis with cascaded refinement networks. CoRR, abs/1707.09405, 2017.
-
Zihang Dai, Amjad Almahairi, Philip Bachman, Eduard H. Hovy, and Aaron C. Courville. Calibrating energy-based generative adversarial networks. In ICLR, 2017.
-
Emily L. Denton, Soumith Chintala, Arthur Szlam, and Robert Fergus. Deep generative image models using a Laplacian pyramid of adversarial networks. CoRR, abs/1506.05751, 2015.
-
Vincent Dumoulin, Ishmael Belghazi, Ben Poole, Alex Lamb, Martin Arjovsky, Olivier Mastropietro, and Aaron Courville. Adversarially learned inference. CoRR, abs/1606.00704, 2016.
-
Ishan P. Durugkar, Ian Gemp, and Sridhar Mahadevan. Generative multi-adversarial networks. CoRR, abs/1611.01673, 2016.
-
Bernd Fritzke. A growing neural gas network learns topologies. In Advances in Neural Information Processing Systems 7, pp. 625–632. 1995.
-
Arnab Ghosh, Viveka Kulharia, Vinay P. Namboodiri, Philip H. S. Torr, and Puneet Kumar Dokania. Multi-agent diverse generative adversarial networks. CoRR, abs/1704.02906, 2017.
-
Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative Adversarial Networks. In NIPS, 2014.
-
Guillermo L. Grinblat, Lucas C. Uzal, and Pablo M. Granitto. Class-splitting generative adversarial networks. CoRR, abs/1709.07359, 2017.
-
Ishaan Gulrajani, Faruk Ahmed, Mart´ın Arjovsky, Vincent Dumoulin, and Aaron C. Courville. Improved training of Wasserstein GANs. CoRR, abs/1704.00028, 2017.
-
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. CoRR, abs/1502.01852, 2015.
-
Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler, and Sepp Hochreiter. GANs trained by a two time-scale update rule converge to a local Nash equilibrium. In NIPS, pp. 6626–6637. 2017.
-
R Devon Hjelm, Athul Paul Jacob, Tong Che, Kyunghyun Cho, and Yoshua Bengio. Boundary-Seeking Generative Adversarial Networks. CoRR, abs/1702.08431, 2017.
-
Xun Huang, Yixuan Li, Omid Poursaeed, John E. Hopcroft, and Serge J. Belongie. Stacked generative adversarial networks. CoRR, abs/1612.04357, 2016.
-
Satoshi Iizuka, Edgar Simo-Serra, and Hiroshi Ishikawa. Globally and locally consistent image completion. ACM Trans. Graph., 36(4):107:1–107:14, 2017.
-
Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. CoRR, abs/1502.03167, 2015.
-
Diederik P. Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.
-
Diederik P. Kingma and Max Welling. Auto-encoding variational Bayes. In ICLR, 2014.
-
Diederik P Kingma, Tim Salimans, Rafal Jozefowicz, Xi Chen, Ilya Sutskever, and Max Welling. Improved variational inference with inverse autoregressive flow. In NIPS, volume 29, pp. 4743–4751. 2016.
-
Naveen Kodali, Jacob D. Abernethy, James Hays, and Zsolt Kira. How to train your DRAGAN. CoRR, abs/1705.07215, 2017.
-
Dmitry Korobchenko and Marco Foco. Single image super-resolution using deep learning, 2017. URL: https://gwmt.nvidia.com/super-res/about. Machines Can See summit.
-
Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, pp. 1097–1105. 2012.
-
Christian Ledig, Lucas Theis, Ferenc Huszar, Jose Caballero, Andrew P. Aitken, Alykhan Tejani, Johannes Totz, Zehan Wang, and Wenzhe Shi. Photo-realistic single image super-resolution using a generative adversarial network. CoRR, abs/1609.04802, 2016.
-
Zinan Lin, Ashish Khetan, Giulia Fanti, and Sewoong Oh. PacGAN: The power of two samples in generative adversarial networks. CoRR, abs/1712.04086, 2017.
-
Ming-Yu Liu, Thomas Breuel, and Jan Kautz. Unsupervised image-to-image translation networks. CoRR, abs/1703.00848, 2017.
-
Ziwei Liu, Ping Luo, Xiaogang Wang, and Xiaoou Tang. Deep learning face attributes in the wild. In ICCV, 2015.
-
Alireza Makhzani and Brendan J. Frey. PixelGAN autoencoders. CoRR, abs/1706.00531, 2017.
-
Xiao-Jiao Mao, Chunhua Shen, and Yu-Bin Yang. Image restoration using convolutional autoencoders with symmetric skip connections. CoRR, abs/1606.08921, 2016a.
-
Xudong Mao, Qing Li, Haoran Xie, Raymond Y. K. Lau, and Zhen Wang. Least squares generative adversarial networks. CoRR, abs/1611.04076, 2016b.
-
Marco Marchesi. Megapixel size image creation using generative adversarial networks. CoRR, abs/1706.00082, 2017.
-
Luke Metz, Ben Poole, David Pfau, and Jascha Sohl-Dickstein. Unrolled generative adversarial networks. CoRR, abs/1611.02163, 2016.
-
Augustus Odena, Christopher Olah, and Jonathon Shlens. Conditional image synthesis with auxiliary classifier GANs. In ICML, 2017.
-
Julien Rabin, Gabriel Peyr, Julie Delon, and Marc Bernot. Wasserstein barycenter and its application to texture mixing. In Scale Space and Variational Methods in Computer Vision (SSVM), pp. 435–446, 2011.
-
Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. CoRR, abs/1511.06434, 2015.
-
Tim Salimans and Diederik P. Kingma. Weight normalization: A simple reparameterization to accelerate training of deep neural networks. CoRR, abs/1602.07868, 2016.
-
Tim Salimans, Ian J. Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, and Xi Chen. Improved techniques for training GANs. In NIPS, 2016.
-
Kenneth O. Stanley and Risto Miikkulainen. Evolving neural networks through augmenting topologies. Evolutionary Computation, 10(2):99–127, 2002.
-
Tijmen Tieleman and Geoffrey E. Hinton. Lecture 6.5 - RMSProp. Technical report, COURSERA: Neural Networks for Machine Learning, 2012.
-
Dmitry Ulyanov, Andrea Vedaldi, and Victor S. Lempitsky. Adversarial generator-encoder networks. CoRR, abs/1704.02304, 2017.
-
A¨aron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew W. Senior, and Koray Kavukcuoglu. WaveNet: A generative model for raw audio. CoRR, abs/1609.03499, 2016a.
-
A¨aron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural networks. In ICML, pp. 1747–1756, 2016b.
-
A¨aron van den Oord, Nal Kalchbrenner, Oriol Vinyals, Lasse Espeholt, Alex Graves, and Koray Kavukcuoglu. Conditional image generation with PixelCNN decoders. CoRR, abs/1606.05328, 2016c.
-
Twan van Laarhoven. L2 regularization versus batch and weight normalization. CoRR, abs/1706.05350, 2017.
-
Ting-Chun Wang, Ming-Yu Liu, Jun-Yan Zhu, Andrew Tao, Jan Kautz, and Bryan Catanzaro. High-resolution image synthesis and semantic manipulation with conditional GANs. CoRR, abs/1711.11585, 2017.
-
Zhou Wang, Eero P. Simoncelli, and Alan C. Bovik. Multi-scale structural similarity for image quality assessment. In Proc. IEEE Asilomar Conf. on Signals, Systems, and Computers, pp. 1398–1402, 2003.
-
David Warde-Farley and Yoshua Bengio. Improving generative adversarial networks with denoising feature matching. In ICLR, 2017.
-
Jianwei Yang, Anitha Kannan, Dhruv Batra, and Devi Parikh. LR-GAN: Layered recursive generative adversarial networks for image generation. In ICLR, 2017.
-
Fisher Yu, Yinda Zhang, Shuran Song, Ari Seff, and Jianxiong Xiao. LSUN: Construction of a large-scale image dataset using deep learning with humans in the loop. CoRR, abs/1506.03365, 2015.
-
Han Zhang, Tao Xu, Hongsheng Li, Shaoting Zhang, Xiaolei Huang, Xiaogang Wang, and Dimitris N. Metaxas. StackGAN: Text to photo-realistic image synthesis with stacked generative adversarial networks. In ICCV, 2017.
-
Junbo Jake Zhao, Micha¨el Mathieu, and Yann LeCun. Energy-based generative adversarial network. In ICLR, 2017.
-
Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. CoRR, abs/1703.10593, 2017.
A 网络结构和训练配置
A.1 用于 CELEBA-HQ 的 1024 × 1024 网络
表2展示了我们在 CELEBA-HQ 数据集上使用的完整分辨率生成器和判别器的网络架构。这两个网络主要由逐步引入的3层复制块组成,训练过程中逐步引入这些块。生成器的最后一个 1 × 1 1 \times 1 1×1 卷积层对应于图2中的 toRGB 块,判别器的第一个 1 × 1 1 \times 1 1×1 卷积层类似地对应于 fromRGB。我们从 4 × 4 4 \times 4 4×4 分辨率开始训练网络,总共向判别器展示了 800k 个真实图像。然后,我们在接下来的 800k 个图像中在第一个 3层块中淡入,再稳定网络 800k 个图像,在接下来的 800k 个图像中淡入下一个 3层块,以此类推。
潜在向量对应于512维超球面上的随机点,我们将训练和生成的图像归一化到 [ − 1 , 1 ] [-1,1] [−1,1] 范围内。在两个网络的所有层中,除了最后一层使用线性激活函数外,都使用了泄漏整流线性单元(Leaky ReLU),泄漏率为0.2。在任何一个网络中,我们都没有使用批归一化、层归一化或权重归一化。但是,在生成器的每个 3 × 3 3 \times 3 3×3 卷积层之后,我们对特征向量进行逐像素归一化,就像第4.2节中所述。
所有偏置参数都初始化为零,并且所有权重按照单位方差的正态分布进行初始化。然而,我们在运行时使用层特定的常数来缩放权重,正如第4.1节所述。我们将在第3节中描述的过程中,在判别器末尾的 4 × 4 4 \times 4 4×4 分辨率处,注入了跨小批量标准差作为额外的特征图。表 2 中的上采样和下采样操作分别对应于 2 × 2 2 \times 2 2×2 元素复制和平均池化,分别。
训练过程中使用 Adam 优化器(Kingma & Ba, 2015),其中 α = 0.001 \alpha = 0.001 α=0.001, β 1 = 0 \beta_1 = 0 β1=0, β 2 = 0.99 \beta_2 = 0.99 β2=0.99, ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=10−8。我们没有使用任何学习率衰减或降低策略。为了在训练过程中可视化生成器的输出,在生成器的权重上使用了指数移动平均,衰减率为0.999。对于分辨率从 4 2 4^2 42 到 12 8 2 128^2 1282 的不同情况,我们使用小批量大小 16,然后逐渐减小大小,分别变为 25 6 2 → 14 256^2 \rightarrow 14 2562→14, 51 2 2 → 6 512^2 \rightarrow 6 5122→6, 102 4 2 → 3 1024^2 \rightarrow 3 10242→3,以避免超出内存预算。
我们使用了 WGAN-GP 损失,但与 Gulrajani 等人(2017年)不同的是,我们在每个小批量上交替优化生成器和判别器,即设置 n critic = 1 n_{\text{critic}} = 1 ncritic=1。此外,我们在判别器损失中引入了第四个项,其权重非常小,以防止判别器输出偏离零太远。准确地说,我们设置 L ′ = L + ϵ drift E x ∈ P r [ D ( x ) 2 ] L' = L + \epsilon_{\text{drift}}E_{x \in P_r} [D(x)^2] L′=L+ϵdriftEx∈Pr[D(x)2],其中 ϵ drift = 0.001 \epsilon_{\text{drift}} = 0.001 ϵdrift=0.001。
A.2 其他网络
对于低于 1024 × 1024 1024 \times 1024 1024×1024 的空间分辨率,我们在两个网络中适当地略去了复制的 3 层块的数量。
此外,在第 6.1 节中,我们使用了稍低容量的版本,在 16 × 16 16 \times 16 16×16 分辨率的 Conv 3 × 3 3 \times 3 3×3 层中减少了特征映射的数量,随后在后续分辨率中减少了4倍。这使得最后一个 Conv 3 × 3 3 \times 3 3×3 层有32个特征映射。在表1和图4中,我们对每个分辨率进行了总共 600k 张图像的训练,而不是 800k 张,并在 600k 张图像的持续时间内淡入新层。
对于表1中的 “Gulrajani 等人(2017年)” 情况,我们尽量遵循他们的训练配置。具体来说,包括 α = 0.0001 \alpha = 0.0001 α=0.0001, β 2 = 0.9 \beta_2 = 0.9 β2=0.9, n critic = 5 n_{\text{critic}} = 5 ncritic=5, ϵ drift = 0 \epsilon_{\text{drift}} = 0 ϵdrift=0,和小批量大小为 64。禁用了渐进式分辨率、小批量标准差以及运行时的权重缩放,所有权重都使用了 He 初始化器(He et al., 2015)。此外,在生成器中,我们用 ReLU 替换了 LReLU,将最后一层的线性激活改为 tanh,将逐像素归一化改为批归一化。在判别器中,对所有 Conv 3 × 3 3 \times 3 3×3 和 Conv 4 × 4 4 \times 4 4×4 层添加了层归一化。潜在向量由从正态分布独立采样的 128 个分量组成。
B 1024 × 1024 的最小二乘生成对抗网络 (Least-Squares GAN, LSGAN)
我们发现 LSGAN 通常比 WGAN-GP 更不稳定,而且在长时间运行结束时也容易失去一些变化。因此,我们更倾向于使用 WGAN-GP,但也通过在 LSGAN 的基础上构建来生成高分辨率图像。例如,图1中的 10242 图像是基于 LSGAN 的。
除了在第 2 至 4 节中描述的技术之外,我们在 LSGAN 中还需要一个额外的“hack”,以防止在数据集对于判别器来说过于简单的情况下训练失控,导致判别器梯度失去意义。我们会根据判别器的输出,自适应地增加判别器中的乘性高斯噪声的幅度。这个噪声会应用于每个 Conv 3 × 3 3 \times 3 3×3 和 Conv 4 × 4 4 \times 4 4×4 层的输入。历史上一直有在判别器中添加噪声的做法,但通常会对图像质量产生负面影响(Arjovsky et al., 2017)。理想情况下是不需要这样做的,而根据我们的测试结果,对于 WGAN-GP(Gulrajani et al., 2017)来说,这是成立的。噪声的幅度由公式 0.2 ⋅ max ( 0 , d ^ t − 0.5 ) 2 0.2 \cdot \max(0, \hat{d}_t - 0.5)^2 0.2⋅max(0,d^t−0.5)2 决定,其中 d ^ t = 0.1 d + 0.9 d ^ t − 1 \hat{d}_t = 0.1d + 0.9\hat{d}_{t-1} d^t=0.1d+0.9d^t−1 是判别器输出 d d d 的指数移动平均。这个“hack”的动机是,当 d d d 接近(或超过)1.0 时,LSGAN 会变得非常不稳定。
C CELEBA-HQ 数据集
在本节中,我们描述了创建高质量版本的 CELEBA 数据集的过程,该数据集包含 30000 张 1024 × 1024 1024 \times 1024 1024×1024 分辨率的图像。作为起点,我们采用了原始 CELEBA 数据集中包含的各种野外图像集合。这些图像在分辨率和视觉质量方面变化极大,从 43 × 55 43 \times 55 43×55 到 6732 × 8984 6732 \times 8984 6732×8984 不等。其中一些图像显示了数人的人群,而其他图像则集中在单个人的面部上 - 往往只是面部的一部分。因此,我们发现有必要应用多种图像处理步骤,以确保一致的质量并将图像居中在面部区域。
我们的处理流程如图8所示。为了提高整体图像质量,我们使用两个预训练的神经网络对每个 JPEG 图像进行预处理:一个卷积自编码器,用于消除自然图像中的 JPEG 噪点,结构类似于 Mao 等人(2016a)的提出的方法;以及一个经过对抗训练的 4x 超分辨率网络(Korobchenko & Foco, 2017),类似于 Ledig 等人(2016)。为了处理面部区域超出图像的情况,我们使用填充和滤波来扩展图像的尺寸,如图8(c-d)所示。
然后,根据原始 CELEBA 数据集中包含的面部标志注释,我们选择一个面部裁剪矩形,具体如下:
x ′ = e 1 − e 0 y ′ = 1 2 ( e 0 + e 1 ) − 1 2 ( m 0 + m 1 ) c = 1 2 ( e 0 + e 1 ) − 0.1 ⋅ y ′ s = max ( 4.0 ⋅ ∣ x ′ ∣ , 3.6 ⋅ ∣ y ′ ∣ ) x = Normalize ( x ′ − Rotate90 ( y ′ ) ) y = Rotate90 ( x ′ ) \begin{align} x' = & e_1 - e_0 \\ y' = & \frac{1}{2} (e_0 + e_1) - \frac{1}{2} (m_0 + m_1) \\ c = & \frac{1}{2} (e_0 + e_1) - 0.1 \cdot y' \\ s = & \max (4.0 \cdot |x'|, 3.6 \cdot |y'|) \\ x = & \text{Normalize} (x' - \text{Rotate90}(y')) \\ y = & \text{Rotate90}(x') \end{align} x′=y′=c=s=x=y=e1−e021(e0+e1)−21(m0+m1)21(e0+e1)−0.1⋅y′max(4.0⋅∣x′∣,3.6⋅∣y′∣)Normalize(x′−Rotate90(y′))Rotate90(x′)
其中, e 0 e_0 e0、 e 1 e_1 e1、 m 0 m_0 m0 和 m 1 m_1 m1 分别表示两个眼睛标志和两个嘴巴标志的 2D 像素位置, c c c 和 s s s 表示所需裁剪矩形的中心和尺寸, x x x 和 y y y 表示其方向。我们通过经验构建了上述公式,以确保在不同角度观察面部时,裁剪矩形保持一致。计算出裁剪矩形后,我们使用双线性滤波将矩形变换为 4096 × 4096 4096 \times 4096 4096×4096 像素,然后使用盒式滤波将其缩放为 1024 × 1024 1024 \times 1024 1024×1024 分辨率。
我们对数据集中的所有 202599 张图像执行上述处理,进一步分析生成的 1024 × 1024 1024 \times 1024 1024×1024 图像以估计最终的图像质量,按照质量对图像进行排序,并丢弃除了最佳的 30000 张图像之外的所有图像。我们使用基于频率的质量度量标准,这有利于包含广泛频率范围并且大致呈径向对称的功率谱的图像。这惩罚了模糊图像以及由于可见的半色调模式等原因具有显著方向特征的图像。我们选择了 30000 张图像作为实际的最佳结果的平衡点,因为这似乎产生了最好的结果。
D CIFAR10 结果
图9展示了在无监督设置下生成的非精选图像,表3则比较了基于 Inception 分数的先前方法。我们以两种不同的方式报告分数:1) 训练运行过程中观察到的最高分数(这里的 ± 表示 Inception 分数计算器返回的标准偏差);2) 从训练中观察到的最高分数中计算的均值和标准偏差,从十个随机初始化开始。可以说,后一种方法更有意义,因为个别运行可能会出现幸运情况(就像我们的情况)。在这个数据集中,我们没有使用任何形式的数据增强。
E MNIST-1K 离散模式测试与丧失能力的判别器
Metz 等人(2016)描述了一个设置,其中生成器同时合成 MNIST 数字到 3 个颜色通道,使用预训练分类器对数字进行分类(在我们的情况下为 0.4% 的错误率),然后连接在一起形成 [0, 999] 范围内的数字。他们生成了总共 25600 张图像,并计算覆盖的离散模式数量。他们还计算 KL 散度,即 KL(直方图 || 均匀分布)。现代 GAN 实现可以在非常低的散度下轻松覆盖所有模式(在我们的情况下为 0.05),因此 Metz 等人指定了一个相当低容量的生成器和两个丧失能力的判别器(“K/2” 约有 2000 个参数,“K/4” 只有约 500 个),以揭示训练方法之间的差异。这两个网络都使用了批归一化。
如表4所示,使用 Metz 等人指定的网络结构以 WGAN-GP 损失覆盖的模式要比原始 GAN 损失多得多,甚至比使用较小的(K/4)判别器的未展开的原始 GAN 更多。KL 散度,这可能是一个比原始计数更准确的指标,效果更好。
将批归一化替换为我们的标准化(均衡学习率、逐像素标准化)显著改善了结果,同时还从判别器中删除了一些可训练参数。添加小批量标准差层进一步改善了分数,同时将判别器的容量恢复到原始容量的 0.5%。对于这些小图像,渐进式方法并没有太大帮助,但也没有损害。
F 额外的 CELEBA-HQ 结果
图10展示了我们生成图像的最近邻。图11给出了来自 CELEBA-HQ 的额外生成示例。我们对使用 CELEBA 和 CELEBA-HQ 进行的所有测试都启用了镜像增强。除了切片 Wasserstein 距离 (SWD) 外,我们还引用了最近引入的 Fréchet Inception 距离 (FID) (Heusel 等人,2017),从 50K 张图像计算而来。
G LSUN 结果
图12-17展示了为所有 30 个 LSUN 类别生成的代表性图像。为每个类别单独训练了一个网络,使用相同的参数。所有类别都使用了 100K 张图像进行训练,除了 BEDROOM 和 DOG,它们使用了所有可用数据。由于对于大多数类别来说,100K 张图像是非常有限的训练数据,因此我们在这些测试中启用了镜像增强(但不适用于 BEDROOM 或 DOG)。
H 表 1 的额外图像
图18展示了表1中非收敛设置的更大集合图像。故意限制训练时间,以使各种方法之间的差异更加明显可见。