主要内容

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

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

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

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

记分发生器 = 的意思是 ( Y ^ 生成的 ) ,

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

鉴于此 1. Y ^ 是属于“生成”类别的图像的概率,鉴别器分数是属于正确类别的输入图像概率的平均值:

scoreDiscriminator = 1. 2. 的意思是 ( Y ^ 真正的 ) + 1. 2. 的意思是 ( 1. Y ^ 生成的 ) ,

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

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

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

收敛失败

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

鉴别器占主导地位

当生成器分数达到零或接近零,而鉴别器分数达到一或接近一时,就会出现这种情况。

这幅图显示了鉴别器压制发生器的例子。请注意,生成器得分接近零,并且没有恢复。在这种情况下,鉴别器正确地分类了大多数图像。反过来,生成器也无法产生任何欺骗鉴别器的图像,从而无法学习。

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

  • 通过向真实图像随机提供虚假标签(单侧标签翻转)来损害鉴别器

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

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

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

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

发电机占主导地位

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

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

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

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

  • 通过添加退出层来削弱生成器

  • 通过减少过滤器的数量来损害发电机

模式崩溃

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

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

如果您观察到这种情况,则尝试通过以下方式提高生成器创建更多不同输出的能力:

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

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

  • 通过向真实图像随机提供虚假标签(单侧标签翻转)来损害鉴别器

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

另见

||||||

相关的话题