StyleGAN论文: 《A Style-Based Generator Architecture for Generative Adversarial Networks》
论文:https://arxiv.org/abs/1812.04948
代码: https://github.com/NVlabs/stylegan
StyleGANv2论文: 《Analyzing and Improving the Image Quality of StyleGAN》
论文:https://arxiv.org/abs/1912.04958
代码: https://github.com/NVlabs/stylegan2
此篇是StyleGANv2。
基于样式的生成对抗网络架构(StyleGAN)在数据驱动的无条件生成图像建模方面取得了最先进的结果。我们揭示并分析了其特征性的一些伪影,并提出了对模型架构和训练方法的改进来解决这些问题。
特别地,我们重新设计了生成器的归一化,重新审视了渐进增长,并对生成器进行正则化,以鼓励从潜在代码到图像的映射具有良好的条件。除了提高图像质量外,这种路径长度正则化器还带来了额外的好处,使得生成器变得更容易反演。这使得我们能够可靠地将生成的图像归因于特定的网络。此外,我们还可视化了生成器如何利用其输出分辨率,并确定了一个容量问题,促使我们训练更大的模型以获得额外的质量改进。总体而言,我们改进的模型在无条件图像建模领域重新定义了现有的分布质量度量以及感知图像质量方面的技术水平。
生成方法,尤其是生成对抗网络(GAN)[16]生成的图像的分辨率和质量正在迅速提高[23, 31, 5]。目前,用于高分辨率图像合成的最先进方法是StyleGAN [24],它已被证明可以可靠地适用于各种数据集。我们的工作集中在修复其特有的伪影并进一步提高结果质量。
StyleGAN [24]的独特之处在于其非传统的生成器架构。它并不只是将输入潜在代码z 2 Z传送到网络的开始,而是首先将其通过映射网络f转换为中间潜在代码。然后,通过自适应实例归一化(AdaIN)[21, 9, 13, 8]通过仿射变换产生控制合成网络g层的样式。
此外,通过向合成网络提供附加的随机噪声映射,有助于实现随机变化。已经证明[24, 38]这种设计使得中间潜在空间W比输入潜在空间Z要少纠缠得多。在本文中,我们仅关注W的所有分析,因为从合成网络的角度来看,它是相关的潜在空间。
许多观察者已经注意到StyleGAN生成的图像中的特征性伪影[3]。我们确定了这些伪影的两个原因,并描述了架构和训练方法上的变化来消除它们。首先,我们研究了常见的斑点状伪影的产生原因,并发现生成器为了规避其架构中的设计缺陷而产生了这些伪影。在第2节中,我们重新设计了生成器中使用的归一化,从而消除了这些伪影。其次,我们分析了与渐进增长[23]相关的伪影,该方法在稳定高分辨率GAN训练方面非常成功。我们提出了一个实现相同目标的替代设计——训练始于低分辨率图像,然后逐渐将焦点转移到更高分辨率——而在训练过程中不改变网络拓扑。这种新设计还使我们能够对生成的图像的有效分辨率进行推理,结果发现它比预期的要低,从而激发了容量增加的动机(第4节)。
对使用生成方法生成的图像质量的定量分析仍然是一个具有挑战性的课题。Frechet Inception Distance(FID)[20]度量了InceptionV3分类器[39]高维特征空间中两个分布的密度差异。
Precision and Recall(P&R)[36, 27]通过明确地量化与训练数据相似的生成图像的百分比以及可以生成的训练数据的百分比,提供了额外的可见性。我们使用这些指标来量化改进。
无论FID还是P&R都基于分类器网络,最近已经证明这些网络更关注纹理而不是形状[12],因此这些度量标准不能准确地捕捉图像质量的所有方面。我们观察到感知路径长度(PPL)度量标准[24],最初被引入作为估计潜在空间插值质量的方法,与形状的一致性和稳定性相关。基于这一点,我们对合成网络进行正则化,以倾向于平滑映射(第3节),并在质量方面取得明显的改进。为了应对其计算开销,我们还提议较不频繁地执行所有正则化,观察到这样做不会影响有效性。
最后,我们发现,通过使用新的、路径长度正则化的StyleGAN2生成器,将图像投影到潜在空间W中的效果要明显好于原始的StyleGAN。这使得更容易将生成的图像归因于其源头(第5节)。
我们的实现和训练模型可在 https://github.com/NVlabs/stylegan2 获取。
我们首先观察到,由StyleGAN生成的大多数图像都展示出类似水滴的特征性伪影。如图1所示,即使在最终图像中水滴可能不明显,它仍存在于生成器的中间特征映射中。这种异常从64×64的分辨率开始出现,在所有特征映射中都存在,并且在更高分辨率下逐渐变得更加明显。这种一致性伪影的存在令人困惑,因为鉴别器应该能够检测到它。
我们将问题指向了AdaIN操作,该操作单独对每个特征映射进行均值和方差归一化,从而可能破坏特征之间幅度相关性中的任何信息。我们假设水滴伪影是生成器有意地通过实例归一化绕过信号强度信息的结果:通过创建一个强烈的局部尖峰来主导统计数据,生成器可以有效地在其他地方按其意愿缩放信号。我们的假设得到了支持,当从生成器中移除归一化步骤(如下所述)时,水滴伪影完全消失。
首先,我们将修改StyleGAN生成器的若干细节,以更好地支持我们重新设计的归一化。
这些变化本身在质量指标方面要么没有影响,要么具有微小的积极作用。
图2a显示了原始的StyleGAN综合网络g [24],图2b则通过显示权重和偏差,并将AdaIN操作分解为其两个组成部分:归一化和调制,将图表扩展到了完整细节。这使我们可以重新绘制概念上的灰色框,以便每个框表示网络中一个样式处于活动状态的部分(即“样式块”)。有趣的是,原始的StyleGAN在样式块内应用了偏差和噪声,从而使它们的相对影响与当前样式的幅度成反比。我们观察到,通过将这些操作移出样式块,它们在规范化数据上运行,可以获得更可预测的结果。此外,我们注意到,在此更改之后,仅对标准偏差进行归一化和调制已足够(即不需要均值)。将偏差、噪声和归一化应用于恒定输入也可以安全地移除,而不会观察到明显的缺陷。此变体如图2c所示,将成为我们重新设计的归一化的起点。
StyleGAN的主要优势之一是通过样式混合来控制生成的图像,即在推断时为不同层提供不同的潜在变量w。
实际上,样式调制可能会使某些特征映射放大一个数量级甚至更多。为了使样式混合正常工作,我们必须在每个样本的基础上明确抵消这种放大效应,否则后续层将无法对数据进行有意义的操作。
如果我们愿意牺牲特定于尺度的控制(见视频),我们可以简单地去除归一化,从而消除伪影,同时还略微改善了FID [27]。
现在,我们将提出一种更好的替代方案,既消除了伪影,又保留了完全可控性。主要思想是基于传入特征映射的期望统计信息进行归一化,但不强制执行。
图2:我们重新设计了StyleGAN综合网络的架构。 (a) 原始的StyleGAN,其中A表示从W学习得到的样式的可学习仿射变换,B是一个噪声广播操作。 (b) 具有完整细节的相同图表。在这里,我们已将AdaIN分解为显式的归一化,然后是调制,两者都在每个特征映射的均值和标准偏差上进行操作。我们还标注了学习得到的权重(w),偏差(b)和恒定输入©,并重新绘制了灰色框,使得每个框中只有一个样式处于活动状态。激活函数(渗漏ReLU)总是在添加偏差后立即应用。© 我们对原始架构进行了几处变更,这些变更在正文中有所解释。我们在开始时删除了一些冗余操作,将b和B的添加移到样式的活动区域之外,并仅调整每个特征映射的标准偏差。(d) 修改后的架构使我们能够用“解调”操作替换实例归一化,我们将这个操作应用于与每个卷积层相关联的权重。
回想一下,在图2c中,一个样式块由调制、卷积和归一化组成。让我们首先考虑调制接着卷积的效果。调制根据传入的样式对卷积的每个输入特征映射进行缩放,这实际上可以通过缩放卷积的权重来实现:
其中,w和w’分别是原始和调制后的权重,si是与第i个输入特征映射相对应的缩放因子,j和k分别枚举卷积的输出特征映射和空间足迹。
现在,实例归一化的目的基本上是从卷积输出特征映射的统计数据中消除s的影响。我们观察到,可以更直接地实现这一目标。假设输入激活是具有单位标准偏差的独立同分布随机变量。经过调制和卷积后,输出激活的标准偏差为:
即,输出是由相应权重的L2范数缩放的。随后的归一化旨在将输出恢复为单位标准偏差。根据方程式2,如果我们通过1/σj来缩放(“解调”)每个输出特征映射j,则可以实现这一目标。或者,我们可以再次将其融入卷积权重中:
其中,ε是一个小常数,用于避免数值问题。
现在,我们已经将整个样式块烘焙到了一个单一的卷积层中,其权重根据s使用方程1和方程3进行调整(图2d)。与实例归一化相比,我们的解调技术较弱,因为它是基于信号的统计假设而不是特征映射的实际内容。类似的统计分析在现代网络初始化器中广泛使用[14, 19],但我们不知道它以前曾被用作依赖数据的归一化的替代方法。我们的解调也与权重归一化[37]相关,后者在对权重张量重新参数化的过程中执行了相同的计算。以前的研究已经确定在GAN训练的背景下,权重归一化是有益的[43]。
我们的新设计消除了特征性伪影(图3),同时保留了完全可控性,如附带的视频所示。FID基本上没有受到影响(表1,A、B行),但精确度和召回率之间有明显的变化。我们认为这通常是可取的,因为可以通过截断将召回率转换为精确度,然而相反的情况并不成立[27]。在实际应用中,我们的设计可以通过使用分组卷积高效实现,详细信息请参见附录B。为了避免在方程3中考虑激活函数,我们对激活函数进行缩放,以保留预期的信号方差。