MSG-GAN Multi-Scale Gradients for Generative Adversarial Networks

MSG-GAN: Multi-Scale Gradients for Generative Adversarial Networks

虽然生成对抗网络(GANs)在图像合成任务中取得了巨大的成功,但它们却很难适应不同的数据集,部分原因是训练期间的不稳定性和对超参数的敏感性。这种不稳定性的一个普遍接受的原因是,当真实分布和虚假分布的支持度没有足够的重叠时,从鉴别器传递到生成器的梯度变得毫无信息。在这项工作中,我们提出了多尺度梯度生成对抗网络(MSG-GAN),这是一种简单而有效的技术,通过允许梯度从鉴别器流向生成器的多个尺度来解决这个问题。

这种技术为高分辨率图像合成提供了一种稳定的方法,并可作为常用的渐进式增长技术的替代方案。我们表明,MSG-GAN在各种不同大小、分辨率和领域的图像数据集以及不同类型的损失函数和架构上都能稳定地收敛,所有这些都有相同的固定超参数。与最先进的GANs相比,我们的方法在大多数情况下都能匹配或超过其性能。

1. Introduction

我们提出一种方法来解决图像生成任务的训练不稳定问题,研究如何利用多尺度的梯度来生成高分辨率的图像(由于数据维度的原因,通常更具挑战性),而不依赖以前的贪婪方法,如渐进式增长技术[15, 16]。MSG-GAN允许判别器不仅查看生成器的最终输出(最高分辨率),而且还查看中间层的输出(图2)。因此,判别器成为生成器多个尺度输出的函数,重要的是,它同时将梯度传递给所有尺度(更多细节见第1.1节和第2节)。

此外,我们的方法对不同的损失函数(我们展示了WGAN-GP和非饱和GAN损失与单边梯度惩罚的结果)、数据集(我们展示了广泛的常用数据集和新创建的印度名人数据集的结果)和架构(我们将MSG方法与ProGANs和StyleGAN基础架构整合)都很稳健。与渐进式增长[15]一样,我们注意到多尺度梯度在FID得分方面比普通的DCGAN架构有相当大的改善。

然而,我们的方法在大多数现有的数据集上以与最先进的方法相当的训练时间实现了更好的性能,而不需要渐进式增长引入的额外超参数,如不同生成阶段(决议)的训练计划和学习率。这种稳健性使得MSG-GAN方法可以很容易地在新的数据集上 “开箱即用”。我们还通过在高分辨率的FFHQ数据集上进行消融实验,展示了多尺度连接在多个生成阶段(粗、中、细)上的重要性。

综上所述,我们提出了以下贡献。首先,我们引入了一种用于图像合成的多尺度梯度技术,改善了先前工作中定义的训练的稳定性。其次,我们表明,我们可以在一些常用的数据集上稳健地生成高质量的样本,包括CIFAR10、Oxford102花、CelebA-HQ、LSUN教堂、Flickr Faces HQ和我们新的印度名人,都有相同的固定超参数。这使得我们的方法易于在实践中使用。

1.1. Motivation

Arjovsky和Bottou[1]指出,GANs训练不稳定的原因之一是,当真实分布和虚假分布的support之间没有大量重叠时,随机(无信息)梯度从判别器传递到生成器。一个早期的例子提出在真实和虚假图像中添加实例噪声,使supports 最小化[1, 30]。最近,Peng等人[25]提出了输入图像和鉴别器对这些输入图像的最深表示之间的mutual information bottleneck,称为variational discriminator bottleneck(VDB[25]),Karras等人[15]提出了一种渐进式增长技术,增加不断增加的分辨率层。

VDB解决方案迫使鉴别器只关注图像中最有辨识度的特征进行分类,这可以被看作是实例噪声的一个适应性变体。我们的工作与VDB技术是正交的,我们把对MSG-GAN和VDB组合的研究留给未来的工作

