常见问题

GAN 存在多种常见的失败模式。所有这些常见问题都是我们正在积极研究的领域。虽然这些问题都尚未得到彻底解决,但我们会介绍一些用户尝试过的方法。

消失的渐变

研究表明,如果判别器过于出色,生成器训练可能会因梯度消失而失败。实际上,最佳判别器无法为生成器提供足够的信息来取得进展。

尝试解决问题

  • Wasserstein 损失Wasserstein 损失旨在防止梯度消失,即使您将分类器训练到最佳状态也是如此。
  • 经过修改的 minimax 损失函数原始 GAN 论文提出了对 minimax 损失函数的修改,以处理梯度消失问题。

模式收起

通常,您希望 GAN 生成各种各样的输出。例如,您希望为面部生成器的每个随机输入生成不同的面孔。

不过,如果生成器生成的输出特别可信,则可能会学到生成该输出。事实上,生成器始终在尝试找到对判别器而言最合理的输出。

如果生成器开始反复生成相同的输出(或一小组输出),鉴别器的最佳策略是学习始终拒绝该输出。但是,如果下一代分类器陷入局部最小值而未找到最佳策略,那么下一次生成器迭代就很容易为当前分类器找到最合理的输出。

生成器的每次迭代都会针对特定的鉴别器过度优化,而鉴别器永远无法学会摆脱陷阱。因此,生成器会轮替使用一小部分输出类型。这种形式的 GAN 失败称为“模式崩溃”。

尝试解决问题

以下方法会尝试阻止生成器针对单个固定的鉴别器进行优化,从而迫使生成器扩大其范围:

  • Wasserstein 损失Wasserstein 损失可让您将分类器训练到最优状态,而无需担心梯度消失,从而缓解模式崩溃问题。如果鉴别器不会卡在局部极小值,则会学习拒绝生成器稳定下来的输出。因此,生成器必须尝试新的方法。
  • 展开式 GAN展开式 GAN 使用生成器损失函数,该函数不仅包含当前分类器的分类,还包含未来分类器版本的输出。因此,生成器无法针对单个判别器过度优化。

未能收敛

GAN 经常无法收敛,如训练模块中所述。

尝试采取补救措施

研究人员尝试过使用各种形式的正则化来提高 GAN 的收敛性,包括: