📜  StyleGAN – 风格生成对抗网络

📅  最后修改于: 2022-05-13 01:58:07.010000             🧑  作者: Mango

StyleGAN – 风格生成对抗网络

生成对抗网络 (GAN) 是由 Ian Goodfellow 在 2014 年提出的。 自问世以来,提出了很多改进,使其成为最先进的方法来生成包括合成图像在内的合成数据。然而,这些改进大多是在模型的鉴别器部分进行的,该部分改进了生成器的生成能力。这也意味着对生成器部分没有太多关注,导致对 GAN 的生成器部分缺乏控制。在生成部分可以更改一些参数,例如背景,前景和样式,或者对于人脸,在生成各种图像时可以更改许多特征,例如姿势,头发颜色,眼睛颜色等。

Style GAN 在生成器部分提出了很多更改,使其能够生成照片般逼真的高质量图像以及修改生成器部分的某些部分。

建筑学:

Style GAN 使用基线渐进式 GAN 架构,并在其中的生成器部分提出了一些更改。然而,鉴别器架构与基线渐进式 GAN 非常相似。让我们一一看看这些架构变化。

风格 GAN 架构

  • Baseline Progressive Growing GANs: Style GAN 使用基线渐进式 GAN 架构,这意味着生成的图像的大小从非常低的分辨率(4×4)逐渐增加到高分辨率(1024 x1024) 。这是通过向两个模型添加一个新模块以在将模型拟合到较小分辨率以使其更稳定后支持较大分辨率来完成的。
  • 双线性采样:论文作者在生成器和鉴别器中使用双线性采样而不是最近邻上/下采样(在以前的基线渐进式 GAN 架构中使用)。它们实现由低通滤波与每个上采样层之后,并且每个下采样层之前可分离2二项式滤波器的激活这个双线性采样。
  • 映射网络和样式网络:映射网络的目标是将输入的潜在向量生成为不同元素控制不同视觉特征的中间向量。使用映射代替直接向输入层提供潜在向量。在本文中,将大小为 512 的潜在向量(z)映射到另一个大小为 512 (w) 的向量映射函数是使用 8 层 MLP(8 层全连接层)实现的。映射网络 (w) 的输出然后通过学习的仿射变换 (A),然后进入 AdaIN(自适应实例归一化)模块的合成网络。该模型将编码映射转换为生成的图像。

风格 GAN 的生成器架构 vs 传统架构

  • AdaIN 的输入是 y = (y s, y b ),它是通过将 (A) 应用于 (w) 生成的。 AdaIN 操作由以下等式定义:

AdaIN (x_i, y) = y_{s, i}\left ( \left ( x_i - \mu_i \right )/ \sigma_i \right )) + y_{b, i}
其中每个特征图x单独归一化,然后使用来自样式y的相应标量分量进行缩放和偏置。因此, y的维度是该层上特征图(x)数量的两倍。合成网络包含 18 个卷积层 2 每个分辨率(4×4 – 1024×1024)。



  • 去除传统(潜在)输入:大多数以前的风格迁移模型使用随机输入来创建生成器的初始潜在代码,即 4×4 级别的输入。然而,style-GAN 的作者得出结论,图像生成特征由 w 和 AdaIN 控制。因此,他们用 4x4x512 的常量矩阵替换了初始输入。这也有助于提高网络的性能。
  • 添加噪声:输入在 AdaIN 操作之前,将高斯噪声(由 B 表示)添加到这些激活图中的每一个中。为每个块生成不同的噪声样本,并根据该层的缩放因子进行解释。
  • 人脸上有很多小而可以被视为随机的方面,例如雀斑、毛发的精确位置、皱纹、使图像更逼真并增加输出多样性的特征。将这些小特征插入到 GAN 图像中的常用方法是在输入向量中添加随机噪声
  • 混合正则化:样式生成在合成网络的每个级别使用中间向量,这可能会导致网络学习不同级别之间的相关性。为了减少相关性,模型随机选择两个输入向量(z 1和z 2 )并为它们生成中间向量(w 1和w 2 )。然后它用第一个级别训练一些级别,并切换(在随机分割点)到另一个级别以训练其余级别。这种随机分裂点的切换确保网络不会学习太多相关性。

基于分辨率的风格:图像

Caarse、Middle 和 Fine Imaaes 的风格变化。这里A和B是风格混合产生的结果

为了对生成图像的风格有更多的控制,合成网络提供对不同级别细节(或分辨率)的风格控制。这些不同的级别定义为:

  1. Coarse – ( 4×4 – 8×8 ) 的分辨率 – 影响姿势、一般发型、脸型等
  2. – 分辨率为 ( 16×16 – 32×32 ) – 影响更精细的面部特征、发型、睁眼/闭眼等。
  3. 精细– ( 64×64 – 1024×1024 )分辨率– 影响(眼睛、头发和皮肤)和微观特征的颜色。

本文的作者还在这些级别之间改变了噪音。因此,噪音将接管这些级别中风格变化的控制。例如:粗糙级别的噪声会导致更广泛的结构发生变化,而精细级别的噪声会导致图像更精细的细节发生变化。

特征解开研究

这些特征解开研究的目的是衡量特征分离的变化。在本文中,作者提出了两个单独的特征解开度量:

  • 感知路径长度:在该度量标准中,我们测量在两个随机输入之间进行插值时两个连续图像的 VGG 嵌入之间的加权差异。
    • 潜在空间 Z 上的平均感知路径长度在所有可能的端点上定义为

      \begin{aligned} l_{ Z }= E \left[\frac{1}{\epsilon^{2}} d\left(G\left(\operatorname{slerp}\left( z _{1}, z _{2} ; t\right)\right)\right.\right.\\ \left.\left.G\left(\operatorname{slerp}\left( z _{1}, z _{2} ; t+\epsilon\right)\right)\right)\right] \end{aligned}

  • 其中 z1, z2 ? P(z), t ? U(0, 1), G 是生成器(即,g ?f 用于基于样式的网络),d(·, ·) 评估结果图像之间的感知距离。这里slerp代表球面插值。感知距离的剧烈变化意味着多个特征一起发生了变化,它们可能会纠缠在一起
  • 线性可分性:在这种方法中,我们研究了通过线性超平面将潜在空间点分成两个不同集合的程度,以便每个集合对应于图像的特定二进制属性。例如,每个人脸图像属于男性或女性。

本文的作者将这些度量应用于w(中间映射)z(潜在空间),并得出结论 w 更可分离。这也强调了 8 层映射网络的重要性。

结果:



本文在 Celeba-HQ 数据集上生成了最先进的结果。本文还提出了一个新的人脸数据集,称为 Flicker Face HQ (FFHQ) 数据集,它比 Celeba-HQ 具有更多的变化。这种风格的 GAN 架构也在 FFHQ 数据集上产生了相当好的结果。以下是该架构在这两个数据集上的结果(FID 分数)。

这里我们使用从训练集中随机选择的 50, 000 张图像计算 FID 分数,并取训练过程中遇到的最小距离

参考:

  • StyleGAN 论文