渐进式增长技术通过逐层训练GAN来解决不稳定的问题,逐渐将生成图像的操作分辨率提高一倍。直观地说,这种技术有助于解决support overlap重叠问题,因为它首先在数据维度较低的低分辨率上实现了良好的分布匹配,然后用这些先前训练的权重部分初始化(真实分布和假分布之间有大量的support overlap重叠)高分辨率训练,重点学习更精细的细节。

虽然这种方法能够产生最先进的结果,但它可能很难训练,因为每个分辨率增加了需要调整的超参数,包括不同的迭代次数、学习率(对于生成器和鉴别器[12]来说可能不同)和 fade-in iterations。此外,一个同时提交的文件[17]发现,它导致了相位伪影,即某些生成的特征附着在特定的空间位置。因此,我们的主要动机在于通过提供一个更简单的替代方案来解决这些问题,从而获得高质量的结果和稳定的训练。

尽管目前在Imagenet数据集上最先进的类条件图像生成方法,即BigGAN[4],并没有采用多尺度图像生成,但请注意他们操作的最高分辨率是512x512。所有高分辨率的先进方法[15, 16, 17, 34, 40]都使用了某种形式的多尺度图像合成。多尺度图像生成是一种成熟的技术,在深度网络开始流行这项任务之前,就已经有了一些方法[20, 35]。最近,一些基于GAN的方法将高分辨率图像合成的过程分解为更小的子任务[36, 39, 38, 8, 9, 15, 34, 40]。

扫描二维码关注公众号,回复: 13395394 查看本文章

例如,LRGAN[36]使用单独的生成器来合成最终图像的背景、前景和compositor masks。GMAN和StackGAN等作品分别采用一个生成器和多个判别器来进行教学和多尺度生成的变化[8, 39, 38].MAD-GAN[9]则采用多个生成器来解决模式崩溃的问题,通过训练多代理设置,使不同的生成器在训练数据集中捕捉不同的模式。

LapGAN[5]使用一个生成器和多个判别器对不同尺度的图像的拉普拉斯金字塔的多尺度成分进行建模。Pix2PixHD[34]使用三个结构相似的判别器,作用于通过对真实图像和生成的图像进行下采样得到的三种不同分辨率的图像。LapGAN[5]使用一个生成器和多个判别器对不同尺度的图像的拉普拉斯金字塔的多尺度成分进行建模。Pix2PixHD[34]使用三个结构相似的判别器,作用于通过对真实图像和生成的图像进行下采样得到的三种不同分辨率的图像。

我们提出的方法从所有这些作品中获得了建筑学上的灵感,并建立在他们的教义和意识形态之上,但有一些关键的区别。在MSG-GAN中,我们使用一个单一的判别器和一个具有多尺度连接的生成器,这使得梯度可以同时在多个分辨率下流动。所提议的方法有几个优点(主要由简单性驱动)。如果在每个分辨率下使用多个判别器[39, 38, 5, 40, 34],总参数在不同尺度下呈指数增长,因为需要重复下采样层,而在MSG-GAN中,这种关系是线性的。

在MSG-GAN中,我们使用一个单一的判别器和一个具有多尺度连接的生成器,这使得梯度可以同时在多个分辨率下流动。所提议的方法有几个优点(主要由简单性驱动)。如果在每个分辨率下使用多个判别器[39, 38, 5, 40, 34],总参数在不同尺度下呈指数增长,因为需要重复下采样层,而在MSG-GAN中,这种关系是线性的。此外,具有不同有效场的多个判别器[34, 40]不能跨尺度共享信息,这可以使任务更加容易。除了所需的参数和设计选择较少外,我们的方法还避免了在多个尺度上生成的图像之间需要明确的颜色一致性正则化项,这在StackGAN[38]中是必要的。

2. Multi-Scale Gradient GAN

在这里插入图片描述

