GAN 结构概览

生成对抗网络 (GAN) 由以下两个部分组成:

  • 生成器会学习生成合理的数据。生成的实例会成为分类器的负例训练示例。
  • 判别器会学习区分生成器的虚假数据与真实数据。如果生成器生成不可信的结果,判别器会对其进行惩罚。

训练开始时,生成器会生成明显虚假的数据,而判别器会快速学会判断这些数据是虚假的:

其中三个列分别标记为“生成的数据”“分类器”和“真实数据”。在“生成的数据”下,有一个蓝色矩形,其中包含一个波浪线和一个圆圈。矩形是生成器第一次尝试绘制一张美元钞票时画的,效果很差。“真实数据”下方显示了一张真实的 10 美元钞票的图片。“分辨器”下方是“FAKE”和“REAL”字样。箭头从“FAKE”一词指向“生成的数据”下的图片。另一个箭头从“真实”一词指向“真实数据”下的图片。

随着训练的进行,生成器越来越接近生成能够欺骗判别器的输出:

此图片在前一张图片的“生成的数据”“分类器”和“真实数据”标题下方添加了新行。在“生成的数据”下方,有一个绿色矩形,左上角有数字 10,并有一个简单的脸部图案。“真实数据”下方显示了一张真实的 100 美元钞票的照片。“分类器”下方是“FAKE”字样,箭头指向“生成的数据”下的图片;“REAL”字样下方是箭头,指向“真实数据”下的图片。

最后,如果生成器训练顺利,鉴别器就越难区分真实和虚假。它会开始将虚假数据归类为真实数据,准确性也会降低。

此图片在前面第一张图片中的“生成的数据”“分类器”和“真实数据”标题下方添加了新行。在“生成的数据”下方,有一张 20 美元钞票的照片。“真实数据”下方有一张 20 美元钞票的图片。“分类器”下方是“真实”字样,箭头指向“生成的数据”下方的图片;“真实”字样下方是箭头,指向“真实数据”下方的图片。

下面是整个系统的图片:

生成对抗网络示意图。该图的中心有一个标记为“discriminator”的框。两个分支从左侧进入此框。顶部分支从图表左上角的标记为“真实世界图片”的圆柱开始。一个箭头从此圆柱指向标有“Sample”(示例)的框。标记为“Sample”(示例)的框中有一个箭头,指向“Discriminator”(区分标识符)框。底部分支会馈送到“分类器”框中,该框以标有“随机输入”的框开头。一个箭头从“随机输入”框指向标有“生成器”的框。一个箭头从“Generator”(生成器)框指向第二个“Sample”(示例)框。一个箭头从“Sample”(示例)框指向“Discriminator”(区分标识符)框。“分辨器”框的右侧有一个箭头,指向一个包含绿色圆圈和红色圆圈的框。“Real”一词以绿色文本显示在框上方,而“False”一词以红色文本显示在框下方。两个箭头从此框指向图表右侧的两个框。其中一个箭头指向标有“Discriminator loss”(分类器损失)的框。另一个箭头指向标有“Generator loss”的框。

生成器和判别器都是神经网络。生成器输出直接连接到判别器输入。通过反向传播,分类器的分类会提供一个信号,用于生成器更新其权重。

下面我们来详细介绍一下该系统的各个部分。