有时,当我在图像数据集上训练 DC-GAN 时,类似于 DC-GAN PyTorch 示例 ( https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html ),生成器或判别器都会卡在大值,而另一个变为零。在下面显示的示例损失函数图像中,我应该如何解释迭代 1500 之后发生的事情
?这是模式崩溃的一个例子吗?关于如何使训练更稳定的任何建议?我尝试降低 Adam 优化器的学习率,并取得了不同程度的成功。谢谢!
在训练 DC-GAN 时,可以调整哪些参数以避免生成器或判别器损失为零?
人工智能
机器学习
深度学习
卷积神经网络
生成对抗网络
生成模型
2021-11-13 20:16:37
1个回答
GAN 尤其难以训练,而且损失较大的情况并不少见。学习率是一个好的开始,但不稳定性可能来自多种原因。我假设您的代码或数据中没有错误。
一方面,梯度下降不太适合我们正在玩的 2 人游戏。我个人发现 ExtraAdam 可以产生更稳定的训练(代码、论文)。
它也可能来自损失,并且已经开发了许多技巧,其中最受欢迎的技巧之一是在梯度中强制平滑(参见 W-GAN、W-GAN-GP 等)。SpectralNorm(代码 论文)是一种非常流行且最近的判别器归一化技术。
有许多额外的技巧可以使 GAN 工作,例如标签平滑和翻转、鉴别器和生成器的不同更新率(例如在 BigGAN 中)。我建议你看看这个(有些老练的)技巧的好回购:ganhacks。
其它你可能感兴趣的问题