Nvidia的样式生成对抗网络文章阅读记录

A Style-Based Generator Architecture for Generative Adversarial Networks

摘要

文章提出了一种生成对抗网络的替代生成器架构。新的架构可以自动学习、无监督地分离高级属性(例如,在人脸上训练时的姿态和身份)和生成图像中的随机变化(例如,雀斑、头发),并实现直观的、特定规模的合成控制。新生成器改进了传统分布质量指标的先进技术,导致了明显更好的插值属性,也更好地解开了变异的潜在因素。为了量化插值质量和解缠,文章提出了两种新的自动化方法,可适用于任何生成器架构。最后,文章介绍了一个新的、高度多样化和高质量的人脸数据集。

1. 引言

受风格转移文献27的激励,重新设计了生成器架构,以一种新方法来控制图像合成过程。新的生成器从一个学习到的常量输入开始,在每个卷积层根据潜码调整图像的“风格”,从而直接控制不同尺度下图像特征的强度。结合直接注入到网络中的噪声,这种结构变化将自动、无监督地从生成图像中的随机变化(如雀斑、头发)中分离出高级属性(如姿态、身份),并实现直观的特定尺度的混合和插值操作。我们没有以任何方式修改鉴别器或损失函数,因此我们的工作与正在进行的关于GAN损失函数、正则化和超参数的研究可以交叉使用。

我们的生成器将输入潜在代码嵌入到一个中间潜在空间中,这对网络中的变量表示有着深远的影响。输入潜在空间必须遵循训练数据的概率密度,我们认为这导致了某种程度上不可避免的纠缠、耦合。我们的中间潜在空间不受这种限制。由于之前估计潜在空间解偶的度量方法并不直接适用于我们的案例,我们提出了两个新的自动化度量——感知路径长度和线性可分性。使用这些指标,与传统的生成器体系结构相比,我们的生成器允许对不同的变异因素使用更线性、更少的耦合表示。

最后,我们提供了一个新的人脸数据集(Flickr-Faces-HQ, FFHQ),它比现有的高分辨率数据集具有更高的质量和更广泛的变化。我们已经将该数据集连同我们的源代码、和预先训练的网络开源,随附的视频可以在下面链接下找到。https://github.com/NVlabs/stylegan

2. 样式生成器

一般来说,潜码通过输入层(即前馈网络的第一层)提供给生成器,而本文完全省略输入层,从一个已知的常量开始 如图1

zoom

在输入隐空间给定Z中的隐码z,和非线性映射网络f: Z→W,首先产生w∈W。如图1中b的左半边。为简单起见,我们将两者的维度都设置到512.映射f是使用8层MLP实现的,我们将在4.1节中分析这个策略。学习仿射变换后,将w转化为样式y = (ys,yb),该样式控制合成网络g的每个卷积层后的自适应实例归一化(AdaIN)操作。AdaIN操作定义为

$$\begin{equation}\operatorname{AdaIN}\left(\mathbf{x}{i}, \mathbf{y}\right)=\mathbf{y}{(s, i)} \frac{\mathbf{x}{i}-\mu\left(\mathbf{x}i\right)}{\sigma\left(\mathbf{x}{i}\right)}+\mathbf{y}{(b, i)}\end{equation}$$

其中,每个特征映射$x_i$分别归一化,然后使用样式y对应的标量分量进行缩放和偏移。因此,$y$的维数是该层上特征映射数的两倍。

比较我们的风格转移的方法,我们从向量w而不是一个示例图像来计算空间不变的风格y。我们选择使用“风格”这个词来表示y,因为类似的网络架构已经用于前馈风格传输[27]、无监督图像到图像转换[28]和域混合[23]。与更一般的特征变换相比[38,57],AdaIN因其高效和紧凑的表示而特别适合于我们的目的。

最后,我们通过引入显式噪声输入,为我们的生成器提供一种产生随机细节的直接方法。这些是由不相关的高斯噪声构成的单通道图像,我们为合成网络的每一层提供一个专用的噪声图像。噪声图像使用学习到的特征比例因子广播到所有特征图,然后添加到相应卷积的输出中,如图1b所示。添加噪声输入的含义将在第3.2和3.3节中讨论。

在研究我们的生成器的特性之前,我们通过实验证明,重新设计并不会损害图像质量,事实上,它得到了相当大的改善。表1给出了CELEBA-HQ[30]

1

