我试图了解GAN是如何训练的。我相信了解对抗训练过程。我似乎找不到有关以下信息:GAN 在训练过程中是否使用类标签?我目前的理解说不 - 因为鉴别器只是试图区分真实或虚假的图像,而生成器试图创建真实图像(但不是任何特定类别的图像)。
如果是这种情况,那么研究人员建议如何使用鉴别器网络进行分类任务? 该网络只能在真实或虚假图像之间执行双向分类。生成器网络也很难使用,因为我们不知道输入向量"Z"的什么设置将导致所需的生成图像。
这完全取决于您尝试构建的网络。如果您专门谈论基本的 GAN,那么您是对的。不需要类标签,因为鉴别器网络仅对真/假图像进行分类。有一个 GAN (cGAN) 的条件变体,您可以在生成器和鉴别器中使用类标签。这允许您使用生成器为特定类生成示例,并使用鉴别器对其进行分类(以及真/假分类)
从我所做的阅读来看,鉴别器网络只是用作训练生成器的工具,而生成器是关注的主要网络。当您可以使用 ResNet 或 VGG 网络来完成分类任务时,为什么要使用用于训练 GAN 进行分类的鉴别器。无论如何,这些网络都会更好地工作。但是,您是对的,由于模式崩溃并不断产生相同的图像,使用原始GAN可能会导致困难。这就是引入条件变体的原因。
希望这能解决问题!
GAN 在训练过程中是否使用类标签?
作者怀疑GAN不需要标签。这是正确的。鉴别器经过训练,可以对真假图像进行分类。由于我们知道哪些图像是真实的,哪些是由生成器生成的,因此我们不需要标签来训练鉴别器。生成器经过训练以欺骗鉴别器,鉴别器也不需要标签。
这是GANs最吸引人的好处之一[1]。通常,我们将不需要标签的方法称为无监督学习。也就是说,如果我们有标签,也许我们可以训练一个使用这些标签来提高性能的 GAN。这个想法是引入条件GAN的[2]后续工作的基础。
如果是这种情况,那么研究人员建议如何使用鉴别器网络进行分类任务?
这里似乎有一个误解。鉴别器的目的不是充当真实数据的分类器。鉴别器的目的是"告诉生成器如何改进其假货"。这是通过使用鉴别器作为损失函数来完成的,如果它是一个神经网络,我们可以通过它反向传播梯度。训练后,我们通常会丢弃鉴别器。
生成器网络也很难使用,因为我们不知道输入向量"Z"的什么设置将导致所需的生成图像。
发布问题的根本原因似乎就在这里。选择输入向量"Z",使其服从一些分布,通常是正态分布。但是,如果我们取"Z",一个具有正态分布条目的随机向量,并计算"G(Z)"会发生什么?我们得到一个新的向量,它遵循一个依赖于G的非常复杂的分布。GAN的整个想法是改变G,使这个新的复杂分布接近我们数据的分布。这个想法在 [3] 中的 f-Divergences 中得到了形式化。
[1] https://arxiv.org/abs/1406.2661
[2] https://arxiv.org/abs/1411.1784
[3] https://arxiv.org/abs/1606.00709