我在 MNIST 数据集上运行 GAN。随着 GAN 继续训练,生成器的质量似乎越来越差,甚至似乎开始收敛到一个值。
为什么会这样?我在这里运行这个 repo 的代码: https ://github.com/bstriner/keras-adversarial/blob/master/examples/example_gan.py
我在 MNIST 数据集上运行 GAN。随着 GAN 继续训练,生成器的质量似乎越来越差,甚至似乎开始收敛到一个值。
为什么会这样?我在这里运行这个 repo 的代码: https ://github.com/bstriner/keras-adversarial/blob/master/examples/example_gan.py
您所遇到的情况称为模式崩溃,它可能发生在 GAN 训练中,是其“训练不稳定问题”之一。如果您使用的是 Vanilla GAN,一种有效的方法是实现小批量判别,据我了解,这确实为判别器提供了真假批次,并且它必须分批决定它的真假。因此,如果经常遇到相同或几乎相同的图像,他很容易说它是假的。WGAN 和 BEGAN 等其他 GAN 架构表示它们不会遭受模式崩溃的影响,这将是另一种选择。
您也可以尝试将 GAN 扩展为 AC-GAN,它会产生分类样本 (0-9),但在 AC-GAN 中,也可能会遭受分类模式崩溃的影响。
这是实现小批量歧视的 keras 的拉取请求:https ://github.com/keras-team/keras/pull/3677