图2:MSG-GAN的架构,这里显示的是ProGANs[15]中提出的基础模型。我们的结构包括从生成器的中间层到判别器的中间层的连接。送到鉴别器的多尺度图像与从卷积层的主要路径上得到的相应激活量相连接,然后是一个组合函数(黄色显示)。

我们对MSG-GAN框架应用于两个基础架构进行了实验,即ProGANs[15]和StyleGAN[16]。我们将这两种方法分别称为MSG-ProGAN和MSG-StyleGAN。尽管名称不同,但在任何MSG变体中都没有使用渐进式增长,我们注意到没有渐进式增长的ProGANs本质上是DCGAN[26]架构。图2显示了我们的MSG-ProGAN架构的概况,我们在本节中对其进行了更详细的定义,并在补充材料中包括了MSGStyleGAN模型的细节。

让生成器函数 g g e n g_{gen} ggen的初始块定义为 g g e n : Z → A b e g i n g_{gen} : Z →A_{begin} ggen:ZAbegin,这样集和Z和 A b e g i n A_{begin} Abegin分别定义为 Z = R 512 Z = \mathbb R^{512} Z=R512,其中 z ∼ N ( 0 , I ) z∼N(0,\mathbb I) zN(0,I),使 z ∈ Z , A b e g i n = R 4 × 4 × 512 z∈Z,A_{begin} = \mathbb R ^{4×4×512} zZAbegin=R4×4×512包含[4×4×512]维的激活。让 g i g^i gi成为一个通用函数,作为基本的生成器块,在我们的实现中,它包括一个上采样操作,然后是两个卷积层。

在这里插入图片描述

其中 c i c_i ci是生成器的第i个中间激活的通道数量。我们在补充材料中提供了所有层中 c i c_i ci的大小

在这里插入图片描述

我们现在定义函数r,它在生成器的不同阶段产生输出(图2中的红色块),输出对应于最终输出图像的不同下采样版本。我们将r简单地建模为一个(1x1)卷积,将中间的卷积激活量转换为图像。

在这里插入图片描述

换句话说, o i o_i oi是由生成器ai的第i个中间层的输出所合成的图像。生成器 a i a_i ai的第i个中间层的输出合成的图像。与渐进式增长[15]背后的想法类似,r可以被看作是一个正则器,要求学到的特征图能够直接投影到RGB空间。

现在我们开始定义判别器。因为判别器的最终批判性损失不仅是生成器的最终输出y’的函数,也是中间输出 o i o_i oi的函数,梯度可以从判别器的中间层流向生成器的中间层。我们用字母d表示鉴别器函数的所有组成部分。我们把鉴别器的最后一层(提供critic score)命名为 d c r i t i c ( z ′ ) dcritic(z') dcritic(z),把定义鉴别器第一层的函数命名为 d 0 ( y ) d^0(y) d0(y) d 0 ( y ′ ) d^0(y') d0(y),以真实图像y(真实样本)或最高分辨率合成图像 y ′ y' y(虚假样本)作为输入。

同样地,让 d j d^j dj代表判别器的中间层函数。注意,i和j之间的关系总是j=k-i。因此,鉴别器的任何第j个中间层的输出激活量 a j ′ a'_j aj定义为:

在这里插入图片描述

其中φ是一个函数,用于将生成器第(i)个中间层(或相应的最高分辨率真实图像y的下采样版本)的输出 o i o_i oi与判别器中第(j - 1)个中间层的相应输出相结合。在我们的实验中,我们试验了这个组合函数的三种不同变体。

在这里插入图片描述

其中,r’是与r类似的另一个(1x1)卷积操作,[;]是一个简单的通道连接操作。我们在第四节中比较这些不同的组合函数。最后的鉴别器函数被定义为。

在这里插入图片描述

我们为dcritic函数试验了两种不同的损失函数,即ProGAN[15]使用的WGAN-GP[11]和StyleGAN[16]使用的Non-saturating GAN loss与1-sided GP[10, 23]。请注意,由于判别器现在是生成器产生的多个输入图像的函数,我们将梯度惩罚修改为对每个输入的惩罚的平均值。

