Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

  • QQ空间
  • 回复
  • 收藏

GAN — Wasserstein GAN & WGAN-GP

lijingle gan 2022-1-12 19:24 2571人围观

训练 GAN 很困难。 模型可能永远不会收敛,并且模式崩溃很常见。 为了向前迈进,我们可以进行渐进式改进或采用新的cost函数的新路径。 cost函数在 GAN 训练中重要吗? 本文是 GAN 系列的一部分,该系列详细研究了 Wasserstein GAN (WGAN) 和 WGAN-Gradient 惩罚。 Wasserstein GAN 的方程看起来非常难。 实际上,它们非常简单,我们将通过示例对其进行解释。

Earth-Mover (EM) 距离/ Wasserstein 度量
让我们完成一个关于移动盒子的简单练习。 我们得到 6 个框,我们想将它们从左侧移动到右侧虚线正方形标记的位置。 对于框 #1,我们将其从位置 1 移动到位置 7。移动成本等于其重量乘以距离。 为简单起见,我们将权重设置为 1。因此移动框 #1 的成本等于 6 (7-1)。


下图展示了两种不同的移动方案γ。 右侧的表格说明了盒子是如何移动的。 例如,在第一个移动方案中,我们将 2 个框从位置 1 移动到位置 10,因此条目 γ(1, 10) 设置为 2。 以下任一计划的总运输成本为 42。


然而,并非所有的移动都承担相同的成本。 Wasserstein 距离(或 EM 距离)是最便宜的移动成本。 在下面的示例中,两个计划的成本不同,Wasserstein 距离(最小成本)为 2。


在解释之前,让我们先介绍一些复杂的术语。 Wasserstein 距离是将数据分布 q 转换为数据分布 p 时传输块的最小成本。 真实数据分布 Pr 和生成数据分布 Pg 的 Wasserstein 距离在数学上定义为任何运输计划(即最便宜计划的成本)的最大下限(下确界):


来自 WGAN 论文:

Π(Pr, Pg) 表示其边缘分别为 Pr 和 Pg 的所有联合分布 γ(x, y) 的集合。

不要被数学公式吓到。 上面的方程等价于我们在连续空间中的例子。 Π 包含所有可能的传输计划 γ。



我们将变量 x 和 y 组合起来形成一个联合分布 γ(x, y) 和 γ(1, 10) 就是位置 10 有多少盒子来自位置 1。位置 10 的盒子数量必须最初来自任何位置 , 即 ∑ γ(*, 10) = 2。这与说 γ(x, y) 必须分别有边际 Pr 和 Pg 相同。


KL-Divergence 和 JS-Divergence

在提倡任何新的cost函数之前,让我们先看看生成模型中使用的两个常见分歧,即 KL-Divergence 和 JS-Divergence。


其中 p 是真实数据分布,q 是根据模型估计的分布。 假设它们是高斯分布的。 在下图中,我们绘制了具有不同均值的 p 和一些 q。


下面,我们绘制了 p 和 q 之间相应的 KL-divergence 和 JS-divergence,均值范围从 0 到 35。正如预期的那样,当 p 和 q 相同时,散度为 0。随着 q 的均值增加, 分歧增加。 散度的梯度最终会减小。 我们的梯度接近于零,即生成器没有从梯度下降中学到任何东西。


判别很容易。 在实践中,GAN 比生成器更容易优化判别器。 用最优判别器最小化 GAN 目标函数相当于最小化 JS-divergence(证明)。 如上所示,如果生成的图像的分布 q 远离ground truth p,则生成器几乎没有学到任何东西。

Arjovsky 等人 2017 年写了一篇论文以数学方式说明 GAN 问题,得出以下结论:

最佳鉴别器为生成器提供了良好的信息以进行改进。 但是如果生成器还没有做好,生成器的梯度会减小,并且生成器什么也学不到(我们刚刚解释的结论相同)。


最初的 GAN 论文提出了一种替代cost函数来解决这个梯度消失问题。 然而,Arjovsky 说明新函数具有很大的梯度变化,这使模型变得不稳定。


Arjovsky 建议在生成的图像中添加噪声以稳定模型。



Wasserstein 距离

Wasserstein GAN (WGAN) 没有添加噪声,而是使用 Wasserstein 距离提出了一种新的cost函数,该函数在任何地方都具有更平滑的梯度。 无论生成器是否在执行,WGAN 都会学习。 下图重复了 GAN 和 WGAN 的 D(X) 值的类似图。 对于 GAN(红线),它填充了梯度减小或爆炸的区域。 对于 WGAN(蓝线),梯度在任何地方都更平滑,并且即使生成器没有产生好的图像也能更好地学习。


Wasserstein GAN

然而,Wasserstein 距离的方程非常棘手。 使用 Kantorovich-Rubinstein 对偶,我们可以将计算简化为


其中 sup 是最小上限,f 是遵循此约束的 1-Lipschitz 函数(有关 Lipschitz 约束的更多信息,请参见此处):



所以要计算 Wasserstein 距离,我们只需要找到一个 1-Lipschitz 函数。 像其他深度学习问题一样,我们可以建立一个深度网络来学习它。 实际上,这个网络与鉴别器 D 非常相似,只是没有 sigmoid 函数并输出一个标量分数而不是概率。 这个分数可以解释为输入图像的真实程度。 在强化学习中,我们将其称为衡量状态(输入)有多好的价值函数。 我们将鉴别器重命名为鉴别器以反映其新角色。 让我们并排展示 GAN 和 WGAN。

