生成对抗网络(Generative Adversarial Network, GAN)是一种生成模型,由生成器(Generator)和判别器(Discriminator)两个神经网络组成。它们通过对抗训练,使生成器可以产生更加真实的样本,从而实现对数据分布的学习。
GAN的主要特征是:
- 生成器(Generator):产生样本数据的神经网络,试图生成尽可能真实的样本以欺骗判别器。
- 判别器(Discriminator):判断样本是否来自真实数据的神经网络,试图尽可能准确地分类样本是否真实。
- 对抗(Adversarial):生成器和判别器相互对抗并促进对方提高效果的过程。判别器提高效果促使生成器产生更加真实的样本,生成器提高效果迫使判别器更加精确地判断。
- 损失函数:生成器利用判别器的损失函数来更新权重,判别器利用自己的损失函数来更新。
GAN的训练过程是:
- 提供带标记的数据集(真实样本和生成样本)
- 前向传播判别器,计算损失并更新判别器权重
- 前向传播生成器,利用判别器的损失函数计算生成器损失并更新生成器权重
- 重复2-3步骤,对抗迭代直到收敛
GAN的有点:
- 能够学习数据分布而不是简单记忆训练集
- 生成的样本质量高,有时可以达到人眼难以分辨的效果
- 理论上可以生成任何分布的数据,具有很强的泛化能力
- 对抗过程具有一定的游戏性质,能产生意料之外的生成效果
GAN由于以上优点,在图像生成、图像翻译等任务上表现优异。
GAN是近年来最流行和活跃的生成模型之一,产生了许多具有里程碑意义的工作。理解GAN有助于我们构建更加强大的生成模型与推动生成模型的发展。