3.1. Implementation Details

对于每个数据集,我们使用相同的初始latent维度512,从标准正态分布 N ( 0 , I ) N(0,\mathbb I) N(0,I)中抽取,然后进行 hypersphere normalization[15]。在所有的实验中,我们对MSG-ProGAN和MSG-StyleGAN使用相同的超参数设置(lr=0.003),唯一的区别是上采样层的数量(低分辨率的数据集更少)。

所有的模型都是用RMSprop(lr=0.003)训练生成器和鉴别器的。我们根据标准的正态N(0,I)分布来初始化参数。为了与之前发表的工作相匹配,StyleGAN和MSGStyleGAN模型用Non-saturating GAN loss with 1-sided GP进行训练,而ProGANs和MSG-ProGAN模型则用WGAN-GP损失函数进行训练。

我们还将MinBatchStdDev技术[15, 16]扩展到我们的多尺度设置中,其中一批激活的average standard被反馈到鉴别器中以提高样本多样性。为此,我们在鉴别器的每个区块的开始添加一个单独的MinBatchStdDev层。这样一来,鉴别器就可以获得生成样本的批次统计,以及每个尺度上的straightpath activations,并可以检测到生成器的某种程度的模式坍缩。

当我们自己训练模型时,我们报告训练时间和使用的GPU。我们在相应的实验组中使用相同的机器,这样就可以直接进行训练时间的比较。请注意,显示的真实图像数量和训练时间的变化是因为,按照惯例,我们报告了在固定的迭代次数中获得的最佳FID分数,以及获得该分数所需的时间。重现我们工作所需的所有代码和训练好的模型都可用于研究目的,网址是https://github.com/akanimax/msg-stylegan-tf。

我们在第4节中讨论了一些关于这一点的假设,但要注意的是,我们的方法确实有其他的优势,即它似乎更容易被推广到不同的数据集,正如我们的其他实验中所显示的。另外,我们生成的图像没有显示任何相位伪影的痕迹[17],而相位伪影在progressively grown GANs中是非常明显的。

Stability during training 为了比较MSG-ProGAN与ProGAN在训练期间的稳定性,我们测量了随着迭代的进行(在CelebA-HQ数据集上),对于same fixed latent points所生成的样本的变化。这种方法是由[37]引入的,作为衡量训练期间稳定性的方法,我们通过计算两个连续样本之间的平均平方误差来量化它。

图6显示,虽然ProGANs只在较低的分辨率下倾向于收敛(做出较少的改变),但MSG-ProGAN在所有的分辨率下都显示出相同的收敛特征。ProGANs的训练历时在每个分辨率上依次进行,而对于MSG-ProGAN来说,它们是同时进行的(图5)。虽然不是产生好结果的必要条件,但具有高稳定性的方法是有优势的,因为在训练过程中,通过可视化快照,更容易对最终结果有一个合理的估计,当训练工作需要几天到几周的时间时,这可以帮助我们。

是产生好结果的必要条件,但具有高稳定性的方法是有优势的,因为在训练过程中,通过可视化快照,更容易对最终结果有一个合理的估计,当训练工作需要几天到几周的时间时,这可以帮助我们。

Robustness to learning rate 先前的工作[28, 14, 24, 23]和我们的经验都表明,GAN在训练过程中的收敛性在很大程度上取决于超参数的选择,特别是学习率。为了验证MSG-ProGAN的稳健性,我们用四个不同的学习率(0.001、0.003、0.005和0.01)对CIFAR-10数据集进行了训练(表3)。我们可以看到,我们所有的四个模型都在收敛,产生了合理的图像和类似的起始分数,即使学习率有很大的变化。健壮的训练方案是很有意义的,因为它们表明一种方法可以很容易地被推广到未见过的数据集。

猜你喜欢

转载自blog.csdn.net/weixin_37958272/article/details/118244819