python - Wasserstein GAN 的训练稳定性

标签 python keras neural-network

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

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

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

最佳答案

  • 您可以查看 Inception ScoreFrechet Inception Distance目前。还有here .问题是 GAN 没有统一的目标函数(有两个网络),没有一致的方法来评估和比较 GAN 模型。相反,人们设计了与图像分布和生成器分布相关的指标。
  • wGAN 可能更快,因为它有更稳定的训练程序,而不是普通的 GAN(Wasserstein 度量、权重裁剪和梯度惩罚(如果你正在使用它))。我不知道是否有关于速度的文献分析,WGAN 的情况可能并不总是比简单的 GAN 快。 WGAN 找不到像 GAN 那样的最佳纳什均衡。
  • 考虑两个分布:p 和 q。如果这些分布重叠,即它们的域重叠,则 KL 或 JS 散度是可微的。当 p 和 q 不重叠时就会出现问题。在 WGAN 论文示例中,假设在 2D 空间上有两个 pdf,V = (0, Z) ,Q = (K , Z) 其中 K 不同于 0,Z 是从均匀分布中采样的。如果您尝试对这两个 pdf 的 KL/JS 散度进行导数,则您不能。这是因为这两个背离将是一个二元指标函数(相等或不相等),我们不能对这些函数求导。但是,如果我们使用 Wasserstein 损失或 Earth-Mover 距离,我们可以采用它,因为我们将其近似为空间上两点之间的距离。 小故事:正常 GAN 损失函数是连续的,当分布有重叠时,否则是离散的。

  • 希望这可以帮助

    关于python - Wasserstein GAN 的训练稳定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61066012/

    相关文章:

    python - 使用opencv检测角的角度

    python - 2 和问题 : given an unsorted list of ints, 查找两个元素的总和是否等于给定目标。如何让我的代码更 Pythonic?

    python - 在 keras custom_objects 中加载预训练的注意力模型

    python - gensim word2vec : Find number of words in vocabulary

    python - 如何在Caffe中计算ROC和AUC?

    python - 如何在python中按数字获取顶级protobuf枚举值名称?

    python - 当某些单元格有多行时如何读取excel文件

    python - 检查目标 : expected softmax_1 to have shape (1, 时出错,但得到形状为 (2,)' 的数组,Keras

    machine-learning - 为什么在 mnist fasion keras 代码中,softmax 工作正常,但 sigmoid 工作不正常?

    tensorflow - 不理解 TensorFlow MNIST 指南中使用的代码