[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

【Style Transfer】——A Style-Based Generator Architecture for Generative Adversarial Networks
StyleGAN:基于风格迁移的生成对抗网络

from NVIDIA CVPR2019

Paper:StyleGAN
Code: StyleGAN

Abstract

本文借鉴风格迁移的思想,改进了GAN中生成网络的结构,这种网络结构可以自动以无监督的方式学习高级特征(如人脸图像中的姿态、身份)和图像中的随机变化(如雀斑、头发),从而可以自动控制合成效果。这种新的生成器有效提升了目前的图像生成质量,更好的解释了插值特性、解耦了变量的隐参数。
为了更好的评估插值和解耦效果,本文还提出了两种新的自动评估方法,适用于任意生成网络。
最后本文介绍了一个新的、高度变化的高质量人脸数据集。

Section I Introduction

借助于GAN,使得生成图像的质量和分辨率快速提高,但是生成网络的内部仍然是一个黑盒子,缺乏对内部图像合成过程、隐空间的理解。目前进行的一些研究在解释隐空间插值时也没有一个较好的量化方法,从而对不同方案进行一个对比。
有感于风格迁移,本人重新设计了生成器的结构从而可以控制图像生成的过程。


本文的生成网络以一个学习后的常量作为输入,然后调整每一卷积层的隐层“风格”信息,直接控制最终生成图像中不同尺度特征的强度。
同时结合输入网络的噪声,这一网络可以自动以无监督的方式学习高级语义特征,混合不同尺度的特征、进行插值运算。
对于判别网络 和损失函数,本文没有进行任何修改。



本文将输入的latent code嵌入隐空间中从而对特征的变量表示产生直接影响,由于输入的latent code必须遵循训练数据的概率密度,不可避免的有耦合关系,而中间的隐空间则不受此限制。
对于评价方法,本文提出了感知路径长度(perceptual path length )和线性可分性(linear separability)来评估生成器。通过这种评估方法发现本文比传统的生成网络允许更加线性的、耦合性更低的变量因子。
最终还提出一个新的人脸数据集Flickr-Faces-HQ,FFHQ,详情参见Appendix A.

Section II Style-Based generator

基于风格的生成器
传统网络中会通过网络的第一层输入,本文则直接跳过输入层,将一个学习过的常量输入网络进行非线性映射,得到每一层的权重(latent space),这一非线性映射通过一个8层的MLP实现。
随后得到的权重w会转换为风格信息y(ys,yb),用来在每一次卷积后在AdaIN操作中进行归一化。为了叙述简便,我们将空间维度设为512,AdaIN操作表述为:
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

主要就是对特征图谱中每一点x进行归一化,但是前面的缩放系数和后面的偏置系数来自于学习到的w,这也是为什么第l层的y维度是这一层特征图谱的两倍。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

从Fig1中可以看出,首先会将输入经过一个8层的FC映射到隐空间W,随后送到 adaptive instance normalization用于图像的风格迁移。
以及每一次卷积后还会引入高斯噪声,这一噪声会通过scale 因子广播到所有的特征图谱
因此A代表学习风格变换,B代表学习每一通道的缩放因子,左侧是8个fc组成的隐空间映射网络,右侧是18层的卷积网络,最后在通过1x1卷积输出RGB图。
传统的生成网络参量为23.1M,本文的参量在26.2M.


将本文的方法与风格迁移想对比,不再是学习某张图像的风格,而是通过8层网络学到的w并且变换为风格不变的特征表达y。我们依旧用style来称呼y,是因为在之前的一些图像风格迁移、无监督图像转换以及图像域混合等领域中已经这么叫了。而AdaIN的特点是紧凑且高效,十分适合用于本文的任务。



Part A Quality of generated images



生成图像的质量
在介绍本文生成网络之前,要说明一个实验结果,就是与使用原图相比,对原图进行重新设计不仅不糊降低图像质量,反而会对图像质量有相助提升。



[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Table 1中(c)就是通过map网络和AdaIn处理后的结果,可以看到与前面进行双线性插值等其FID指标与显著下降。这就说明通过输入latent code会更加适合于网络,因此本文移除了传统的输入层,直接将一个学习后的4x4x512大小的张量作为输入,后面的结果发现虽然生成网络仅输入了来自W和AdaIN的信息,但依旧能够产生很有意义的结果。
最后(E)这一栏显示通过添加噪声产生了最低的FID,(F)混合正则化则是会去除一些临近的风格,对生成图像在更细粒度上进行控制。
我们观察到基于风格的生成器比常规的生成器性能提升了近20%.
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Fig2展示了一些本文生成的图像,可以看到即使连眼镜、帽子等都成功的合成了出来。

此外对于W中的极端区域还会使用裁剪(truncation trick),仅对低分辨率特征有影响,高分辨率不受影响。但是现在本文展示的图像都是W未使用截断得到的,最终分辨率为1024x1024.

Part B Prior Art


前人对于GAN的研究大多集中于如何提升判别效果,如使用多重辨别器、多分辨率判别器和自注意力机制。在生成器方面的工作主要集中在如何获得输入数据隐空间的精确分布、如何通过高斯混合模型来构建隐空间等。
而条件生成网络方面则尝试着如何嵌入一个更大的分离的层,但是输入还是通过第一层输入的,也有学者尝试着如何将输入的一部分latent code输入多个层,但没有考虑到中间的隐空间以及输入噪声。

Section III Properties of the style-based generator

本文提出的生成器结构可以对风格进行不同尺度的控制,可以将mappingnetwork和仿射变换看成是从某种分布中采样出不同风格,而生成网络则是根据采样得到的style集合生成新的图像,而每一种style只会对图像的一些方面产生影响。




而AdaIN模块首先会将每个通道的featuremap归一化到均值0方差1的分布,然后根据style进行缩放和偏置因此修改后每个通道的信息包含了style的信息,以及在下一次AdaIN操作前当前的style只能控制这一个卷积层。




Part A Style mixing




为了进一步探究style信息,还使用了混合正则化,也就是在训练过程中输入图像的两个latent code,然后再图像生成时在不同的style中进行切换,本文称之为 风格混合(style mixing).




举例说明,取两个latent code z1和z2作为输入,经过mapping network后得到两个w1,w2,随后在交叉点之前用w1,交叉点之后用w2.这样可以有效防止相邻style之间是相关联的。




[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Table 2展示了不通混合程度在E\F设定下的提升效果,Fig3则是一些样本的可视化,可以看到不同scale会控制不同的高级特征属性。




[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks除了row0和col0是原图,中间的均是合成图像,从上到下依次展示出不同分辨率下B的风格,分辨率较低时在一些高级属性(如姿态、发色、脸型、眼镜)等是B的风格,而A主要体现在细节上(如眼镜、头发、肤色等);分辨率进一步升高,则B的风格开始在一些粒度更细的特征上展现,如面部表情、眼睛是睁眼还是闭眼;而A则保留个更多高级属性;如果分辨率进一步升高,B的信息则主要停留在皮肤纹理、微结构等方面了。
Part B Stochastic variation
随机变化
在人脸中有很多信息是随机的,比如头发、胡茬、雀斑等的具体位置,只要他们遵循正确的分布就不会对我们的识别造成影响。
下面考虑如何让一个生成器实现随机变化。通过输入唯一的输入,生成器需要在需要变化的时候自己产生一些有空间变化的伪随机数。这十分消耗网络容量。而这种周期性的产生信号有时也是十分困难的。本文通过增加随机噪声完美的避开了这些问题。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Fig4就展示了一些添加随机噪声后的不同表现,可以看到随机噪声确实只改变了这些随机特征,而没有影响身份等高级属性。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Fig5进一步说明了随机变量的作用。


(a)是在所有层引入噪声;



(b)表示未添加噪声;



(c)仅在高分辨层(64-1024)施加噪声
;


(d)仅在低分辨率层(4-32)施加噪声。



可以看到粗粒度的噪声会引起较大范围的卷曲,对背景影响范围也更大;而细粒度的噪声则影响范围较小,比如影响头发的卷曲程度、皮肤毛孔等。[这一部分最好借助动画理解]
本文还发现的一个有趣之处就是:噪声对网络有很紧密的影响,甚至可以假设噪声是为网络提供随机变化最简单的一种方式。并且每层都有一组新的噪声不会因为前一层**的影响产生局部效应。
Part C Seperation of global effects from stochastic

前面主要论证了style会产生不同尺度的风格影响,以及噪声主要影响的是随机变化。这一观察结果与风格迁移的研究吻合,在风格迁移中是将style信息编码成gram matrix,channel-wise mean,variance等形式。


本文中的style也是通过scalefactor影响整个图像,而为每一点像素施加额外的噪声完成对随机特征的一些控制。因此style提供的是全局的控制,noise提供的是随机变量的控制。

Section IV Disentanglement studies解耦研究

解耦有不同定义,但共同目标就是在线性子空间组成的隐空间中,每一个子控件控制变量的一个因子。但是Z中各因子的采样概率要与训练数据中对应的密度一直,这就使得无法完全将这些因子与输入输出的分布完全解耦。
本文这种结构的一个主要好处就是,隐空间W无需根据任何固定的分布进行采样,他的采样是根据学习要的映射函数f(z)决定的。
但是根据最近提出的量化解耦的评价指标,需要一个编码网络完成输入到latent code的映射。这一度量标准并不适合,因此本文提出了两种量化解耦的新方法。
Part A Perceptual path length
感知路径长度:[37]中指出在隐空间中的向量进行插值图片会产生惊人的非线性变化。有些没有出现的特征可能在路径中间插值处就出现了,因此可以度量在隐空间插值时图像变化的剧烈程度,直观而言,根据变化的剧烈程度可以分为平滑的隐空间和曲度较大的隐空间。

因此本文用两张图像的感知距离来衡量,是两个VGG16网络输出之间的加权差,计算的是人类在感知上的相似度判断。
如果将一个隐空间的路径根据插值划分为n段,那么总路径长度就是每段的总和。
而感知路径长度就是路径无限细分的极限,实际中则用episilon=10-4来近似。
则空间中所有端点的感知路径长度的均值表示为:

[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

在W空间计算平均感知路径长度也采用类似的定义:

[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks
Part B Linear Separability
如果隐空间是解耦的,那么就可以找到基底向量,因此本文提出了另一个量化标准-线性可分性,用来度量隐空间中的点是否可以分为两个线性超平面内的。
因此,本文又额外训练了一个网络进行男性女性的二分类,这一分类网络与本文网络中的判别器网络结构一样。对生成的200000张图像进行分类并且根据置信度对样本进行排序,移除了低于一半置信度的样本。
最终的可分离得分计算为:
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Table 3展示了本文的方法(E)其感知路径长度是最小的。而且W是比Z更加线性的。[看不懂 放弃= =]


Table4说明了mapping network是如何影响路径长度的,可以看到无论是传统网络还是本文的style-based网络都会受益于mapping network,随着深度增加会改善路径长度和FID指标。有趣的一点是虽然传统网络的lw有所改善,lz却变得更差,也说明了隐空间中是任意纠缠的。

从Table 3中也能看出来,w始终比z有更好的可分离性。增加mapping network的深度可进一步提升w的可分离性。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Section V Conclusion

通过本文及[6]的研究表明,本文的style-based 生成网络在各方面都优于传统的生成网络。根据目前的度量标准以及本文定义的两种度量标准都能得出这样的结论。

我们认为本文中对高级特征的控制、随机效果的控制以及中间隐空间的分离都会对进一步理解和提升GAN有帮助。
而且本文提出的感知路径长度也非常适合作为训练中的正则化函数,也许线性可分性函数的变体也可作为正则化函数。

未来我们希望能够在训练阶段有直接调控隐空间的方法,为未来的工作提供便利。
Appendix A The FFHQ dataset

本文还收集了一个新的人脸数据集:Flickr-Faces-HQ(FFHQ)数据集,内含70000张高质量高分辨率(1024)的人脸图像,Fig7展示了部分样本,并且图像多样性比CELEBA-HQ更多样化,比如背景、眼镜、太阳镜等。


数据集:FFHQ


[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks

Appendix B W的截断技巧

当我们观察训练数据的分布情况时会很明显的发现密度较低的区域特征表述能力不佳,这再所有生成模型建模时都会遇到的问题,通过在一个截断的隐空间内进行手痒可以提升图像的平均质量,尽管损失了一些变化。
所以本文也可以采取相似的策略,最开始计算W的质心,就代表平均大众脸,随后在质心周围偏移,这种在W空间截断的方式即使不对loss函数做修改也能可靠的工作。
从Fig 8中可以看出,phi取相反值往往是截然不同的方向,如视角、年龄、颜色、头发长度等。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks
Appendix C Hyperparameters and training details

生成网络的基线模型是Prograssive GAN,比如判别网络就完全是同样的结构,生成网络使用的是Adam优化器、指数滑动平均,修改了一些训练细节,比如对Celec-HQ进行数据扩充,训练时间:8块V100训练一周


mapping network的结构:


8层FC,输入输出维度:512
。同时还发现如果网络深度过深或者学习率太大会使得训练不稳定
在后续改进措施中,进行了一些修改,比兔将最近邻的上采样/下采样替换为双线性采样,图像的最低分辨率也从4升至8.



一些超参数的设置:




使用LeakyReLU,alpha=0.2,每层使用同样的学习率;
生成网络的输入初始化为1,偏置和噪声初始化为0,与style相关的偏置初始化为1.
以及训练中没有使用任何BN、注意力机制或者特征向量的归一化等手段。





Appendix D Training Convergence






Fig 9展示了B实验配置下FIP和感知路径长度的变化,可以看到训练过程中FID逐渐下降,即使在训练分辨率达到1024时也可以更高的耦合程度的表征为代价进一步降低FID。这一有趣的问题非常值得未来进一步研究,看看能不能避免这一现场的发生,或者是否可以在不牺牲FID的前提下获得更短的路径长度。







[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks
Appendix E Other datasets

Fig10、11、12展示了一些BEDROOM,CATS,CARS中不准确的生成情况,本文对于这些图片使用了truncation trick,由于BEDROOM图像中物体比较紧凑所以只能生成较低质量的图像,CARS的训练图像质量更高因此可以生成更高的分辨率;CATS图像由于图像姿态的多样性、以及放大倍率和背景的多样性,生成这类图像也是十分具有挑战性的。
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks
[Style Transfer]——A Style-Based Generator Architecture for Generative Adversarial Networks