D_loss = - log[D(X)] - log[1 - D(G(Z))]
G_loss = - log[D(G(Z))]
因此,判别器试图最小化D_loss,生成器试图最小化G_loss,其中X和Z分别是训练输入和噪声输入。D(.)和G(.)分别是判别器和生成器神经网络的映射。
正如原始论文所述,当GAN训练了几步之后,它会达到一个点,在这个点上,生成器和判别器都无法改进,而D(Y)在任何地方都是0.5,其中Y是一些输入给判别器的值。在这种情况下,当GAN被充分训练到这个点时,
D_loss = - log(0.5) - log(1 - 0.5) = 0.693 + 0.693 = 1.386
G_loss = - log(0.5) = 0.693
那么,为什么我们不能使用D_loss和G_loss值作为评估GAN的指标呢?
如果两个损失函数偏离这些理想值,那么GAN肯定需要进行良好的训练或架构设计。正如原始论文中的定理1所讨论的那样,这些是D_loss和G_loss的最佳值,但为什么不能将它们用作评估指标呢?