StyleGAN3(Alias-Free Generative Adversarial Networks)阅读笔记
StyleGAN3(Alias-Free Generative Adversarial Networks)阅读笔记
来源: nips2021
作者:Nvidia
链接:https://arxiv.org/abs/2106.12423
1 动机
- 目前的GAN结构不能以一种自然的分层方式合成图像:粗特征主要控制细特征的存在,但不能控制它们的精确位置;
- 目前的网络可以通过图像边界、逐像素噪声输入、位置编码和混叠,利用中间层可用的无意位置参考,从而部分绕过理想的分层结构。
- 神经网络有办法并且倾向于放大混叠,导致不同尺度的信息被混合,进而导致位置信息的泄露
图像特征是分层的,所谓分层,可以认为是因果的,粗糙特征对细微特征具有控制效果,比如在人脸图像中,转动脸部会带动鼻子的转动,鼻子的转动会进一步带动鼻子上毛孔的转动;
而GAN在一定程度上也具有这种分层特征,粗糙特征通过上采样层进一步细化,并通过局部卷积进行混合,同时由非线性因素引入微小的变化,但是GAN中的粗糙特征只能够控制细微特征的存在与否,不能控制细微特征的位置,可能会导致人脸已经转动了,而鼻子仍然停留在原来的位置。作者认为导致这种现象产生的原因是因为现在的一些深度神经网络,可以通过使用中间层隐含的一些位置信息,一定程度上打破原本的分层结构,这些位置信息可能来自于图像的边界信息、逐像素点的噪声引入、位置编码和混叠 ,而混叠来自于双线性、最近邻等上采样方法和非线性激活。
因此,作者认为其他因素都可以通过一定的手段解决,但是混叠很难消除,因此作者将问题转换为如何消除混叠,并试图从频域角度解决这一问题,来实现细微特征平移和旋转 的等变性。
2. 贡献
1) 分析了神经网络不同组件实现不发生混叠的平移以及旋转等变性的条件;
2)针对StyleGAN2,提出了对网络结构进行改进以实现合理的平移与旋转等变性的一系列方法。
3 理论
3.1 连续变量与离散变量之间的相互转化
通常的卷积神经网络的输入与输出均是离散变量,作者认为,离散变量其实是连续变量的编码表示,本质上,神经网络的处理可以任务是对连续变量进行处理。对于离散变量与连续变量,二者可以认为具有如下关系:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0HQXnM3-1641867553278)(https://little_z_c.gitee.io/imagebed/GAN%E7%9B%B8%E5%85%B3/%22Alias-Free%20Generative%20Adversarial%20Networks%20(StyleGAN3)]%22%E9%98%85%E8%AF%BB%E7%AC%94%E8%AE%B0/1.png)
也就是说,可以认为离散变量是连续变量经过狄拉克梳状函数采样得到的编码表示,而连续变量则是离散变量经理想插值滤波器进行卷积之后的结果。
对于卷积神经网络分别对两种变量的映射函数F,f,具有如下关系:

上面的s表示采样频率。
3.2 稳定平移与旋转等变性分析
在连续域中,假如映射f与某一种变换t存在f \text{о} t=t \text{о} f关系,则认为f对变换t是等变的,假如不希望位置信息泄露,f在变换后不应该导致连续变量产生混叠,即变换后的截止频率也不应该高于s'。
3.2.1 卷积层
对于卷积层,离散变量的卷积操作为:

由于卷积的可交换性,以及卷积操作使用的卷积算子K与狄拉克梳状函数和插值滤波的采样频率是一样的,第二个等式中括号内的部分可以视为是一个恒等变换,从而连续变量的卷积为:

因此,作者认为,卷积操作不会引入新的频率分量,在进行平移与旋转变换时,都不会导致新的频率分量产生。而且卷积操作原本就具有平移的等变性,但是不具有旋转的等变性,因此需要对卷积操作进行改进,改进方法非常简单,只需要卷积核是径向对称的即可,作者在实际使用时,直接使用简单的1×1卷积来满足这个条件。
3.2.2 上采样
对于上采样,离散变量理想 的上采样操作可以认为是对连续变量使用更高的截止频率进行离散化:

这一操作理论上不会造成原始的连续变量发生变化:

因此可以认为,上采样操作,只要效果足够好,实际上不改变连续变量,因此平移和旋转都是等变的,实际操作时,可以将上采样过程视为先对Z补零,以扩大离散变量的尺寸,再对其使用离散卷积Ⅲ_{s'} \bigodot \phi_s实现值的填充。
3.2.3 下采样
对于下采样,与上采样相反,下采样后的特征图的离散表示相比于原来降低了采样率,因此原始连续变量中超过采样频率的高频分量可能会产生混叠,从而需要对原始的连续变量进行理想低通滤波操作,剔除连续变量中的高频分量,因此,对于连续变量而言,下采样操作等于进行低通滤波:

这个低通滤波器\mathcal{\varphi}_{s'}也不是随便取的,而是对原来的插值滤波器进行单位归一化处理得到的,理想低通滤波器应该具有以下形式:

而对于离散变量,可以根据连续变量的公式进行推导:
F_{\text{down}}(Z)=
上面的公式从第二个等式推到第三个等式,需要用到这个关系:

因为是下采样操作,因此输出的采样率s'肯定低于输入采样率s。
下采样操作也可以视为使用离散卷积Ⅲ_{s'} \bigodot \phi_{s'}进行处理获得,因此自然满足平移等变性,但是对于旋转等变性,作者认为Ⅲ_{s'} \bigodot \phi_s应该是具有圆盘形频率响应的径向对称滤波器,径向对称是为了满足旋转等变性,圆盘形频率响应是为了避免二维滤波器在旋转以后难以滤除不同维度的高频分量。
3.2.4 非线性激活
非线性激活函数在离散域对平移和旋转是不相容的,根据下面的动图可以发现,在离散域应用非线性激活会导致插值后的连续变量不具有等变性:

因为非线性激活会导致图像出现陡峭的边缘,导致高频分量的产生,从而发生混叠,这也是本文分析的四种操作中唯一一种会生成新的高频分量的操作。类似于下采样的思想,我们可以在应用非线性激活之后,对图像进行滤波,删除高频分量。在实际应用时,通过先对离散图像进行上采样,产生一个更高分辨率的图像,再进行非线性激活,最后再下采样回原来分辨率的途径进行,通过这种操作,可以不需要对非线性激活设计新的方法和准则,只需要满足在上采样和下采样中使用的条件即可。
4 改进手段
作者基于不产生混叠的平移与旋转等变性思路来设计网络结构,同时做了一些其他的改进,整个改进基础基于StyleGAN2。、



4.1 输入和网络结构变换
第一部分的改进主要是针对总体网络结构的改进。
第一项改进是将StyleGAN中的常量输入替换成傅里叶特征,傅里叶特征是一种从圆形频带内采样,并通过一定变换生成的特征,这个修改的目的是,傅里叶特征可以很容易施加平移和旋转操作,而原本StyleGAN2中使用的随机常数特征图需要通过近似手段完成平移和旋转。这一个改进点主要是为了更好地度量模型的等变性,实际上并不能真正改善模型的等变性。
修改成傅里叶特征之后,可以通过输入的隐编码进行仿射变换,使傅里叶特征被旋转或平移(对应改进点H),这主要是因为作者认为第一层的输入对于最终的图像输出至关重要,它会起着引导图像生成结果的作用。并且可以改善平移等变性和图像生成质量
同时,作者删除了StyleGAN中逐层添加微小噪声的操作,在完整实验中发现,这个操作会严重损害等变性。
此外,作者减少了神经网络的深度、去除了一些正则化和归一化操作,同时对每一层的输入施加EMA操作,这些改进可以略微提升等变性。
4.2 像素边界扩充和上采样
本文的分析过程中都是假设输入图像是无界的,因此在实际训练时,作者会把图像边界扩充10个像素点进行输入,但是在经过映射后要将这些扩充边界裁掉,因为边界会泄露图像的位置信息。
对于上采样的设计准则是,尽可能接近理想插值滤波器,因此这里把通常上采样用的插值滤波器替换成了带Kaiser窗的Sinc滤波器,Kaiser窗的大小为6,即每一个输出像素点会受到输入的6个输入像素点的影响。
窗的大小可以理解为是滤波器的尺寸,经过实验发现,Sinc滤波器会导致图像质量下降;此外,对滤波器尺寸进行消融研究发现,较小的滤波器尺寸会导致平移等变性变差,但是较大的滤波器尺寸又会造成训练时间过久。
4.3 非线性与滤波
根据前面的分析,非线性激活以后需要进行滤波,并且作者使用的是上采样-非线性激活-下采样的顺序进行处理,作者经过分析,认为可以把StyleGAN2中激活后的上采样操作与StyleGAN3中对非线性激活的上采样操作集成在一起处理,也就是改变了上采样的顺序,并且自定义了一个CUDA内核完成整个运算,这样做可以节省内存,而且使训练提速10倍。经过如此处理的模型可以有效提升平移等变性。
4.4 非临界采样与可调截止频率
对于图像而言,高频信息可以使图像具有更丰富的纹理特征,对图像质量至关重要,但是高频信息很容易产生混叠,通常的图像处理方法使用临界采样,以实现图像质量和抗混叠的平衡。作者认为,对于GAN模型而言,在浅层的高频信息可能没有什么意义,可以剔除掉,以进一步提升抗混叠能力,因此,在实际训练时,可以考虑对除执行最高分辨率生成的网络层之外的其他网络结构设计一个更低的截止频率,提升抗混叠能力。同时,作者观察到,如果只是简单地给每个网络层施加相同的截止频率,效果可能也不会非常好,因为对于更浅的层而言,其频率分量将更集中于截止频率附近,因此,使用可调截止频率策略,随着层的加深,逐渐加大截止频率。这种操作最终不仅提升了平移不变性,还提升了图像质量。
4.5 旋转等变性实现
为了实现旋转等变性,主要是卷积操作和下采样操作的核得是径向对称的,对于卷积,直接把3×3的卷积核换成1×1的来实现,但是这样会造成网络容量下降,因此在改变卷积核的同时把每个卷积层输出的特征数目进行加倍。
对于下采样操作,使用径向对称的第一类一阶贝塞尔函数作为滤波器(the first order Bessel function of the first kind)满足下采样的条件。
同样,旋转等变性的改进也没有应用于最高分辨率生成的网络层中。
5 实验
5.1 定量结果
作者比较了StyleGAN3和StyleGAN2在不同数据集的图像生成效果,以及旋转和平移的等变性:

实验表明,只有进行旋转等变性设计的网络才具有旋转等变性,而前面的很多约束都不能提升旋转等变性。
同时,作者对StyleGAN2和StyleGAN3的一些组件进行了深入的消融研究,混合正则化操作对模型的质量没有显著影响,说明它可能是一个冗余操作,可以删去;而微小噪声输入会严重损害等变性水平,同时对网络的不同层之间施加不同的截止频率会显著影响等变性效果,在训练时对输入傅里叶特征进行仿射变换,也有助于提升模型的灵活性;另一项正则化操作则会导致图像质量的下降。同时,还发现模型容量对于图像质量和等变性有积极影响,更大的模型容量会导致更好的图像生成质量以及等变性,但是模型容量增加到两倍会造成训练时间变成原来的四倍。不同的滤波器选择对于模型表现也有较大影响。
同时,作者额外比较了在StyleGAN3设计平移等变性模型的基础上,使用另外一种旋转等变性实现方法的效果,发现他们的方法可以显著提升旋转等变性,并且只需要更少的参数量和训练时间。
5.2 定量结果
性,但是模型容量增加到两倍会造成训练时间变成原来的四倍。不同的滤波器选择对于模型表现也有较大影响。
同时,作者额外比较了在StyleGAN3设计平移等变性模型的基础上,使用另外一种旋转等变性实现方法的效果,发现他们的方法可以显著提升旋转等变性,并且只需要更少的参数量和训练时间。
5.2 定量结果

