Analyzing and Improving the Image Quality of StyleGAN
2020.06.01:看StyleGAN2的时候好多点没看懂,感觉styleGAN还是有理解上的不到位。回头重看styleGA

1. 概述

作者针对stylegan的不足,在模型结构和训练方法上做出了改变。这些改变主要针对生成器归一化、progressive growing和生成器调整。具体改进如下。

1.1 分析特征伪影出现的原因

水滴状的伪影是归一化导致的结果,是模型设计的问题。在文章的Section2中,作者重设计了归一化方法,解决了这一问题。
第二种伪影是progressive grow导致的。作者提出了一个替换progressive grow的结构,这一部分在section4中详细阐述

1.2 图像质量的评价标准

量化地分析生成图像的质量是个难题。作者基于InceptionV3 claasifier使用FID(Fréchet inception distance)描述生成图像和真实图像分布密度的区别,使用P&R(Precision and Recall)描述生成图像和真实图像的相似度。但这两种评价标准都更关注纹理而非形状。基于这一问题,作者引入PPL(perceptual path length)作为评价隐空间插值质量的标准(隐空间插值质量和形状的一致性、稳定性有关)。综合这些考虑,作者在section3中调整了synthesis network。

1.3 图像到隐空间的映射

用新的path-length调整后的网络使得图像能更好地映射到隐空间,更实用的是,作者可以有效判断一张图片空间是来自真实图像还是某一特定生成器生成的图像,这一部分在Section5中有介绍。

Section2 去除归一化伪影

[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图1
水滴状的伪影首先出现在64×64分辨率的生成图像上,随后就一直存在,并随着分辨率的提升越来越清晰。作者认为是AdaIN操作导致了这一现象。AdaIN的归一化可能破坏了不同特征之间的关联性,生成器为了避免这一情况,会刻意地制造局部尖峰以保护周围它需要的信号。作者移除了归一化步骤,水滴状伪影消失,证明了作者的假设。

2.1 生成器结构的调整

[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图2
作者对生成器结构尤其是AdaIN的结构做了分析。如fig 2b所示,AdaIN本质上是由两部分组成:归一化(Normalization,图中为Norm)步骤和调制步骤(Modulation,图中为Mod)。Norm指的是求均值、方差并做归一化的过程,Mod指的是由latent code w获得风格控制参数(包括缩放因子和偏差因子,在stylegan论文中,这个叫作style)并应用的过程。 对于每个style block只有一种style激活,原本的stylegan论文中在每个style block内部应用bias和noise。作者观察到将这一步骤移出style block,即在归一化数据基础上应用bias和noise,生成图像会更加丰富。不仅如此,这样使得Norm和Mod时不用计算均值,只需要计算方差。

2.2 Instance Norm的调整

Instance Norm比较强势,而Batch Norm和高分辨率生成不兼容。为此,作者通过一系列的数学推导,将本该针对输出的特征图的操作(Norm和Mod)应用到卷积权重上了。 (这边数学推导不是很懂,列一下关键词)

  • Mod操作会对输入的特征图做scale操作,这一步可通过直接缩放卷积权重来实现
  • 卷积之后会有Norm操作,本质上是为了移除Mod控制因子的不利影响。因此可直接求卷积权重的方差,对卷积权重做归一化实现。
  • 综上,卷积权重的更新公式为: [StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图3w{i j k}^{\prime}=s{i} \cdot w{i j k}[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图4\sigma{j}=\sqrt{\sum{i, k} w{i j k}^{\prime} 2}[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图5w{i j k}^{\prime \prime}=w{i j k}^{\prime} / \sqrt{\sum{i, k} w{i j k}^{\prime} 2+\epsilon} w是原始卷积权重,w’’是更新后的权重, s是缩放尺寸

和原本的Instance Norm相比,这样的归一化方法影响会弱一些。它基于数据统计的信号做处理,而不是直接改变网络的输出特征图。这一方法和Weight Normalization有较大的关联。

Section3 图像质量和图像的平滑生成

除了用FID和P&R来评价GAN生成的图像外,作者引入了PPL。在stylegan一代的论文中,PPL是用来衡量特征的解耦程度的,如果解耦的比较充分,在隐空间进行插值时图像不应该会剧烈变化,对应的PPL值就小。这里,作者用PPL来衡量隐空间到输出图像的平滑性。当隐空间有扰动时,计算两张生成图像的平均LPIPS距离。PPL越小,说明生成器映射得越平滑,图像质量越高。PPL和图像质量的关系没有确切原因,作者猜测是训练时,生成器为了更好地骗过判别器,选择将生成好图像的隐空间特征拉伸,将生成差图像的隐空间压缩,这一作法尽管短期来看提升了图像的输出质量,但实现上会不断地积累图像的扭曲程度,最终损害了训练的成长能力和最终图像的质量。
[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图6

3.1 频率低的正则化

通常,总体loss由主要的loss函数和正则化项组成,写成一个简单的表达式,两者同时影响模型的优化。作者发现可以相比主要的loss函数,可以少计算正则化项,降低计算成本和内存消耗。具体的计算频率是16个minibatches计算一次正则化项。

3.2 Path length正则化

之前对PPL(Perceptual Path Loss)的分析提到,当PPL高时,隐空间的一点扰动都会带来图像的剧烈变化,说明在隐空间的某些好特征被拉伸,差特征被压缩。为了避免生成器这样的拉伸或压缩趋势,作者希望在隐空间的每个特征产生的细微变化,都会在图像中产生等量的变换,因此提出了Path length正则化项,公式: [StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图7\mathbb{E}{\mathbf{w}, \mathbf{y} \sim \mathcal{N}(0, \mathbf{I})}\left(\left|\mathbf{J}{\mathbf{w}}^{T} \mathbf{y}\right|_{2}-a\right)^{2}
这一正则项显著提升了生成图像的PPL值。

Section4 Progressive growing的调整

Progressive growing在高分辨率图像生成中被证明是非常有效的策略,但它导致了一个独有伪影,如Fig 6的牙齿。在Progressive growing时,每个分辨率都会生成一个临时的输出图像,这导致生成器倾向于先去生成概率比较高的细节,在中间层的频率很高,损害了位移不变性。
[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图8

4.1 替换网络结构

skip connections, residual networks和hierarchical methods是非常有效的图像纹理生成方法。作者用这些策略替换了progressive growing。
[StyleGAN2]Analyzing and Improving the Image Quality of StyleGAN - 图9
Fig 7中虚线上方表示Generator,虚线下方表示Discriminator。如Fig 7b所示,作者简化了MSG-GAN的结构,生成器采用上采样和求和,判别器采用下采样。在上采样和下采样的过程中都使用了双线性滤波。在Fig 7c中,作者进一步改进模型结构,改进后的结构有些类似于LAPGAN。 实现表明,skip connections有利于提升PPL,residual discriminator有利于FID。

4.2 分辨率的使用

Fig 7的结构使得模型生成低分辨图像的同时,不影响高分辨图像的生成。作者基于特定分辨率定量分析了生成的图像质量。

Section5 图像到隐空间的映射

图像到隐空间的反映射非常实用。和之前不同的是,作者1.加入了降噪后的噪声, 2. 优化了随机噪声的输入。

5.1 生成图像的检测

将图像映射到隐空间,通过计算原始图像和生成图像的LPIPS衡量映射是否成功。
参考:https://zhuanlan.zhihu.com/p/99064690