生成对抗网络(Generative Adversarial Networks, GANs)自提出以来,因其强大的生成能力而广受关注。然而,GANs的训练过程极易出现不稳定性和模式崩溃(Mode Collapse)的问题。本文将聚焦于改进损失函数和应对模式崩溃的策略,详细介绍如何提升GANs的稳定性。
损失函数是GANs训练过程中的核心组件,直接关系到生成器和判别器的优化方向。传统的GANs使用JS散度(Jensen-Shannon Divergence)作为度量标准,但其在某些情况下会导致训练不稳定。
WGAN引入了Earth Mover's Distance(EM距离,也称为Wasserstein距离)作为度量标准,有效解决了传统GANs训练不稳定的问题。WGAN的核心思想是将判别器改造成一个K-Lipschitz连续函数,通过权重裁剪(Weight Clipping)或梯度惩罚(Gradient Penalty)来实现。
梯度惩罚WGAN(WGAN-GP)的损失函数如下:
L_D = E[D(x)] - E[D(G(z))] - λE[(‖∇_x D(x_hat)‖_2 - 1)^2]
L_G = -E[D(G(z))]
其中,\(D\) 是判别器,\(G\) 是生成器,\(x\) 是真实数据,\(z\) 是随机噪声,\(x_hat\) 是真实数据和生成数据之间的插值,\(λ\) 是梯度惩罚系数。
另一种改进的损失函数是Hinge Loss,它在某些情况下比标准的交叉熵损失更能稳定GANs的训练。Hinge Loss鼓励判别器的输出远离决策边界,使得生成器更容易找到改进的方向。
Hinge Loss的判别器和生成器损失函数分别如下:
L_D = -E[min(0, -1 + D(x))] - E[min(0, 1 + D(G(z)))]
L_G = -E[D(G(z))]
模式崩溃是GANs训练过程中的另一个常见问题,表现为生成器只生成有限的几种样本,而忽视了数据集中的其他模式。
Unrolled GANs通过考虑生成器在未来几步内的更新方向,来防止模式崩溃。具体来说,在更新判别器时,不仅考虑当前生成器的输出,还预测几步后的生成器输出,并据此调整判别器的参数。
MSGANs通过在生成器的损失函数中加入一个正则化项,鼓励生成器探索数据集中的不同模式。该正则化项基于生成样本与多个真实样本之间的距离,促使生成器生成更多样化的样本。
一些研究提出了多样性敏感的损失函数,直接在损失函数中引入多样性度量,如覆盖度(Coverage)和差异度(Diversity)。这些损失函数旨在鼓励生成器生成覆盖整个数据分布的样本。
通过改进损失函数和采取应对模式崩溃的策略,可以显著提升GANs的稳定性。Wasserstein GAN和Hinge Loss等改进的损失函数为GANs的训练提供了更稳定的度量标准,而Unrolled GANs、MSGANs和多样性敏感的损失函数等策略则有效防止了模式崩溃。这些方法的综合应用,为GANs的进一步发展奠定了坚实的基础。