和我们新的FFHQ数据集中各种生成器架构的Fréchet初始距离(FID)[25]。其他数据集的结果在附录e中给出。我们的基线配置(A)是Karras等人的渐进式GAN设置。我们从那里继承网络和所有超参数,除非另有说明. 我们首先通过使用双线性上/下采样操作[64]、更长时间的训练和调整超参数切换到改进的基线(B)。附录C中包含了训练设置和超参数的详细描述。然后,我们通过添加映射网络和AdaIN操作(C)进一步改进这个新的基线,并且惊讶的发现,网络不再从把最后的编码输入到第一个卷积层而获益。 因此,我们通过去除传统的输入层,从学习到的4 × 4 × 512常量张量(D)开始图像合成,从而简化了体系结构。我们发现相当了不起的是,合成网络能够产生有意义的结果7,尽管它只通过控制AdaIN操作的样式接收输入。

最后,我们引入噪声输入(E),进一步改善结果,以及新的混合正则化(F),解除相邻样式,使生成的图像更精细控制(第3.1节)。

我们使用两种不同的损失函数评估我们的方法:对于CELEBA-HQ,我们依赖WGAN-GP [24],FFHQ对配置A使用WGAN-GP,对配置B-F使用R1正则化[44,51,14]的非饱和损耗[22]。我们发现这些选择可以得到最好的结果。我们的贡献不修改损失功能。

我们观察到,与传统的生成器(B)相比,基于样式的生成器(E)显著提高了fid,几乎提高了20%,这证实了并行工作中进行的大规模ImageNet测量结果[6,5]。图2显示了使用我们的生成器从FFHQ数据集生成的一组未经管理的新图像。通过fid确认,平均质量是高的,甚至眼镜、帽子等配件都成功合成。对于这个数字,我们避免极端地区的抽样W使用所谓的截断技巧[42 5 34]——附录B细节如何执行的技巧在W z的注意,我们的发电机允许应用截断选择性低分辨率,所以highresolution细节不受影响。本文中所有的fid都是在没有截断技巧的情况下计算的,在图2和视频中,我们仅用于说明目的。所有图像均以$1024^2$分辨率生成。

现有方法

GAN体系结构的很多工作都集中在改进鉴别器上,例如使用多个鉴别器[18,47,11],多分辨率鉴别[60,55],或自我注意[63]。生成器方面的研究主要集中在输入潜在空间[5]的精确分布上,或者通过高斯混合模型[4]、聚类[48]或鼓励凸性[52]来塑造输入潜在空间。最近的条件生成器通过一个单独的嵌入网络将类标识符提供给生成器[46]中的大量层,而潜伏层仍然通过输入层提供。一些作者考虑过将潜在代码的一部分提供给多个生成器层[9,5]。在并行工作中,Chen等人使用AdaINs[6]“自调制”生成器,类似于我们的工作,但不考虑中间潜在空间或噪声输入

3. 样式生成器的属性

我们的生成器架构使控制图像合成通过规模特定的修改的风格。我们可以把映射网络和仿射变换看作是一种从学习到的分布中为每种风格绘制样本的方法,而合成网络则是一种基于一组风格生成新图像的方法。每个样式的效果在网络中都是局部的,也就是说,修改样式的一个特定子集只能影响图像的某些方面

为了了解这种本地化的原因,让我们考虑一下adainoperation (Eq.1)如何首先将每个通道归一化为零均值和单位方差,然后才基于风格应用尺度和偏差。按照样式的要求,新的每通道统计信息修改了后续卷积操作中特征的相对重要性,但由于归一化,它们并不依赖于原始统计信息。因此,在被下一个AdaIN操作覆盖之前,每个样式只控制一个卷积。

3.1 混合风格

为了进一步鼓励样式的本地化,我们采用混合正则化,即在训练期间使用两个随机潜在代码而不是一个生成给定百分比的图像。当生成这样的图像时,我们只需在合成网络中随机选择一点,从一个潜在代码切换到另一个潜在代码——我们称之为样式混合的操作。具体来说,我们通过映射网络运行两个潜码z1、z2,并让相应的w1、w2控制样式,使w1在交点前应用,w2在交点后应用。这种正则化技术防止网络假定相邻样式是相关的。

2显示了使混合正则化如何极大地提高了定位能力,这表明在测试时混合了多种潜在因素的情况下,识别能力得到了改善。图3给出了在不同尺度上混合两种潜码合成图像的例子。我们可以看到,每个样式子集控制图像的有意义的高级属性。

2

3

3.2 随机变化

在人像中有很多方面可以被认为是随机的,比如头发、胡茬、雀斑或皮肤毛孔的精确位置。只要它们遵循正确的分布,它们都可以被随机化,而不会影响我们对图像的感知。 让我们考虑一下传统生成器是如何实现随机变化的。假设网络的唯一输入是通过输入层,网络需要发明一种方法来产生空间变化的伪随机数,在需要时从早期的激活中删除。这将消耗网络容量,并且隐藏生成信号的周期性是困难的——而且并不总是成功的,这可以从生成图像中常见的重复模式中得到证明。我们的架构通过在每次卷积后添加逐像素噪声来完全回避这些问题。