GAN :


WGAN


除了critic没有输出sigmoid函数外,网络设计几乎相同。 主要区别仅在于cost函数:


但是,缺少一件重要的事情。 f 必须是 1-Lipschitz 函数。 为了强制执行约束,WGAN 应用了一个非常简单的裁剪来限制 f 中的最大权重值,即鉴别器的权重必须在超参数 c 控制的某个范围内。



算法

现在我们可以将所有内容放在下面的伪代码中。


实验

损失度量与图像质量之间的相关性

在 GAN 中,损失衡量的是它欺骗判别器的程度,而不是衡量图像质量。 如下图所示,即使图像质量提高,GAN 中的生成器损失也没有下降。 因此,我们无法从它的价值来判断进度。 我们需要保存测试图像并进行视觉评估。 相反,WGAN 损失函数反映了更理想的图像质量。


提高训练稳定性

WGAN 的两个重要贡献是

  1. 它在实验中没有模式崩溃的迹象,并且
  2. 当判别器表现良好时,生成器仍然可以学习。

如下图所示,即使我们去掉 DCGAN 中的批量归一化,WGAN 仍然可以执行。



WGAN——问题

Lipschitz 约束

剪裁允许我们对鉴别器的模型强制执行 Lipschitz 约束来计算 Wasserstein 距离。


引用研究论文:权重剪裁显然是实施 Lipschitz 约束的糟糕方法。 如果裁剪参数很大,那么任何权重都可能需要很长时间才能达到其极限,从而使得训练critic 直到达到最优变得更加困难。 如果裁剪很小,当层数很大时,这很容易导致梯度消失,或者不使用批量归一化(例如在 RNN 中)……我们坚持使用权重裁剪,因为它简单且性能已经很好。


WGAN 的难点在于强制执行 Lipschitz 约束。 剪辑很简单,但会带来一些问题。 该模型可能仍会产生质量较差的图像并且不会收敛,特别是当超参数 c 未正确调整时。


模型性能对这个超参数非常敏感。 在下图中,当批量归一化关闭时,当 c 从 0.01 增加到 0.1 时,判别器从梯度递减变为梯度爆炸。


模型容量

权重裁剪的行为类似于权重调节。 它降低了模型 f 的容量并限制了对复杂函数建模的能力。 在下面的实验中,第一行是 WGAN 估计的价值函数的等高线图。 第二行由称为 WGAN-GP 的 WGAN 变体估计。 WGAN 减少的容量无法创建一个复杂的边界来包围模型的模式(橙色点),而改进的 WGAN-GP 可以。



具有梯度惩罚的 Wasserstein GAN (WGAN-GP)

WGAN-GP 使用梯度惩罚而不是权重裁剪来强制执行 Lipschitz 约束。


梯度惩罚

一个可微函数 f 是 1-Lipschitz 当且仅当它在任何地方都有范数最多为 1 的梯度。


具体来说,WGAN-GP 论文中的附录 A 证明了


在真实数据和生成数据之间插值的点对于 f 的梯度范数应该为 1。

因此,如果梯度范数远离其目标范数值 1,WGAN-GP 会惩罚模型,而不是应用裁剪。


λ 设置为 10。用于计算梯度范数的点 x 是在 Pg 和 Pr 之间采样的任何点。 (后面用伪代码会更容易理解。)


评判者(鉴别器)避免了批量标准化。 批量标准化在同一批次中的样本之间创建相关性。 它会影响梯度惩罚的有效性,这是通过实验证实的。

无论设计与否,一些新的成本函数都会在成本函数中添加梯度惩罚。 有些纯粹基于经验观察,即当梯度增加时模型行为不端。 然而,梯度惩罚增加了计算复杂性,这可能是不可取的,但它确实会产生一些更高质量的图像。


算法

让我们看一下伪代码,详细说明如何创建样本点以及如何计算梯度惩罚。


WGAN-GP 实验

WGAN-GP 增强了训练稳定性。 如下图所示,当模型设计不太理想时,WGAN-GP 仍然可以创造良好的结果,而原始的 GAN 成本函数却失败了。


下面是使用不同方法的初始分数。 与 WGAN 相比,WGAN-GP 论文的实验证明了更好的图像质量和收敛性。 然而,DCGAN 的图像质量稍好一些,而且收敛速度更快。 但是 WGAN-GP 的初始分数在开始收敛时更加稳定。


那么如果 WGAN-GP 不能击败 DCGAN,它有什么好处呢? WGAN-GP 的主要优点是它的收敛性。 它使训练更稳定,因此更容易训练。 由于 WGAN-GP 有助于模型更好地收敛,我们可以使用更复杂的模型,例如生成器和判别器的深度 ResNet。 以下是使用 ResNet 和 WGAN-GP 的初始分数(越高越好)。


在 Google Brain 的一项独立研究中,WGAN 和 WGAN-GP 确实取得了一些最好的 FID 分数(越低越好)。


路过

雷人

握手

鲜花

鸡蛋
我有话说......

TA还没有介绍自己。

上一篇

下一篇

电话咨询: 135xxxxxxx
关注微信