生成对抗网络是如何训练的?

人工智能 神经网络 深度学习 训练 生成对抗网络 自监督学习
2021-10-20 21:14:21

我正在阅读有关生成对抗网络 (GAN) 的文章,对此我有一些疑问。到目前为止,我了解到在 GAN 中有两种不同类型的神经网络:一种是生成的(G) 和另一个判别式 (D)。生成神经网络生成判别神经网络判断正确性的一些数据。

如何区分(D) 神经网络最初知道是否由G正确与否?我们是否必须训练D首先然后将其添加到GAN中G?

让我们考虑一下我受过训练的Dnet,它可以以 90% 的准确率对图片进行分类。如果我们添加这个D对于 GAN,它有 10% 的概率将图像分类错误。如果我们用这个来训练 GAND,那么它在对图像进行分类时也会有同样的 10% 错误吗?如果是,那么为什么 GAN 会显示出有希望的结果?

2个回答

比较生成数据和真实数据

根据定义,G 产生的所有结果总是被认为是“错误的”,即使对于一个非常好的生成器也是如此。

您提供判别神经网络D由生成器网络生成的混合结果G和来自外部来源的真实结果,然后你训练它来区分结果是否由生成器产生——你不是在比较“好”和“坏”的结果,而是在比较真实和生成的结果。

这将导致“相互进化”,因为D将学习找到将真实结果与生成结果区分开来的特征,并且G将学习如何生成难以与真实数据区分开来的结果。

判别网络(D)学会根据定义进行区分——我们为它提供真实的和生成的数据,并让它自己学习如何区分两者。

因此,我们期望网络D提高网络能力G生成越来越好的图像(或其他类型的数据),因为它试图“欺骗”网络D通过生成更类似于“真实数据”的新数据。这与网络的准确性无关D一点也不。这不是提高准确性,而是提高计算机生成更“可信”数据的能力。

也就是说,使用这种场景可能是提高神经网络分类能力的一种很好的“无监督”方式,因为它迫使生成器模型学习真实数据的更好特征,并学习如何区分实际特征和噪声,使用传统的监督学习方案所需的数据要少得多。