Wasserstein GAN 的训练稳定性

Jos*_*mon 7 python neural-network keras

我正在使用 Wasserstein GAN 开展一个项目,更具体地说,是实施 Wasserstein GAN 的改进版本。我有两个关于 wGAN 的稳定性和训练过程的理论问题。首先,众所周知,损失函数的结果与生成样本的结果质量相关(此处说明)。是否有一些额外的参考书目支持该论点?

其次,在我的实验阶段,我注意到使用 wGAN 训练我的架构比使用简单版本的 GAN 快得多。这是一种常见的行为吗?是否也有一些相关的文献分析?

此外,关于使用 Wasserstein 损失保证的连续函数的一个问题。我在实践中理解这个概念时遇到了一些问题,这意味着正常的 GAN 损失不是连续函数?

Emi*_*ani 4

  1. 您现在可以检查Inception ScoreFrechet Inception Distance 。还有这里。问题是 GAN 没有统一的目标函数(有两个网络),没有一致的方法来评估和比较 GAN 模型。相反,人们设计了与图像分布和生成器分布相关的度量。

  2. 与普通 GAN(Wasserstein 度量、权重裁剪和梯度惩罚(如果您正在使用它))相比,wGAN 具有更稳定的训练过程,因此速度可能会更快。我不知道是否有关于速度的文献分析,WGAN 可能并不总是比简单的 GAN 更快。WGAN 无法像 GAN 那样找到最佳纳什均衡。

  3. 考虑两个分布:p 和 q。如果这些分布重叠,即它们的域重叠,则 KL 或 JS 散度是可微的。当 p 和 q 不重叠时就会出现问题。如 WGAN 论文示例所示,假设 2D 空间上有两个 pdf,V = (0, Z) 、 Q = (K , Z),其中 K 不等于 0,Z 是从均匀分布中采样的。如果你试图很好地求出这两个 pdf 的 KL/JS 散度的导数,你就做不到。这是因为这两个散度将是一个二元指标函数(相等或不相等),并且我们不能对这些函数求导。然而,如果我们使用 Wasserstein 损失或地球移动器距离,我们可以采用它,因为我们将其近似为空间上两点之间的距离。 简短的故事:当且仅当分布有重叠时,正常的 GAN 损失函数是连续的,否则是离散的。

希望这可以帮助