趋近智
训练生成对抗网络(GAN)是众所周知的难题。与最小化单个损失函数的传统监督学习不同,GAN训练涉及两个网络之间动态的最小-最大博弈。这种精细的平衡很容易被打破,导致训练不稳定。及早识别问题迹象对于采取纠正措施非常重要。
不稳定的GAN训练最常见的表现是振荡和彻底的发散。我们来了解如何发现这些问题。
诊断GAN训练状况的主要工具是观察生成器 (LG) 和判别器 (LD) 的损失曲线随时间(训练迭代次数或周期)的变化。
在理想情况下,两个损失值都会逐渐减小并稳定,表明生成器正在改进,判别器也保持其有效区分真实样本和虚假样本的能力。然而,你可能会观察到振荡行为:
损失值来回摆动: 生成器损失可能下降,而判别器损失上升,不久之后趋势又会逆转,如此循环往复。这通常表明生成器和判别器轮流压制对方,而不是平稳收敛。一个网络学习过快,大幅改变数据分布,而另一个网络难以适应,导致大的梯度更新,将系统推向另一个方向。
高频噪声: 尽管由于小批量随机性,损失曲线中存在一些噪声是正常的,但极度锯齿状或高幅度的波动可能表明不稳定。
振荡损失曲线的示例,其中 LD 和 LG 周期性地向相反方向移动。
尽管如果样本质量正在提高,一些振荡可能是可以接受的,但持续的大幅振荡通常在模式崩溃或发散之前出现。
发散是一种更严重的失败模式,训练过程会完全中断。迹象包括:
损失值爆炸: 一个或两个损失值迅速增加到无穷大(或产生 NaN 值)。这通常发生在梯度变得过大时,导致参数更新大幅跳过。
生成器损失消失: 生成器损失 LG 降至接近零并保持不变。这看起来可能不错,但通常意味着生成器已经找到了一种非常容易欺骗当前判别器的方法(可能通过模式崩溃),但实际上并没有学习真实的数据分布。判别器可能停滞不前,无法提供有用的梯度。
判别器损失停留在零: 如果 LD 降至零,这意味着判别器可以完美地区分真实样本和虚假样本。尽管这表明判别器很强,但这也意味着生成器没有收到任何有用的梯度信号(梯度“消失”了),停止了其学习过程。
LD爆炸而LG消失的示例,表明训练发散。注意Y轴是对数刻度。
检查判别器的原始输出(对数几率或概率)对于真实和虚假样本的表现。令 D(x) 为判别器对真实样本 x 的输出,而 D(G(z)) 为判别器对虚假样本 G(z) 的输出。
输出饱和: 如果 D(x) 始终接近1且 D(G(z)) 始终接近0(反之亦然,取决于标签约定),判别器非常自信。尽管这可能发生在训练早期,但如果持续存在,通常会导致生成器的梯度消失。理想情况是判别器不确定,输出值接近0.5,提供有意义的梯度以指导生成器。
判别器准确率: 监控判别器对真实样本和虚假样本的准确率也可以提供信息。如果准确率飙升至100%并保持不变,生成器可能没有在学习。反之,如果准确率停留在50%(随机猜测),判别器可能太弱,或者生成器可能已经产生出与真实样本无法区分的样本(在训练早期不太常见)。
不稳定性通常与流经网络的有问题梯度有关。
深度学习框架中的工具允许你在训练期间监控梯度的范数(大小)。梯度范数的突然激增通常在发散之前出现,而持续小的范数可能表明存在梯度消失问题。诸如梯度裁剪(限制最大梯度范数)之类的技术,或使用替代损失函数(如WGAN-GP,后续会讨论),旨在缓解这些问题。
单凭量化指标无法说明全部情况。定期检查生成器在整个训练过程中产生的样本是必不可少的。
目视检查提供了宝贵的定性反馈,补充了来源于损失曲线和判别器输出的量化指标。如果损失看起来稳定,但图像质量下降或发生崩溃,这仍然表明存在需要干预的问题。
识别这些不稳定的迹象是第一步。后续章节将详细介绍具体技术,包括替代损失函数和正则化方法,旨在预防或解决这些常见的GAN训练问题。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造