主要内容

监控GAN培训进度,识别常见故障模式

训练GANs可能是一项具有挑战性的任务。这是因为生成器和鉴别器网络在训练过程中相互竞争。事实上,如果一个网络学习得太快,那么另一个网络就可能无法学习。这通常会导致网络不能收敛。要诊断问题并在0到1的范围内监控生成器和鉴别器实现各自目标的情况,可以绘制它们的分数。有关显示如何训练GAN并绘制生成器和鉴别器分数的示例,请参见训练生成对抗网络(GAN)

鉴别器学习将输入图像分类为“真实的”或“生成的”。鉴别器的输出对应于一个概率 Y 输入图像属于“real”类。

生成器得分是所生成图像的鉴别器输出所对应的概率的平均值:

scoreGenerator 的意思是 Y 生成的

在哪里 Y 生成的 包含生成图像的概率。

考虑到 1 Y 是图像属于“生成”类的概率,判别器得分是输入图像属于正确类的概率的平均值:

scoreDiscriminator 1 2 的意思是 Y 真正的 + 1 2 的意思是 1 Y 生成的

在哪里 Y 真正的 包含真实图像的鉴别器输出概率,并且传递给鉴别器的真实图像和生成图像的数量相等。

在理想的情况下,两个分数都是0.5。这是因为鉴别器无法区分真实和虚假的图像。然而,在实践中,此场景并不是您可以成功实现GAN的唯一情况。

要监控训练进度,您可以随着时间的推移直观地检查图像,并检查它们是否在改进。如果图像没有改善,那么可以使用评分图来帮助诊断一些问题。在某些情况下,分数图可以告诉您没有继续训练的意义,您应该停止训练,因为已经出现了无法恢复训练的失败模式。以下部分将告诉您在评分图和生成的图像中寻找什么,以诊断一些常见的故障模式(收敛故障和模式崩溃),并建议您可以采取的改进训练的可能操作。

收敛失败

当生成器和鉴别器在训练过程中没有达到平衡时,就会发生收敛失败。

鉴频器占主导地位

当生成器得分达到0或接近0,而鉴别器得分达到1或接近1时,就会发生这种情况。

这幅图显示了鉴别器压制发电机的一个例子。注意,生成器得分接近于零,并且不会恢复。在这种情况下,鉴别器正确地分类了大多数图像。反过来,生成器无法产生任何欺骗鉴别器的图像,因此无法学习。

如果分数在许多迭代中都没有从这些值中恢复过来,那么最好停止训练。如果发生这种情况,那么尝试平衡生成器和鉴别器的性能:

  • 通过对真实图像随机给出错误标签(单侧标签翻转)来削弱鉴别器

  • 通过添加退出层来削弱鉴别器

  • 通过增加卷积层中的滤波器数量,提高生成器创建更多特征的能力

  • 通过减少其过滤器数量来削弱鉴别器

有关显示如何翻转真实图像标签的示例,请参见训练生成对抗网络(GAN)

发电机占主导地位

当生成器得分达到1或接近1时,就会发生这种情况。

这幅图显示了一个发电机压倒鉴别器的例子。注意,在多次迭代中,生成器得分都为1。在这种情况下,生成器学会了如何欺骗鉴别器。当这种情况发生在训练过程的早期,生成器可能会学习一个非常简单的特征表示,这很容易欺骗鉴别器。这意味着生成的图像可能非常差,尽管得分很高。请注意,在这个例子中,鉴别器的得分并不是非常接近于零,因为它仍然能够正确地分类一些真实的图像。

如果分数在许多迭代中都没有从这些值中恢复过来,那么最好停止训练。如果发生这种情况,那么尝试平衡生成器和鉴别器的性能:

  • 通过增加过滤器的数量来提高鉴别器学习更多特征的能力

  • 通过添加脱落层来削弱发电机

  • 通过减少过滤器的数量来削弱发电机

模式崩溃

模式崩溃是指GAN产生具有许多重复(模式)的小种类图像。这种情况发生在生成器无法学习丰富的特征表示时,因为它学会了将相似的输出关联到多个不同的输入。要检查模式崩溃,请检查生成的图像。如果输出中几乎没有多样性,其中一些几乎相同,则可能存在模式崩溃。

这幅图显示了模态坍缩的一个例子。注意,生成的图像图包含许多几乎相同的图像,尽管生成器的输入是不同的和随机的。

如果你观察到这种情况,那么尝试通过以下方法来增加生成器创建更多样化输出的能力:

  • 增加生成器输入数据的维数

  • 增加生成器的过滤器数量,使其能够生成更广泛的特征

  • 通过对真实图像随机给出错误标签(单侧标签翻转)来削弱鉴别器

有关显示如何翻转真实图像标签的示例,请参见训练生成对抗网络(GAN)

另请参阅

||||||

相关的话题