引言
WGAN,即Wasserstein GAN,旨在解决传统GAN训练中的一些问题,尤其是训练不稳定和梯度消失。WGAN通过使用Wasserstein距离(Earth-Mover距离或EM距离)来衡量真实数据分布和生成数据分布之间的距离,改进了GAN的训练过程。
传统的GAN模型梯度消失的分析
在传统的 GAN 中, 通常使用 \(\mathrm{JS}\) 散度或 \(\mathrm{KL}\) 散度来衡量真实数据分布 \(P_{\text {data }}\) 和生成数据分布 \(P_g\) 之间的差异。当两个分布 \(P_{\text {data }}\) 和 \(P_g\) 没有重叠时, 存在下列问题:
(1)在 KL 散度的情况下, 如果存在任何 \(x\) 使得 \(P_{\text {data }}(x)>0\) 而 \(P_g(x)=0\), 那么 \(D_{\mathrm{KL}}\left(P_{\text {data }} \| P_{\mathrm{g}}\right)\) 会变为无穷大。这在数学上是因为 \(\log (0)\) 未定义, 并且在训练过程中这通常意味着无法计算梯度。
(2) 对于 JS 散度, 当 \(P_{\mathrm{data}}\) 和 \(P_g\) 完全不重叠时, \(D_{\mathrm{JS}}\left(P_{\mathrm{data}} \| P_{\mathrm{g}}\right)\) 会是一个常数 ( \(\left.\log 2\right)\) 。这意味着 GAN 的生成器在这种情况下将无法得到任何指导梯度来调整其参数, 因为不论生成器如何改变, JS 散度都保持不变, 这就是所谓的 “梯度消失” 问题。
简单说, 当 GAN 模型的生成器因为初始化等因素导致生成的数据分布与真实数据的分布相差很大时 (没有重叠), GAN 模型的训练梯度是得不到更新的。
Wasserstein距离
Wasserstein距离,也被称为Earth Mover’s Distance(EMD),是一种衡量两个概率分布差异的方法,具体用于度量将一个分布转换成另一个分布所需的“最小工作量”。在理解Wasserstein距离之前,需要首先理解几个关键概念。
(1)概率分布:将概率分布想象为一定量的“土堆”,在这个比喻中,每个位置的土堆大小表示概率的值。
(2)移动土堆的“工作量”:如果想把一个位置上的土堆移动到另一个位置,那么所需的工作量与土堆的大小和移动距离成正比。
Wasserstein 距离的数学定义是:
$$
W(P, Q)=\inf _{\gamma \in \Pi(P, Q)} \mathbb{E}_{(x, y) \sim \gamma}[\|x-y\|]
$$
其中:
- (1) \(P\) 和 \(Q\) 是两个概率分布;
- (2) \(\Pi(P, Q)\) 表示所有可能的联合分布 \(\gamma\), 这些联合分布的边缘分布分别是 \(P\) 和 \(Q\) 。
- (3) inf 表示求取下确界, 即所有可能方案中的最小值。
- (4) \(\mathbb{E}_{(x, y) \sim \gamma}[\|x-y\|]\) 表示在联合分布 \(\gamma\) 下, 从 \(P\) 到 \(Q\) 的点对 \((x, y)\) 之间距离的期望值。
从直观上理解,将两个概率分布\(P\) 和 \(Q\)想象成两堆形状和体积不同的土堆,Wasserstein距离相当于将一堆土堆的形状完全改变成另一堆土堆所需的最小“工作量”。这里的“工作量”可以理解为土的移动距离和移动的量的乘积之和。所以,即使两个分布完全不重叠(没有共同的支持),Wasserstein距离仍然能给出一个有意义的值,这个值反映了它们之间的“距离”。
从数学上推导: 联合分布 \(\gamma\) 代表了从分布 \(P\) 到分布 \(Q\) 的一个 “转移计划”。要计算移动总的 “工作量” , 需要计算所有这些移动的 “质量” 乘以其移动的距离 \(\|x-y\|\) 。这就是积分 \(\int_{X \times X}\|x-y\| d \gamma(x, y)\) 的含义。这个积分在所有可能的 \(x\) 和 \(y\) 对上进行, 表示整个转移计划的总工作量。由于可能有许多种将 \(P\) 转换为 \(Q\) 的方式, 需要寻找使得总工作量最小的计划。这就是 \(\inf _{\gamma \in \Pi(P, Q)}\) 所表达的含义。在所有可能的联合分布 \(\gamma\) 中寻找一个使得总工作量最小的分布。
数学上,Wasserstein距离考虑了分布间质量的几何分布,并试图找到在这些几何配置下将一种分布转换为另一种分布的最小“成本”或“工作量”。直观上,这可以视为在两个不同形状的土堆之间移动土壤,使得一个土堆的形状完全变成另一个形状所需的最小工作。 在GAN训练中,Wasserstein距离的这种特性使其即使在概率分布不重叠的情况下,也能提供稳定有效的梯度,这解决了传统GAN使用JS散度或KL散度时面临的梯度消失问题。
由Wasserstein距离推导WGAN的损失
为了完整推导从Wasserstein距离到WGAN中判别器的损失函数,遵循以下步骤。
1. 定义Wasserstein距离
Wasserstein 距离, 特别是 1-Wasserstein 距离 \(W\left(\mathbb{P}_{\text {real }}, \mathbb{P}_{\text {gen }}\right)\), 定义为:
$$
W\left(\mathbb{P}_{\text {real }}, \mathbb{P}_{\text {gen }}\right)=\inf _{\gamma \in \Pi\left(P_{\text {ral }}, \mathbb{P}_{\text {gen }}\right)} \mathbb{E}_{(x, y) \sim \gamma}[\|x-y\|]
$$
其中 \(\Pi\left(\mathbb{P}_{\text {real }}, \mathbb{P}_{\text {gen }}\right)\) 表示所有可能将 \(\mathbb{P}_{\text {real }}\) 和 \(\mathbb{P}_{\text {gen }}\) 联合起来的分布 \(\gamma\) 的集合。
2. 应用Kantorovich-Rubinstein 对偶性
由于 Kantorovich-Rubinstein 对偶性, 因此可以用另一种方式表达 Wasserstein 距离:
$$
W\left(\mathbb{P}_{\text {real }}, \mathbb{P}_{\text {gen }}\right)=\sup _{\|f\|_L \leq 1}\left[\mathbb{E}_{x \sim \mathbb{P}_{\text {real }}}[f(x)]-\mathbb{E}_{x \sim \mathbb{P}_{\text {gen }}}[f(x)]\right]
$$
其中 sup 表示上确界, 确保函数 \(f\) 遍历所有 1 -利普希茨连续的函数。关于对偶性推论具体的数学原理在这里不做详细推导, 注意此推论必须要求确保函数 \(f\) 遍历所有 1 -利普希茨连续的函数。
1-利普希茨连续函数是一类在数学分析中非常重要的函数, 它们满足特定的 “稳定性”或 “平滑性” 条件。一个函数被称为 1-利普希茨连续, 如果对于其定义域内的任意两点,函数值的差的绝对值不超过这两点间距离的绝对值。
形式化地, 一个函数 \(f: \mathbb{R}^n \rightarrow \mathbb{R}\) 被称为 1-利普希茨连续, 如果对于所有 \(x, y \in \mathbb{R}^n\), 有:
$$
|f(x)-f(y)| \leq\|x-y\|
$$
其中, \(\|x-y\|\) 表示 \(x\) 和 \(y\) 之间的欧几里得距离。1-利普希茨连续性质保证了函数的输出对输入的微小变化只有有限的响应。这意味着函数图形没有剧烈的波动, 表现出一定的平滑性。
3. 判别器作为1-利普希茨连续函数
在 WGAN 中, 使用一个神经网络作为判别器 \(D\), 它尝试模拟上述对偶性中的最优 1-利普希茨连续函数 \(f\) 。这就意味着需要训练 \(D\) 来最大化 \(\mathbb{E}_{x \sim \mathbb{P}_{\mathrm{ral}}}[D(x)]-\mathbb{E}_{x \sim \mathbb{P}_{\mathrm{gen}}}[D(x)]\) 。因此, 判别器 \(D\) 的损失函数在 WGAN 中可以表示为:
$$
L_D=-\left(\mathbb{E}_{x \sim \mathbb{P}_{\text {reat }}}[D(x)]-\mathbb{E}_{z \sim \mathbb{P}_z}[D(G(z))]\right)
$$
其中, \(\mathbb{E}_{x \sim \mathbb{P}_{\mathrm{real}}}[D(x)]\) 是对于真实数据样本 \(x\) 的评价器输出的期望值, 而 \(\mathbb{E}_{z \sim \mathbb{P}_z}[D(G(z))]\) 是对于生成器 \(G\) 生成的假数据样本的评价器输出的期望值。
对于生成器 \(G L_G=-\mathbb{E}_{z \sim \mathbb{P_z}}[D(G(z))]\), 生成器 \(G\) 的目标是最大化评价器 \(D\) 对其生成的假样本的评分。为了确保计算出的Wasserstein距离有效,WGAN要求评价器\(D\) 是一个1-利普希茨函数。在WGAN的初始版本中,通常通过剪裁评价器的权重到一个固定范围(例如[−0.01,0.01])来实现。在后续的研究中,利用梯度惩罚来代替权重剪裁,以便更有效地实施1-利普希茨约束并提高训练稳定性。
使用梯度惩罚
梯度惩罚的基本思想是直接约束判别器的梯度, 而不是通过剪裁其权重。这样做的原理是基于 1 -利普希茨函数的一个特性:对于 1 -利普希茨函数 \(f\), 在其定义域中的任意一点 \(x\),其梯度的范数不会超过 1 , 即 \(\|\nabla f(x)\| \leq 1\) 。
在 WGAN-GP(Wasserstein GAN with Gradient Penalty)中, 为了强制实现这一约束,研究者们提出了在判别器的损失函数中加入一个梯度惩罚项。这个惩罚项基于随机采样的点上判别器梯度的二范数, 目的是使这个梯度的二范数尽可能地接近 1 。
具体来说, WGAN-GP 中判别器的损失函数 \(L_D\) 被修改为包含以下梯度惩罚项:
$$
L_D=\underbrace{\mathbb{E}_{\tilde{x} \sim \mathbb{P}_g}[D(\tilde{x})]-\mathbb{E}_{x \sim \mathbb{P}^2}[D(x)]}_{\text {原WGAN判别器损失 }}+\lambda \underbrace{\mathbb{E}_{\hat{x} \sim \mathbb{P}_{\hat{x}}}\left[\left(\left\|\nabla_{\hat{x}} D(\hat{x})\right\|_2-1\right)^2\right]}_{\text {梯度隹罚项 }}
$$
其中:
- (1) \(\mathbb{P}_r\) 是真实数据分布;
- (2) \(\mathbb{P}_g\) 是生成器的数据分布;
- (3) \(\hat{x}\) 是从真实数据和生成数据之间的插值(例如, \(\hat{x}=\epsilon x+(1-\epsilon) \tilde{x}\), 其中 \(\epsilon\) 是一个随机数, 通常在 0 到 1 之间均匀采样);
- (4) \(\lambda\) 是梯度惩罚的权重, 是一个超参数, 需要根据具体应用进行调整。
通过添加这个梯度惩罚项, WGAN-GP 确保了在插值点 \(\hat{x}\) 处判别器的梯度保持在合理范围内, 从而使得整个网络更容易训练, 训练过程更加稳定。与权重剪裁相比, 梯度惩罚提供了以下优势:
- 更加稳定: 避免了梯度消失或爆炸的问题, 有利于模型训练的稳定性和收玫速度。
- 更好的性能:实验显示,使用梯度惩罚的 WGAN 在生成图像的质量和多样性上优于原始 WGAN。
- 理论上更合理:直接对梯度施加约束是 1-利普希茨连续性条件的直接体现, 而权重剪裁只是一个间接且粗精的近似。
因此, 梯度惩罚成为了实现 WGAN 架构中 1-利普希茨约束的一种更优选择。
暂无评论内容