Data-Efficient Instance Generation from Instance Discrimination
公众号:EDPJ
目录
0. 摘要
生成对抗网络 (GAN) 先进的图像合成,但是,在训练数据量有限的情况下,合成质量会显着下降。为了提高 GAN 训练的数据效率,之前的工作通常采用数据增强(data augmentation)来减轻鉴别器的过度拟合,但仍然通过双分类(即真实与假)任务来学习鉴别器。在这项工作中,我们提出了一种基于实例区分的数据高效实例生成 (Instance Generation,InsGen) 方法。具体来说,除了区分真域和假域外,鉴别器还需要区分每一个单独的图像,无论它来自训练集还是来自生成器。 这样判别器就可以利用无限的合成样本进行训练,缓解训练数据不足导致的过拟合问题。进一步引入噪声扰动策略以提高其判别力。同时,从鉴别器中学到的实例鉴别能力反过来被用来鼓励生成器进行多样化生成。大量实验证明了我们的方法在各种数据集和训练设置上的有效性。值得注意的是,在 FFHQ 数据集的 2K 训练图像设置上,我们以 23.5% 的 FID 改进优于最先进的方法。
1. 简介
我们从生成器端更改了训练目标。具体来说,除了让生成器骗过鉴别器之外,我们还希望生成器生成的所有样本都能被我们的实例感知鉴别器很好地识别为不同的实例。这符合多样化生成的目标,即要求每次合成都尽可能不同。
我们的主要贡献总结如下:
- 我们提出了一种数据高效实例生成(InsGen)方法,该方法将实例区分作为 GAN 训练中的辅助任务。
- 将合成数据作为无限样本,提高判别器的判别能力,进而大幅提高生成器的合成质量和多样性。
- 在各种数据规则设置下,我们的方法始终大大超越现有的替代方法。
2. 相关工作
GAN 中的数据增强。数据增强最大限度地利用可用数据来缓解具有数百万参数的深度模型的过拟合。它在训练判别模型中起着至关重要的作用。最近一些工作探索数据增强如何帮助训练 GAN。
- Zhao 等人对不同类型的增强对 GAN 训练的影响进行研究。
- Tran 等人对几种数据增强进行了理论分析。
- Zhao 等人提出了一种可区分的增强方法,使得增强操作可以应用于真实数据和合成数据。
- 相似的,Karras 等人设计不泄漏(leak)的增强,并引入基于概率的自适应策略来稳定训练过程。
- 与之前的工作不同,我们专注于将无监督表示学习引入到 GAN 训练中,这也需要增强。
我们的工作表明,最近的实例判别任务可以用作判别器的辅助任务,以在有限的训练数据下学习更多的判别表示,这反过来又大大提高了生成器的合成质量。
GAN 中的自监督学习。自监督学习背后的基本原理是设置各种带有无监督标签的任务。最近在 GAN 训练中引入了类似的想法作为辅助 loss 以提高合成性能。例如,
- Chen 等人将旋转预测任务分配给鉴别器以防止其发生灾难性遗忘
- Tran 等人提出了一个多类 minimax 游戏来鼓励生成器产生不同的样本。
- 在所有自监督学习方法中,旨在区分实例的对比学习在大规模表示学习中显示出巨大的潜力。许多人尝试通过从对比学习中吸取教训来改进生成模型,例如 GAN 的一致性正则化、图像到图像转换的补丁级对比学习,以及潜在增强条件图像合成的对比损失。类似于监督对比损失,一些并行工作 重新制定了具有对比损失的传统双分类任务(即真域与假域)。
相比之下,我们为鉴别器分配了一个简单的辅助任务,即识别每个图像实例,无论它是真实的还是由生成器合成的。这种实例鉴别任务有助于在低数据状态下维持鉴别器的鉴别能力,从而大大提高综合性能。
3. 方法
3.1 基础
用 GAN 合成图像。GAN 是一种流行的图像生成范例。它通常由两个网络组成:学习将隐变量 z 映射到逼真图像的生成器 G(·),以及旨在将真实图像 x 与合成图像 G(z) 分开的鉴别器 D(·)。这两个网络相互竞争并联合优化
其中 z 和 X 分别表示预定义的隐分布和真实数据分布。训练收敛后,合成图像应该和真实图像一样逼真,以欺骗鉴别器。从这个角度来看,合成质量在很大程度上取决于鉴别器的鉴别能力。
先前的文献已经肯定 GAN 会受到鉴别器训练不足的影响,并提出应用一系列数据增强 T (·) 来缓解过拟合问题。但他们并没有改变 GAN 的学习目标,并且在有限的训练数据下观察到性能急剧下降。
通过对比学习区分图像。众所周知,图像分类任务通常受益于更具辨别力的表示。与基于注释数据优化模型参数的监督训练算法不同,对比学习能够以无监督的方式从图像中提取代表性特征。
如图 1a 所示,背后的基本原理是将每个样本“标记”为一个单独的类,即实例鉴别。具体来说,给定图像 x,两个随机“视图”(例如,通过不同的增强)被创建为 query x_q 和 key x_k+。该 query-key 对被视为正对,而来自其他图像的所有“视图” 被视为关于 query 的负对。其中,N 是除 query 图像之外的图像总数。对比学习旨在最大化增强(即 x_q 和 x_k+)之间的一致性,并使 query 与许多负样本尽可能不同。因此,我们可以设计一个 (N + 1) 类分类任务,并学习具有对比损失 C 的模型,即 InfoNCE 损失:
其中 F(·) 是从给定图像 x 中提取表示 v 的主干网络,Φ(·) 是头部网络(例如,通常用几个全连接层实现)以将提取的特征投影到单位球体上,τ 代表温度,它是一个超参数。
回想一下,GAN 中鉴别器的原始目标也可以看作是一个双分类任务,即识别真实域和虚假域。在这项工作中,我们证明引入实例判别任务有助于增强判别器的判别能力,进而显着提高生成器的合成质量。
3.2 从可区分的实例中生成不同的实例
在这一部分中,我们将介绍如何将实例判别纳入 GAN 训练中,以生成数据高效且多样化的图像。 InsGen 方法有四个基本组成部分:1)区分真实图像,2)区分可以无限采样的假图像,3)噪声扰动策略,以及 4)鼓励生成器进行多样化生成的环回机制。
区分真实图像。为了识别数据集中的每个独立实例,如图 1a 所示,我们在其主干 d(·) 之上引入了一个超出了原始域分类头 Φ^domain (·) 的新的任务头 Φ^r (·),并训练这个具有额外训练目标的鉴别器
其中,x_q 和 都是从真实数据分布 X 中采样,并用各种可微增强 T (·) 进行变换。
区分假图像。我们还要求鉴别器识别每个单独的假图像,如图 1a 所示。相似地,将另一个任务头 Φ^f (·) 引入鉴别器。 值得一提的是,我们对真实数据和虚假数据使用单独的任务头(即 Φ^r (·) 和 Φ^f (·))。这是因为即使合成图像可以具有高质量,它们仍然与真实图像处于不同的分布,尤其是当生成器从头开始训练时。同时,原始域分类头 Φ^domain (·) 可以实现区分真实实例和假实例的任务。
噪声扰动。先前的工作已经观察到隐空间的连续性,使得基于邻域内隐编码合成的图像彼此非常接近。因此,它们更适合被视为正对而不是负对。从这个角度来看,我们将噪声扰动策略引入到假图像识别中。目标变成
其中,ε 代表扰动项,它是从方差远小于 Z 的高斯分布中采样的。这样的设计旨在强制判别器对小扰动不变,这使得实例判别任务更具挑战性。
多样生成。除了利用实例判别任务来提高判别器的判别能力外,我们还进一步设计了一种环回机制,以反过来使用学习到的实例判别来指导生成器。回想一下,除了图像质量之外,图像多样性也是评估生成模型的重要指标。多样生成要求所有生成的样本都可以彼此区分,这恰好符合我们实例区分的目标。换句话说,给定一个能够区分不同实例的鉴别器,我们希望生成器生成的所有样本都被识别为不同的样本。这个想法如图 1b 所示。通过比较图 1a 和图 1b,我们可以看到生成器与鉴别器共享相同的目标,但分别进行训练。因此,将相同的目标函数添加到生成器损失中
其中唯一的区别是在生成器的训练期间不应用噪声扰动。
完整的目标函数。综上所述,为了兼顾图像合成和实例判别,InsGen 中的判别器和生成器都进行了优化
其中,λ 表示不同项的权重。
3.3 实现
在 GAN 中的对抗训练流程之上,我们的 InsGen 方法仅在判别器网络上插入额外的损失输出,例如判别。因此,它可以很容易地在任何 GAN 框架上实现。在这一部分中,我们以最先进的 GAN 模型 StyleGAN2-ADA 为例来演示 InsGen 在实践中是如何实现的。
生成模型。StyleGAN2-ADA 采用 StyleGAN2 的架构,并提出了自适应鉴别器增强策略,用于有限数据的训练。特别是,它设计了一个可区分的增强流程,由 18 个 transformations 组成,以及一个自适应超参数来控制这些增强的强度。为了公平比较,在这项工作中,我们完全重用了网络结构、增强流程、增强强度的自适应策略以及 batch 大小和学习率等其他超参数。
实例判别。我们重用判别器的主干进行实例判别,使得额外的计算量极小,几乎不影响训练效率。我们将 StyleGAN2-ADA 鉴别器中的最后一个全连接层视为域分类头 Φ^domain (·),而所有其余层作为骨干网络 d(·)。真实实例判别头 Φ^r (·) 和假头 Φ^f (·) 都是用 2 个全连接层实现的,然后是 L_2 归一化。严格遵循 MoCo-v2,为每个任务头使用一个额外的队列来存储样本特征以节省计算成本。因此, 中的样本数等于队列大小,队列大小通常包含整个集合的大约 5% 的数据。 我们还介绍了动量编码器 D'。
4. 实验
我们在多个 benchmark 上评估了所提出的 InsGen 方法。
- 4.1节介绍了与 FFHQ和 AFHQ 数据集的先前文献的比较。InsGen 显着改善了多种数据机制设置下的基线,并大大优于以前的数据增强方法。
- 4.2 节提供了详细的消融(ablation)研究,以显示每个组件的重要性。
- 4.3 节讨论了数据效率的局限性。
4.1 主要结果
FFHQ 上的结果。表 1 显示了 FFHQ 上的比较。
当应用较浅的映射网络时,通常需要较少的数据。此外,dropout 也得到了很好的研究,可以用作为正则化的增强来代替。注意,这里的 * 是通过水平翻转将数据集放大2倍,这是 ADA 官方实现中推荐的。
图 2 展示了在各种数据设置下生成的几个示例。FFHQ 上的所有图像都是截断生成的。值得注意的是,我们的方法在给定完整数据集时进一步提高了合成质量,甚至优于以前最好的方法(zCR) ,即,当数据不是训练瓶颈时,可以进一步利用数据。
在 AFHQ 上的结果。定量和定性结果分别显示在表 2 和图 2 中。特别地,ContraD 引入了更强的增强,通过对比学习训练更好的鉴别器。该方法具有相似的动机,即真实图像可以产生强大的表征。在合成样本的使用方面,ContraD 关注二进制分类(即真实与虚假),并采用一些特定的设计,如停止梯度(stop-gradient)操作。不同的是,我们的方法利用生成的图像作为一种数据补充来产生更强的 representation 并指导生成器的学习。因此,InsGen 在 AFHQ 上实现了最先进的性能。
4.2 消融研究
为了调查 InsGen 中每个组件的重要性,我们对 FFHQ 进行了消融研究。在训练过程中,每个独特的图像都经过随机翻转操作以获得更强的基线。表 3 显示了消融研究中各种实验的集合。 我们选择 ADA 作为基线。
实例判别有多重要?在执行真实图像鉴别之后,无论训练集包含多少独特图像,合成质量都会得到提高。在某种程度上,鉴别器将从具有挑战性的任务中获得的强大 representations 中受益。因此,生成器需要生成更逼真的图像,以骗过鉴别器。
当添加带有假图像的实例判别时,可以进一步提高性能。例如,对于 2K 和 10K 图像,FID 分别获得了 -0.69 和 -0.30 的改进。特别地,随着真实图像数量的减少,收益会增加,这验证了我们的动机之一,即假样本也可以被视为无监督表示学习的数据源。
噪声扰动有多重要? 在 3.2 节提出了一种噪声扰动策略作为一种用于假图像识别的隐空间增强。 特别地,这种隐空间增强,即隐空间中的小运动,总是导致原始图像发生明显但语义一致的变化,这不容易通过一些几何和颜色变换来实现。同时,由于实例鉴别的目标,要求鉴别器对这种噪声扰动具有不变性。因此,最好利用假图像来产生更强的辨别 representations。如 表 3 所示,这种策略进一步在 2K、10K 和 70K 数据集上分别带来了 -1.27、-0.38 和 -0.18 的一致收益。
监督对生成器有多重要?表 3 的最后一行显示了反向传播到生成器的梯度的性能。即使我们已经获得了相当强的结果,生成器上的这种监督也可以在各种数据制度下提升性能。
实例鉴别的目标是根据其外观线索区分每个单独的图像。假设这个任务在固定数据集上表现良好,语义表示(semantic representation)将从这个学习过程中导出。然而,在区分假图像时,假数据集实际上是动态变化的。也就是说,如果生成器可以产生尽可能多的不同图像,我们就可以从数据的角度来完成这个任务。一般来说,这个任务被用来直接在生成器上促使多样化的生成。
负样本的数量有多重要?正如在第 3.2 节中提到的,合成样本可能比真实样本多得多,即,我们可以利用无限样本进行合成实例辨别。因此,我们研究了不同数量的合成样本的影响,即特征队列的长度,如图 3a 所示。显然,随着合成样本数量的增加,FID 逐渐降低,这表明涉及更多假图像对合成有很大好处,尤其是在训练数据有限的情况下。
判别器的判别能力是否真的增强了。正如我们在工作中提到的,当训练集较小时,鉴别器很难获得足够的鉴别力来训练生成器。然而,引入实例判别能够提高其判别能力,实现新的最先进的合成质量。为了研究判别能力是否得到提高,我们在图 4 的训练过程中绘制了任何输入图像的 logits(来自判别器)。具体来说,logit 表示输入图像被识别为真实图像的程度,并且训练图像的数量是2000。
显然,与基线方法 ADA 相比,我们的方法在整个训练过程中产生更高的真实分数和更低的假分数。这表明我们方法的鉴别器比基线更好地执行 domain 双分类(即真实与假),显示出更强的鉴别能力。它还验证了我们的动机,即区分每个单独图像的具有挑战性的任务确实可以增强鉴别器。 此外,采用我们的方法后,训练进度更加稳定。
4.3 数据效率的极限
虽然我们在标准设置下获得了新的最先进的综合性能,但我们也想知道我们的 InsGen 可以实现多少数据效率。因此,训练集中真实数据的数量进一步减少到 1000、500、250 和 100。为了进行同类比较,我们仍然在不降低其生成能力的情况下(使用更少的通道或更浅的映射网络)训练 StyleGAN2 的相同模型,因为这样需要更少的数据。同时,生成的分辨率保持为 256 X 256,并且数据集也通过水平翻转操作进行了放大。
定量和定性结果分别如图 3b 和图 5 所示。显然,随着训练图像数量从 70K 减少到 100,FID 显着增加。尽管如此,我们仅使用 100 张独特图像训练的 InsGen 仍然优于许多方法,例如图 3b 中使用 2K 图像的 PA-GAN。此外,通过 500 个训练样本,我们的方法能够获得与使用 10k 图像的方法相媲美的性能。也就是说,我们的 InsGen 可以将数据效率提高 20 以上。定性结果表明,无论数据集合中存在多少训练图像,我们的方法仍会产生有意义的图像而不会导致模型崩溃。
5. 结论
在这项工作中,我们开发了一种新颖的数据高效实例生成 (InsGen) 方法,用于训练具有有限数据的 GAN。将实例判别作为辅助任务,我们的方法充分利用真实图像和假图像来训练判别器。反过来,鉴别器被用来训练生成器合成尽可能多的不同图像。不同数据体系下的实验表明,InsGen 在图像质量和图像多样性方面都比基线有实质性的改进,并且大大优于以前的数据增强算法。
参考
Yang, Ceyuan, et al. "Data-efficient instance generation from instance discrimination." Advances in Neural Information Processing Systems 34 (2021): 9378-9390.
总结
1. 核心思想
这是比之前的数据增强算法性能更好的算法,它不止把真实样本用于训练,还把生成器生成的虚假样本用于训练。所以,即使真实样本的数量很少,最终也能获得较好的生成性能(高质量、高多样性)。
2. 步骤
实例鉴别不止区分真实图像与虚假图像,还要区分开每一个单独的图像。该方法有四个基本组成部分:
- 区分真实图像:鉴别器识别每一个真实样本图像。使用对比学习,把一个真实图像的数据增强当做该图像的正例,其它真实图像当做反例
- 区分可以无限采样的假图像:鉴别器识别每个单独的假图像。使用对比学习,把一个假图像的数据增强当做该图像的正例,其它假图像当做反例
- 噪声扰动策略:由于隐空间的连续性,使得基于邻域内隐编码(z+ε)合成的图像彼此非常接近。因此,它们更适合被视为正对而不是负对。依然使用对比学习。
- 鼓励生成器进行多样化生成:多样生成要求所有生成的样本都可以彼此区分,这恰好符合我们实例区分的目标。
3. 消融实验
为了调查实例鉴别中每个组件的重要性,作者进行了消融研究。
- 实例鉴别对提升性能很重要。此外,研究结果表明,假样本也可以被视为无监督表示学习的数据源(提升性能)。
- 噪声扰动很重要。这种隐空间增强,即隐空间中的小运动,总是导致原始图像发生明显但语义一致的变化,这不容易通过一些几何和颜色变换来实现。同时,由于实例鉴别的目标,要求鉴别器对这种噪声扰动具有不变性。该策略可提升性能。
- 合成样本(假样本)很重要。随着合成样本数量的增加,模型性能越来越好。