趋近智
生成对抗网络 (GAN) (GANs) 是生成式建模领域的一项重要进展,使机器能够生成逼真的数据,如图像、文本或音乐。由 Ian Goodfellow 及其同事于 2014 年提出,GANs 采用一种独特的对抗训练过程,涉及两个相互竞争的神经网络 (neural network)。理解其核心思想对于实现这些强大模型非常重要。
核心是,GAN 基于两个独立网络之间的零和博弈进行运作:
生成器 (G): 这个网络试图生成合成数据,以模拟目标数据分布。它接收一个随机噪声向量 (vector)作为输入,该向量通常从高斯分布或均匀分布之类的简单分布中抽取(常称作潜在空间,用 表示),并将其转换为一个与真实数据相似的数据样本(例如图像)。生成器的目标是变得足够擅长生成能够欺骗第二个网络的假样本。可以将其比作一个艺术品伪造者,试图制作出逼真的赝品。
判别器 (D): 这个网络充当分类器。它接收来自训练数据集的真实数据样本,或者由生成器生成的假样本。它的目标是准确判断输入样本是真实的(来自真实数据分布)还是合成的(由 G 生成)。继续这个比喻,判别器就像一个艺术评论家或侦探,试图区分真品和赝品。
GAN 架构的基本图示,显示了生成器从潜在向量创建数据以及判别器对真实数据和生成数据进行分类之间的互动。
训练 GAN 涉及一个迭代交替过程,其中生成器和判别器以对抗方式进行训练:
训练判别器: 在固定步数(通常只有一步)内,判别器被训练以提高其分类准确性。它会获得一批包含真实样本(来自训练集)和当前生成器生成的假样本的数据。判别器的权重 (weight)通过反向传播 (backpropagation)进行更新,依据是它能否正确地将真实样本标记 (token)为真实,将假样本标记为假。它的目标是最大化其分类表现。
训练生成器: 接下来,生成器被训练。在此阶段,判别器的权重保持不变。生成器使用新的随机潜在向量 (vector)生成一批假样本。这些假样本被输入到(冻结的)判别器中。生成器的权重随后根据其生成样本欺骗判别器的程度进行更新(即判别器对假样本的预测值与“真实”有多接近)。生成器的目标是最小化判别器检测其假样本的能力,从而有效地最大化其生成样本被判别器分类为真实的概率。
这种来回训练持续进行,理想情况下会达到一种平衡,即生成器生成的样本与真实数据无法区分,判别器被迫随机猜测(对真实/伪造输出 0.5 的概率)。
对抗训练过程通过数学形式化,使用价值函数 表示一个最小最大博弈:
我们来分析一下:
判别器 希望最大化这个价值函数。它旨在使真实样本 的 接近 1(最大化 ),并使假样本 的 接近 0(最大化 )。
生成器 希望最小化这个价值函数。由于 只影响第二项,它试图使 接近 1(欺骗判别器),这会最小化 。
实际考量:非饱和损失
在实践中,当判别器容易拒绝糟糕的初始伪造样本时(即 接近 0),最小化 可能导致生成器在训练早期出现梯度消失。 的梯度在 附近是平坦的。
一个常见修改是,将生成器的目标改为最大化 :
这个“非饱和”目标在训练早期提供更强的梯度,同时仍鼓励生成器生成判别器会分类为真实的样本。这是最常采用的目标。
虽然功能强大,但 GAN 的训练以具有挑战性和不稳定著称。一些常见问题包括:
尽管存在这些挑战,GANs 在生成高保真图像和其他数据类型方面取得了卓越的成就。了解其核心对抗机制、训练动态和潜在困难,为在 TensorFlow 中实现和实践这些高级模型提供了前提,我们将在接下来进行介绍。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造