我正在阅读人们对DCGAN的实现,尤其是张量流中的this one。
在该实现中,作者绘制了鉴别器和生成器的损失,如下所示(图像来自https://github.com/carpedm20/DCGAN-tensorflow):
鉴别器和发生器的损失似乎都没有遵循任何模式。与一般神经网络不同,其损失随着训练迭代的增加而减少。如何解释训练GAN时的损失?
答案 0 :(得分:16)
不幸的是,就像你对GAN所说的那样,损失是非常不直观的。大多数事情发生在发电机和鉴别器相互竞争的事实上,因此对一方的改进意味着另一方面的损失更高,直到另一方在收到的损失上学得更好,从而搞砸其竞争对手等等。
现在应该经常发生的一件事(取决于你的数据和初始化)是鉴别器和发生器损耗都会收敛到某些永久数字,如下所示: (可以让损失稍微反弹一下 - 这只是该模型试图改善自身的证据)
这种损失收敛通常意味着GAN模型找到了一些最优的,它不能提高更多,这也意味着它已经学得很好。 (另请注意,数字本身通常不是很有用。)
以下是一些附注,我希望能提供帮助: