对于正常的监督学习,数据集分为训练和测试(让我们保持简单)。
生成对抗网络是无监督学习,但鉴别器中有监督损失函数。
在训练 GAN 时将数据拆分为训练和测试是否有意义?
我的第一意见是否定的,但我不能 100% 确定。有什么理由为什么拥有一个测试集会帮助生成器?
对于正常的监督学习,数据集分为训练和测试(让我们保持简单)。
生成对抗网络是无监督学习,但鉴别器中有监督损失函数。
在训练 GAN 时将数据拆分为训练和测试是否有意义?
我的第一意见是否定的,但我不能 100% 确定。有什么理由为什么拥有一个测试集会帮助生成器?
训练 GAN 只是部分无监督的任务,恕我直言。对于生成器,它当然是无监督的,但它对对抗网络是有监督的。因此,测试 Disciminator 在它从未见过的新数据上区分真假案例的能力可能会很有用。
换句话说,如果您想了解判别器在从未见过的数据上泛化其任务的能力,那么将您的数据集拆分为 train(-validation)-test 是有意义的。如果这不符合您的兴趣,我想您不需要这样做。
测试拆分的目的通常是评估模型在以前未见过的数据中的性能。
虽然 GAN 生成器的可用性能指标存在问题,但它们确实存在。对于图像,您有Inception Score 和 Frechet Inception Distance。对于文本,您有质量与多样性图。
上面提到的评估措施根据真实数据评估生成样本的某些方面。为了评估 GAN 生成器的性能,您应该使用它以前从未见过的数据,即测试集。因此,为了评估 GAN,进行训练/测试拆分确实是有意义的。