W-GAN

2025年3月17日 | 阅读 7 分钟
W-GAN

得益于生成对抗网络 (GAN),深度学习迎来了一场革命,它使得生成逼真的合成数据成为可能。尽管传统的 GAN 取得了巨大的成功,但它们可能会生成低质量的样本,并在训练过程中出现不稳定性。Wasserstein 生成对抗网络 (WGAN) 被提出来解决这些问题。与传统的 GAN 相比,WGAN 具有一系列优势,包括提高样本质量、改善训练动态和增强稳定性。

Wasserstein 生成对抗网络的基础是概率分布之间的 Wasserstein 距离,通常也称为 Earth-Mover's 距离。WGAN 最大化 Wasserstein 距离,而传统的 GAN 使用 Jensen-Shannon 或 Kullback-Leibler 散度来量化分布之间的差异。除了提供更稳定的训练动态外,Wasserstein 距离还提供了量化分布不相似性的更有效方式。

W-GAN 的组成部分

  • 生成器和判别器:与传统的 GAN 一样,WGAN 也由生成器和判别器组成。生成器创建合成数据样本,而判别器则评估创建的样本相对于真实数据的真实性。
  • Wasserstein 距离:WGAN 的主要创新在于使用 Wasserstein 距离作为目标函数,而不是更传统的散度度量。Wasserstein 距离衡量将一个分布转换为另一个分布所需的“工作量”,是分布不相似性的更准确的指标。
  • 梯度惩罚:WGAN 引入了梯度惩罚项,使判别器遵循 Lipschitz 约束。这种惩罚可以提高训练的稳定性,并促进判别器输出的平滑性。

现在,我们来动手实现 W-GAN with Gradient Penalty,用于 MNIST 数据增强。

代码

导入库

实用工具

现在我们将提供所需的实用工具。

现在我们将创建一个函数,用于准备模型训练所需的数据。

构建模型

通过使用 Wasserstein 距离,原始的 Wasserstein GAN 生成的值函数比初始 GAN 论文中使用的值函数具有更优越的理论特性。为了使 WGAN 工作,判别器(也称为 critic)必须位于 1-Lipschitz 函数空间内。作者建议使用权重裁剪来实现这一限制。尽管权重裁剪是有效的,但它可能导致不期望的行为,并且是强制执行 1-Lipschitz 约束的麻烦技术。例如,非常深的 WGAN 判别器(critic)经常无法收敛。

权重裁剪并不是 WGAN-GP 方法为保证平稳训练所提出的唯一解决方案。作者们建议使用“梯度惩罚”来代替裁剪权重,其中包括添加一个损失项来将判别器梯度的 L2 范数保持在 1 附近。

发电机

我们首先将随机噪声输入生成器,然后将其塑造成 MNIST 图像格式。总体步骤如下:

  • 将输入噪声馈送到一个厚层。
  • 修改结果以包含三个维度。这代表 (宽度、长度和滤波器数量)。
  • 使用 Conv2DTranspose 进行反卷积,步长为二,滤波器数量为一半。
  • 最后一层将特征上采样到训练图像的大小。在此示例中为 28 x 28 x 1。

值得注意的是,除最后一个反卷积层外,所有层都应用了批归一化。将 selu 用作中间反卷积的激活函数,将 tanh 用作输出的激活函数是最佳实践。

判别器

判别器将使用跨步卷积来降低输入图像的维度。LeakyRELU 是这些的最佳实践激活。没有激活的情况下,输出特征将被展平并馈送到一个 1 个单元的密集层。

输出

W-GAN
W-GAN
W-GAN

W-GAN 实战

现在让我们看看 W-GAN 在实际应用中的情况。

输出

W-GAN
W-GAN
W-GAN
W-GAN

生成的图像

让我们来看看 W-GAN 模型生成的图像。

输出

W-GAN
W-GAN

求值

现在,我们将使用 Frechet 距离来表示一些生成数据样本与真实数据相比的评估。Frechet 距离是衡量两条曲线或形状之间相似性的度量。

输出

W-GAN

以下是我们对上述输出的解释:

  1. 第一个分数 49.98 相对较高。它意味着第一个数据集中的生成样本分布与真实数据分布之间存在较大偏差。
  2. 第二个分数 27.99 仍然很高,尽管比第一个低。
  3. 与前两组相比,第三组的得分 20.37 在生成数据分布与真实数据分布的相似性方面显示出进一步的改进。
  4. 第四个分数 11.02 远低于前几个分数。这表明第四组的生成样本分布与真实数据分布非常相似。

  5. 第五个分数 21.36,比第四个分数略好,但与第一个结果相比仍然相当高。
  6. 第六个分数 30.76,低于第二个和第三个,但高于第五个。
  7. 第七个分数 17.90,表明生成数据分布与真实数据分布非常匹配。
  8. 第八个分数 15.67,甚至低于第七个分数,这表明分布的相似性仍有改进空间。
  9. 第九个分数 21.52,比第八个分数略好,但与初始分数相比仍然相当高。
  10. 第十个分数 20.16,生成数据分布与真实数据分布相当吻合。

下一个主题贪婪层级预训练