近日,英伟达公开了 StyleGAN 的 2.0 改进版,提出了对这种生成对抗网络的多项新改进,在解决了生成图像伪影的同时还能得到细节更好的高质量图像。新的改进方案也不会带来更高的计算成本。整体来看,不管是在现有的分布质量指标上,还是在人所感知的图像质量上,新提出的模型都实现了无条件图像建模任务上新的 SOTA。
最近英伟达在 GAN 领域最大的研究突破莫过于 StyleGAN2 了。这一新的研究提升了生成图像的质量,实现了最新的 SOTA。论文公开的同时,英伟达也公开了相关的代码和 Colab 笔记,你可以直接在线使用。
论文:https://arxiv.org/abs/1912.04958
实现和模型:https://github.com/NVlabs/stylegan2
Colab 地址:https://colab.research.google.com/drive/1ShgW6wohEFQtqs_znMna3dzrcVoABKIH
根据笔记本提供的示例代码,我们可以生成诸如汽车、人脸等相关的图像。这些图像和真实图像相比似乎差别不大。
生成的汽车图像。
生成的人脸。
这样的成果是如何实现的呢?以下英伟达论文的详细介绍。
引言
使用生成方法(尤其是生成对抗网络)得到的图像的分辨率和质量都在快速提升。在高分辨率合成任务上的当前最佳方法是 StyleGAN,研究表明其能在多种数据集上可靠地发挥作用。这项研究关注的问题是修复 StyleGAN 的特有伪影以及进一步提升其结果的质量。
StyleGAN 的显著特征是其具有非常规的生成器架构。这种架构不会仅在网络的开始处向其馈送输入隐代码 z ∈ Z,而是其映射网络 f 首先会将其变换成一个中间隐代码 w ∈ W。然后,仿射变换通过自适应实例归一化(AdaIN)得到能控制合成网络 g 的层的风格。另外,其还通过向合成网络提供额外的随机噪声图而提升了随机变化的性能。研究表明,这种设计能让中间的隐空间 W 比输入的隐空间 Z 的纠缠少得多。这篇论文的所有分析都集中在 W 上,因为从合成网络的视角看,它是相关的隐空间。
很多观察者注意到 StyleGAN 生成的图像会有很有特点的伪影。这篇论文给出了产生这些伪影的两个原因,并描述了可以如何通过修改架构和训练方法来消除这些伪影。
第一,研究者研究了常见的斑点状伪影的起源,发现生成器创建它们的原因是为了规避其架构中的设计缺陷。研究者于是重新设计了生成器中所使用的归一化方案,这能够移除伪影。
第二,作者分析了与渐进式增长(progressive growing)相关的伪影,这已经在稳定化高分辨率 GAN 训练中取得了高度成功。研究者提出了另一种无需在训练中修改网络拓扑结构就能实现同样目标的设计——首先以低分辨率图像为重心开始训练,然后将重心逐渐转移到越来越高的分辨率。这种新设计还能推理所生成图像的有效分辨率,事实证明这个有效分辨率低于预期,说明相关研究还有进一步的提升空间。
对于生成方法产生的图像的质量如何进行定量分析?这还依然是一个颇具挑战性的难题。Frechet inception 距离(FID)衡量的是一个 InceptionV3 分类器的高维特征空间中两个分布的密度差异。精确度和召回率(P&R)则提供了额外的可见性,它们的具体方法分别是显式地量化所生成图像与训练数据类似的百分比以及可以被生成的训练数据的百分比。作者使用这些指标对改进情况进行了量化。
FID 和 P&R 都基于近期出现的关注纹理而非形状的分类器网络,由此造成的后果是这些指标无法准确体现图像质量的所有方面。研究者观察到感知路径长度(PPL)指标与形状的一致性和稳定性相关,而该指标最早是为评估隐空间插值的质量而引入的一种方法。基于此,研究者对合成网络进行了正则化处理,以支持平滑的映射和实现明显的质量提升。为了抵消这种方法的计算成本,研究者还提出降低所有正则化的执行频率。实验表明,这种做法其实对效果没什么影响。
最后,作者发现相比于使用原始的 StyleGAN,使用新的路径长度正则化的生成器时,图像到隐含空间 W 的投射的效果要好得多。这在实际应用中是很重要的,因为这让我们可以可靠地辨别给定图像是否是用特定的生成器生成的。
移除归一化伪影
首先来看看 StyleGAN 生成的大多数图像都有类似水滴的斑状伪影。如图 1 所示,即使当水滴在最终图像中并不明显时,它也会出现在生成器的中间特征图中。这种异常在大约 64×64 分辨率时开始出现,并会出现在所有特征图中,还会在分辨率增高时逐渐变强。这种总是存在的伪影很令人困惑,因为判别器本应该有检测它的能力的。
图 1:实例归一化会导致 StyleGAN 图像中出现水滴状的伪影。这在生成的图像中不总是很明显,但如果看看生成器网络内部的激活,这个问题在从 64×64 分辨率开始的所有特征图中总是存在。这是一个有损所有 StyleGAN 图像的系统性问题。
研究者认为问题出在 AdaIN 运算,它可以分别对每个特征图的均值和方差进行归一化,由此可能摧毁特征的幅度中找到的任何彼此相关的信息。研究者假设这种水滴状伪影出现的原因是生成器有意将信号强度信息传递通过实例归一化:通过创建一个主导统计情况的强的局部化尖峰,生成器可以有效地像在其它地方一样扩展该信号。研究者发现,当从生成器移除这个归一化步骤时,这种水滴状伪影会完全消失。
图 2:研究者重新设计了 StyleGAN 合成网络的架构。(a)原始的 StyleGAN,其中 A 是从 W 学习到的一个仿射变换,其会得到一种风格,B 则是一种噪声广播运算。(b)有完整细节的同一方案。这里,AdaIN 已被分解成了之后跟着调制的显式归一化,这两者操作的都是每个特征图的均值和标准差。其中 w 是学习到的权重,b 是偏差,c 是常量输入。激活函数(Leaky ReLU)总是在添加偏差之后马上就应用。(c)研究者对原始的架构进行了一些修改:移除了开始处的一些冗余的操作,将 b 和 B 的求和移到了风格的活动区域之外,并且仅调整每个特征图的标准差。(d)架构经过修改后,可以用一个「解调(demodulation)」操作替换实例归一化,研究者将其应用于与每个卷积层相关的权重。
这种新设计能在维持完全控制能力的同时移除这种特有伪影。FID 基本上不受影响(表 1,A 和 B 行),但有明显的从精度到召回率的转移。研究者表示这符合预期,因为召回率可以通过截断(truncation)而转换为精度,而反过来却不行。在实践中,这种设计可以通过分组式卷积来有效地实现。
图 3:使用解调替代归一化能够移除图像和激活中特有伪影
表 1:主要结果。对于每次训练过程,这里选出的都是 FID 最低的训练快照。研究者使用不同的随机种子计算了每个指标 10 次,并报告了平均结果。「path length」一列对应于 PPL 指标,这是基于 W 中的路径端点(path endpoints)而计算得到的。对于 LSUN 数据集,报告的路径长度是原本为 FFHQ 提出的无中心裁剪的结果。FFHQ 数据集包含 7 万张图像,研究者在训练阶段向判别器展示了 2500 万张图像。对于 LSUN CAR 数据集,对应的数字是 89.3 万和 5700 万。
图像质量和生成器平滑度
尽管 FID 或 P&R 等 GAN 指标能够成功体现生成器的很多方面,但它们在图像质量方面还存在一些盲区。
作者观察到在被感知的图像质量和感知路径长度(PPL)之间存在有趣的关联。PPL 原本是为量化从隐空间到输出图像的映射的平滑度而提出的,其做法是在对隐空间施加小型扰动时测量所生成的图像之间的平均 LPIPS 距离。
为什么低 PPL 会与图像质量存在关联?这一点并不直观和明显。研究者猜想,在训练期间,由于判别器会惩罚有损的图像,因此改进生成器的最直接方式是有效地伸展能得到优良图像的隐空间的区域。这会导致低质量图像被压缩进快速变化的小型隐藏空间。尽管这能在短期内提升平均输出质量,但累积起来的失真会有损训练动态,并由此影响最终的图像质量。
这种经验上的相关性说明,通过在训练期间鼓励 PPL 更低,有助于实现平滑的生成器映射,从而可能提升图像质量。实验表明,事实确实如此。由于所得到的正则化项在一定程度上计算成本较高,所以研究者首先描述了一种可应用于所有正则化技术的通用优化方法。
懒惰式正则化(Lazy regularization)
表 1 第 C 行说明,即使每 16 minibatch 仅执行一次 R1 正则化,对结果也没什么影响。研究者在新的正则化器中就采用了这一策略。
路径长度正则化
图 5:(a)使用一种基准 StyleGAN(表 1 中的 A 配置,FID = 8.53,PPL = 924)生成的各个图像的 PPL 分数的分布情况。(b)新提出的方法(配置 F)能够显著改善 PPL 分布(展示了有同样的 FID = 8.53 的快照,PPL = 387)。
渐进式增长
图 6:渐进式增长会导致「相位」伪影。在这个例子中,牙齿没有跟随姿势而变化,而是与相机对齐了,如蓝线所示。
可替代使用的网络架构
图 7:三种生成器(虚线上面)和判别器架构。Up 和 Down 分别表示双线性的上采样和下采样。在残差网络中,这些也包含用于调整特征图数量的 1×1 卷积。tRGB 和 fRGB 可将每个像素的数据在 RGB 和高维数据之间转换。配置 E 和 F 所用的架构用绿色标注。
表 2:没有使用渐进式增长的生成器和判别器架构比较。使用了输出跳过和残差判别器的生成器的组合对应于主结果表格中的配置 E。
分辨率使用情况
图 8:每种分辨率对生成器的输出的贡献,用训练时间的函数表示。其中纵轴展示了不同分辨率的相对标准差的分解情况,横轴则对应于训练进度,度量单位是展示给判别器的百万张训练图像。可以看到,网络在一开始关注的重点是低分辨率的图像,然后随着训练推进,逐渐将重心转移至更高的分辨率。在(a)中,生成器基本上就是输出一张 512×512 的图像,经过一些细微的锐化之后,得到 1024×1024 的图像;而在(b)中,更大的网络更重视高分辨率的细节。
表 3:使用 FID 和 PPL 衡量的在 LSUN 数据集上的改进情况。研究者为 CAR 训练了 5700 万张图像,为 CAT 训练了 8800 万张图像,为 CHURCH 训练了 4800 万张图像,为 HORSE 训练了 1 亿张图像。
图像到隐空间的投射
新提出的投射方法在两方面不同于之前的方法。第一,在优化期间为隐代码添加了经过削减的噪声,以便更全面地探索隐空间。第二,研究者也优化了 StyleGAN 生成器的随机噪声输入,并对它们进行了正则化,以确保它们不会最终携带上相干的信号。这种正则化基于强制噪声映射图的自相关系数与单位高斯噪声的自相关系数在多个尺度上相匹配。
图 9:原始图像和被投射图像之间的 LPIPS 距离。蓝色展示了生成图像的距离直方图,橙色表示真实图像。尽管新改进的生成器生成的图像质量更高,但将生成图像投射至其隐空间 W 会容易得多。所有的案例都使用了这一种投射方法。
图 10:示例图像以及它们的经过投射和重新合成的对应图像。对于每种配置,上行展示了目标图像,下行展示了对应的被投射隐向量和噪声输入的合成结果。上:使用基准 StyleGAN,投射往往能为生成的图像找到一个接近程度合理的匹配结果,但背景不同于原始图像。中:使用新提出的最佳的架构生成的图像可以近乎完美地投射回生成器输入,这毫无疑问可归功于生成模型。下:和预期的一样,(从训练集)投射的真实图像与原始图像有明显的差异。所有的测试都使用了同样的投射方法和超参数。