本文主要介绍DCGAN的适应渐进式增长创建高分辨率图像的思路
深度卷积生成对抗网络是2020年最精致的神经网络体系结构。生成模型可以追溯到60年代,但是Ian Goodfellow在2014年创造的GAN,使得生成模型跟那个广泛的使用,这对于深度学习的未来有着前所未有的价值。
GAN知识要点
生成器根据噪声向量重建样本,该样本应与训练分布不可区分
生成器是主要的目标,一旦我们对它的结果满意,就可以丢弃鉴别器
由于这两个神经网络都是可微的,我们可以使用它们的梯度来引导它们朝着正确的方向
主要思路
生成器和鉴别器都以4×4像素开始。顺便说一下,这是由Ian Goodfellow提出的。
渐进增长要求在训练过程中同时扩展生成器和鉴别器的能力。层的增量添加允许模型有效地学习粗层次的细节,并在之后为双方学习更精细的细节。
这种增量性质允许训练首先发现图像分布的大规模结构,然后将注意力转移到越来越精细的尺度细节上,而不必同时学习所有尺度。
Progressive Growing of GANs for Improved Quality, Stability, and Variation, 2017.
这种增量模式利用了一种称为跳跃连接的东西来连接新的块到鉴别器的输入。此外,一个加权参数alpha控制新块的影响。Alpha从0开始,随着训练的进行线性增加到1。
对生成器的更改
生成器必须添加一个新的卷积层块,输出一个32x32的图像,在使用最近邻插值之前,将其与16x16层的输出连接起来。
许多GAN发生器使用转置的卷积层对图像进行上采样。
对鉴别器的更改
鉴别器必须通过添加新的卷积块和跳过连接来适应支持32x32的图像大小。然后输出图像使用平均池下行采样,以便它可以作为现有的16x16块的输入。
同样,大多数GANs使用步长2来获得相同的输出格式。
小批量的鉴别
与批处理归一化类似,研究人员已经提出了一种在两个网络中实现层归一化的方法。这被称为小批量鉴别。由于GAN倾向于仅捕获训练数据中发现的变异的一个子集,因此此方法可以在一定程度上解决这个问题 。让我们看看这是如何做到的
- 首先我们计算每个小批量中每个特征的标准差。
- 然后我们对这些估计的总体特征进行平均,得到一个单一的值
- 该值连接到小批上的所有空间位置,产生一个额外的特征映射。
总结
在StyleGANs上下文中,渐进式增长是所有这些块的一个系列,这些块逐渐增长成越来越高的分辨率输出,StyleGAN生成器本质上是这样的。每一个块都将由一个上采样层和一个卷积层组成,实际上,每两个卷积层都可以学习更多。
总而言之,渐进式增长将使图像分辨率翻倍,这样随着时间的推移,你的样式师更容易学习到更高分辨率的图像。本质上,这有助于更快更稳定的训练。
有用的链接:
- https://arxiv.org/pdf/1811.06229.pdf
- https://en.wikipedia.org/wiki/Nearest-neighbor_interpolation
- https://arxiv.org/abs/1710.10196
- https://machinelearningmastery.com/how-to-train-a-progressive-growing-gan-in-keras-for-synthesizing-faces/
- https://machinelearningmastery.com/introduction-to-progressive-growing-generative-adversarial-networks/
- https://github.com/tkarras/progressive_growing_of_gans