天天看点

理解 Progressive GAN引言1. Progressive Growing2. Mnibatch Standard Deviation3. Normalization in Generator and Discriminator4. Multi-scale Statistical Similarity5. CELEBA-HQ

引言

《PROGRESSIVE GROWING OF GANS FOR IMPROVEDQUALITY, STABILITY, AND VARIATION》 是 NVIDIA 团队发布在 ICLR 2018 上的一篇论文,它提出了一种新的无条件生成模型 PGGAN。主要贡献有:

  1. 提出了一种新的针对 GAN 的训练策略:progressive growing。它能够稳定并加速高分辨率图像( 102 4 2 1024^2 10242)的生成训练。
  2. 提出了一种增加生成图像多样性的方法:mnibatch standard deviation。
  3. 提出了两种 trick 来抑制生成器和判别器之间不健康的对抗:equalized learning rate 和 pixelwise feature vector normalization。
  4. 提出了一种新的针对 GAN 生成结果的评价指标:multi-scale statistical similarity。
  5. 构建了一个新的数据集:CELEBA-HQ。

1. Progressive Growing

progressive growing 的核心思想是:先生成低分辨率的图像,然后通过增加网络层数的方式逐渐生成高分辨率图像。这可以让网络先学习大尺度的结构信息,然后将注意力逐渐转移到小尺度的细节学习上;而不是同时学习所有尺度上的信息。图1展示了整体训练流程。

理解 Progressive GAN引言1. Progressive Growing2. Mnibatch Standard Deviation3. Normalization in Generator and Discriminator4. Multi-scale Statistical Similarity5. CELEBA-HQ

图1 生成器 G 和判别器 D 首先从 4x4 分辨率开始训练。随着训练的进行,镜像增加 G 和 D 的网络层数。图中 N x N 代表在 N x N 分辨率上操作的卷积层。所有已存在的层一直保持可训练的状态。

在增加网络层数的过程中,为了避免新加的层对已学习好的层的突然扰动,“we fade them in smoothly”。如图2所示。

理解 Progressive GAN引言1. Progressive Growing2. Mnibatch Standard Deviation3. Normalization in Generator and Discriminator4. Multi-scale Statistical Similarity5. CELEBA-HQ

图2 展示了 16x16 图像 (a) 转换成 32x32 图像 (c) 的过程。其中参数 alpha 从 0 到 1 线性增长;2x 和 0.5x 分别代表使用最近邻插值和平均池化翻倍和减半图像分辨率;toRGB 和 fromRGB 分别代表使用 1x1 卷积将特征图映射成 RGB 图像和反映射。

progressive growing 有两点好处:1. 训练更加稳定。因为每一步都是在上一步的基础上进行学习;2. 训练更快。因为有大部分的训练是在低分辨率图像上进行的。

2. Mnibatch Standard Deviation

GAN 学习到的生成多样性一般是训练集多样性的子集。为了提高生成多样性,作者增加了判别器的输入信息:整个 minibatch 图像的统计值。这样可以鼓励生成图像和训练图像具有相似的统计特征。因为考虑的是多样性,该统计值选取的是标准差。

具体实现方法是:计算所有特征图中每个位置的特征值沿 minibatch 维度的标准差,平均所有标准差得到一个实数,复制该实数至特征图相同的空间大小,将复制结果作为新的一层特征图连接到当前特征图最后。仅在判别器的最后一层进行 Mnibatch Standard Deviation 操作。

3. Normalization in Generator and Discriminator

该节对应引言中提到的第3条贡献:提出了两种 trick 来抑制生成器和判别器之间不健康的对抗:equalized learning rate 和 pixelwise feature vector normalization。作者认为,当出现不健康的对抗时,GAN 倾向于增大网络中数据的幅值。许多先前的工作使用不同的 batch norm 来抑制这种现象,然而,batch norm 本来是用来解决 covariate shift 问题,作者发现 GAN 并不存在该问题。因此,作者提出了两种不同的方法。

3.1 Equalized Learning Rate

当前常用的优化器通常具有尺度不变的性质(例如 RMSProp, Adam …),它们会根据估计到的标准差来规范化梯度的更新,这使得参数的更新与参数的尺度无关。因此,对于一些拥有更大动态范围的参数来说,它们会花费更长的时间取得最佳值。由于参数的动态范围各不相同,某一个学习率要么太大,要么太小。作者提出 Equalized Learning Rate 让每个参数的学习率和其动态范围相关,从而保证了每个参数的学习速度相近。

具体实现是:将原始参数 w i w_i wi​ 更改为 w i ^ = w i / c \hat{w_i} = w_i / c wi​^​=wi​/c, c c c 是使用 Kaiming initializer 计算出来的前一层规范化常数。

3.2 Pixelwise Feature Vector Normalization

为了避免出现不健康对抗时,生成器和判别器的参数幅值大幅增加,作者在生成器的每层卷积后将每个像素位置的特征向量规范化到单位长度。虽然这是一个很强的约束,但作者发现这似乎没有损害生成器的性能,在大部分数据集下都没有明显改变生成结果,并阻止了数据幅值的增加。

具体实现是: b x , y = a x , y / 1 N ∑ j = 0 N − 1 ( a x , y j ) 2 + ϵ b_{x,y} = a_{x,y}/\sqrt{\frac{1}{N}\sum^{N-1}_{j=0}(a^j_{x,y})^2+\epsilon} bx,y​=ax,y​/N1​∑j=0N−1​(ax,yj​)2+ϵ

​,其中 ϵ = 1 0 − 8 \epsilon=10^{-8} ϵ=10−8, N N N 是特征图的数量, x , y x,y x,y 表示特征的空间位置。

4. Multi-scale Statistical Similarity

作者认为有效的生成器所生成的图像,应该在所有尺度上和训练图像拥有相似的局部结构。作者提出使用生成图像和训练图像在 Laplacian Pyramid 表征下局部图像块之间的分布差异来度量。

一个单独的 Laplacian Pyramid 层级代表一个具体的空间频率段。作者采样了 16384 张图像,并从 Laplacian Pyramid 的每个层级各提取了 128 个描述子。这些描述子都是 7x7 大小的三通道图像块。定义来自层级 l l l 的训练集和生成集图像块分别为 { x i l } \{x^l_i\} {xil​} 和 { y i l } \{y^l_i\} {yil​},首先规范化这两个集合,然后计算它们之间的 sliced Wasserstein distance: S W D ( { x i l } , { y i l } ) SWD(\{x^l_i\},\{y^l_i\}) SWD({xil​},{yil​})。

5. CELEBA-HQ

数据集链接。它是 CelebA 的高质量版本,包含 30,000 张 1024x1024 分辨率的人脸图像。

继续阅读