GAN 培训

由于 GAN 包含两个单独训练的网络,因此其训练算法必须解决两个复杂问题:

  • GAN 必须同时进行两种不同类型的训练(生成器和鉴别器)。
  • 很难确定 GAN 是否已收敛。

交替训练

生成器和鉴别器具有不同的训练过程。那么,我们如何整体训练 GAN?

GAN 训练会交替进行:

  1. 分类器会训练一个或多个 epoch。
  2. 生成器会进行一个或多个 epoch 的训练。
  3. 重复第 1 步和第 2 步,继续训练生成器网络和鉴别器网络。

在鉴别器训练阶段,我们会让生成器保持不变。由于判别器训练会尝试找出如何区分真实数据和虚假数据,因此它必须学习如何识别生成器的缺陷。这对于经过充分训练的生成器来说是一个不同于生成随机输出的未训练生成器的问题。

同样,在生成器训练阶段,我们会让鉴别器保持不变。否则,生成器会尝试命中移动目标,并且可能永远不会收敛。

正是这种来回交互,让 GAN 能够解决原本难以解决的生成问题。我们从一个更简单的分类问题入手,逐步进入难度更高的生成问题。反之,如果您无法训练分类器来区分真实数据和生成的数据(即使是初始随机生成器输出),则无法开始 GAN 训练。

收敛

随着生成器在训练过程中不断改进,鉴别器的性能会变得更差,因为鉴别器无法轻易区分真实图片和虚假图片。如果生成器完全成功,则判别器的准确性为 50%。实际上,判别器会抛硬币来进行预测。

这种进展会给 GAN 的整体收敛带来问题:随着时间的推移,鉴别器反馈的意义会越来越小。如果 GAN 在分类器提供完全随机反馈之后继续训练,则生成器会开始根据垃圾反馈进行训练,其自身质量可能会崩溃。

对于 GAN,收敛通常是一种短暂的状态,而不是稳定的状态。