GAN 中的判别器只是一个分类器。它会尝试区分真实数据与生成器创建的数据。它可以使用适合其所分类数据类型的任何网络架构。
图 1:鉴别器训练中的反向传播。
判别器训练数据
分类器的训练数据来自两个来源:
- 真实数据实例,例如真实的人物照片。在训练过程中,分类器会将这些实例用作正例。
- 生成器创建的虚构数据实例。在训练期间,鉴别器会将这些实例用作负例。
在图 1 中,两个“Sample”(示例)框代表输入到分类器的两个数据源。在鉴别器训练期间,生成器不会训练。其权重保持不变,同时会生成示例以供判别器进行训练。
训练判别器
分类器连接到两个损失函数。在判别器训练期间,判别器会忽略生成器损失,而只使用判别器损失。我们会在生成器训练期间使用生成器损失,如下一部分所述。
在判别器训练期间:
- 判别器会对生成器生成的真实数据和虚假数据进行分类。
- 如果判别器将真实实例误分类为虚假实例,或将虚假实例误分类为真实实例,判别器损失函数会对其进行惩罚。
- 判别器通过判别器网络从判别器损失进行反向传播来更新其权重。
在下一部分中,我们将了解为什么生成器损失与分类器相关联。