在训练 GANS 时进行训练测试拆分是否有意义?

数据挖掘 机器学习 深度学习 交叉验证 无监督学习
2021-09-16 01:35:51

对于正常的监督学习,数据集分为训练和测试(让我们保持简单)。

生成对抗网络是无监督学习,但鉴别器中有监督损失函数。

在训练 GAN 时将数据拆分为训练和测试是否有意义?

我的第一意见是否定的,但我不能 100% 确定。有什么理由为什么拥有一个测试集会帮助生成器?

2个回答

训练 GAN 只是部分无监督的任务,恕我直言。对于生成器,它当然是无监督的,但它对对抗网络是有监督的。因此,测试 Disciminator 在它从未见过的新数据上区分真假案例的能力可能会很有用。

换句话说,如果您想了解判别器在从未见过的数据上泛化其任务的能力,那么将您的数据集拆分为 train(-validation)-test 是有意义的。如果这不符合您的兴趣,我想您不需要这样做。

测试拆分的目的通常是评估模型在以前未见过的数据中的性能。

虽然 GAN 生成器的可用性能指标存在问题,但它们确实存在。对于图像,您有Inception Score 和 Frechet Inception Distance对于文本,您有质量与多样性图

上面提到的评估措施根据真实数据评估生成样本的某些方面。为了评估 GAN 生成器的性能,您应该使用它以前从未见过的数据,即测试集。因此,为了评估 GAN,进行训练/测试拆分确实是有意义的。