GAN 有许多常见的失败模式。所有这些常见问题都是进行中的研究领域。虽然所有问题都无法完全解决,但我们还是会提及人们尝试过的一些方法。
渐变梯度
研究表明,如果判别器太合适,生成器训练可能会因梯度消失而失败。事实上,最佳判别器无法提供足够的信息供生成器使用。
补救措施
- Wasserstein 损失:Wasserstein 损失旨在防止训练器确定最优值,从而梯度消失。
- 修改了最小损失函数:原始 GAN 论文提出了修改最小损失函数,以应对梯度消失。
模式收起
通常情况下,您希望 GAN 能够生成各种各样的输出。例如,您希望为人脸生成器的每个随机输入使用不同的人脸。
不过,如果生成程序生成了特别合理的输出,该生成器可能会学习仅生成该输出。事实上,生成器始终会尝试查找对判别器而言最合理的输出。
如果生成器一次又一次地产生相同的输出(或一小部分输出),判别器最好的策略是学习如何始终拒绝该输出。但是,如果新一代判别器陷入局部极限,并且找不到最佳策略,那么下一次生成器迭代将很难为当前判别器找到最合理的输出。
生成器对特定判别器的每次迭代都会过度优化,而判别器绝不会设法离开陷阱。因此,生成器会旋转一小组输出类型。这种形式的 GAN 故障称为模式收起。
补救措施
以下方法尝试阻止生成器针对单个固定判别器进行优化,从而强制生成器扩大范围:
- Wasserstein 损失:Wasserstein 损失功能允许您训练判别器至最优状态,从而缓解模式崩溃问题,而无需担心梯度消失。如果判别器未卡在局部最低值,它会学会拒绝生成器稳定使用的输出。因此,该生成器必须尝试新事物。
- 展开的 GAN:展开的 GAN 使用生成器损失函数,整合了当前判别器的分类,还包括未来判别器版本的输出。因此,生成器无法针对单个判别器进行过度优化。
收敛失败
GAN 通常无法收敛,如介绍训练的模块中所述。
补救措施
研究人员曾尝试采用各种形式的正则化来改善 GAN 收敛,其中包括:
- 向判别器输入添加噪声:请参阅面向训练生成对抗网络的原则原则一文。
- 对惩罚器权重进行惩罚:例如,请参阅通过正则化稳定生成对抗网络训练。