Generative Adversarial Nets[Wasserstein GAN]

时间:2022-01-31 08:25:48

本文来自《Wasserstein GAN》,时间线为2017年1月,本文可以算得上是GAN发展的一个里程碑文献了,其解决了以往GAN训练困难,结果不稳定等问题。

1 引言

本文主要思考的是半监督学习。当我们说学习概率分布,典型的思维是学习一个概率密度。这通常是通过定义一个概率密度的参数化族\((P_{\theta})_{\theta\in R^d}\),然后基于样本最大似然:如果当前有真实样本\(\{x^{(i)}\}_{i=1}^m\),那么是问题转换成:
\[\underset{\theta\in R^d}{\max}\frac{1}{m}\sum_{i=1}^m\log P_{\theta}(x^{(i)})\]
如果真实数据分布\(P_r\)有密度函数,且\(\mathbb{P}_{\theta}\)是参数化后密度\(P_{\theta}\)的分布。那么,理论上,就是最小化对应的KL散度\(KL(\mathbb{P}_r||\mathbb{P}_{\theta})\)。

基于上述描述,我们需要模型密度\(P_{\theta}\)是存在的。而在处理低维度流行支撑的分布时候,情况并非如我们所愿,此时模型流形和真实分布的支撑集可能没有不可忽略的交集部分[1],这也意味着KL距离是未定义的(简单说是无穷)。

一个简单的方法就是在模型分布上增加噪音项。这就是为什么在经典机器学习文献中所有的生成模型都会包含噪音项。在最简单的情况下,我们认为具有相对高带宽的高斯噪声可以覆盖所有示例。而在图像生成任务的模型下,这种噪声会降低样本质量并使其模糊。我们可以在最近的论文[23]中看到,当像素已经被标准化为在[0,1]范围内时,对于生成的图像中每个像素而言,最大似然的时候,加到模型上的噪音的最优标准差约为0.1。这是一个非常大量的噪音,当文献描述他们模型的样本时,他们不会增加噪音项到他们描述的似然数上。换句话说,对于该问题,增加噪音项明显是不正确的,但是的确需要让最大似然能够work。(增加了噪音,导致结果模糊,不增加又会让模型整体不work)。

不选择评估\(\mathbb{P}_r\)的密度(因为他可能并不存在),而是定义一个有着固定的分布\(p(z)\)的随机变量\(Z\),并将其传递给一个参数化函数\(g_{\theta}:\mathcal{Z}\rightarrow \mathcal{X}\)(比如一种神经网络),直接基于一种具体分布\(\mathbb{P}_{\theta}\)生成样本。通过改变\(\theta\),可以改变该分布,并让它接近真实的数据分布\(\mathbb{P}_r\)。这有2个优势:

  • 不同于密度,该方法可以表示局限于低维流形的分布;
  • 容易生成样本的能力通常比知道密度的数值更有用(例如,需要基于给定输入图像基础上让输出图像具有条件分布的图像超分辨率或者语义分割等任务)。

通常,在给定任意高维密度的情况下生成样本的任务在计算上是困难的。

变分自动编码器(Variational Auto-Encoders,VAE)和GAN是解决该方法很好的例子。因为VAE关注于样本的近似似然,它们共享标准模型的限制并需要使用额外的噪音项。GAN在定义目标函数的时候会更灵活,如Jensen-Shannon,和所有的f-散度[17],还有一下其他奇怪的组合[6]。另一方面,训练GAN是众所周知的困难和不稳定。

本文的关注点在各种方法去测量模型分布于真实分布之间的距离,或者说各种方法去定义距离或者散度\(\rho(\mathbb{P}_{\theta},\mathbb{P}_r)\)。这些距离之间最基本的不同就是它们对概率分布序列的收敛的影响。一个分布序列\((\mathbb{P}_t)_{t\in \mathbb{N}}\)有且仅有 存在另一个分布\(\mathbb{P}_{\infty}\),且\(\rho(\mathbb{P}_t,\mathbb{P}_{\infty})\)趋近于0时才收敛,而这有时候取决于距离\(\rho\)定义的准确与否。通俗的说,当距离\(\rho\)让分布序列更容易收敛的同时,也暗示这该距离会导致一个更弱的拓扑(更具体的说,就是当基于\(\rho\)的收敛序列是基于\(\rho'\)收敛序列的超集,那么就认为\(\rho\)表示的拓扑要弱于\(\rho'\)表示的拓扑)。

为了最优化参数\(\theta\),当然希望我们的模型分布\(\mathbb{P}_{\theta}\)定义能让映射\(\theta\rightarrow \mathbb{P}_{\theta}\)是连续的。连续意味着当一个参数序列\(\theta_t\)收敛到\(\theta\),分布\(\mathbb{P}_{{\theta}_t}\)同样收敛于\(\mathbb{P}_{\theta}\)。然而,分布\(\mathbb{P}_{{\theta}_t}\)收敛的概念依赖于计算分布之间的距离方式。距离越弱,就越容易定义一个连续的映射,将\(\theta\)空间映射到\(\mathbb{P}_{\theta}\)空间,因为该分布越容易收敛。我们关心映射\(\theta\rightarrow \mathbb{P}_{\theta}\)是连续的主要原因如下:

  • 如果\(\rho\)是两个分布之间的距离,那么期望能够有个loss函数\(\theta\rightarrow \rho(\mathbb{P}_{\theta},\mathbb{P}_t)\)是连续的,这等效于让映射\(\theta\rightarrow \mathbb{P}_{\theta}\)连续。

本文贡献:

  • 提供一个完整的理论分析,关于Earth Mover(EM)距离与其他流行的概率距离和散度在分布学习的过程中行为上的差异;
  • 定义一种GAN形式,叫做Wassertein-GAN,其能最小化一个合理的有效的EM距离的近似,并理论上分析对应的最优问题的解决方案;
  • 实验分析WGAN能够解决GAN训练的主要问题。具体的,训练WGAN不续约维护一个小心的关于生成器和判别器之间的平衡,也不需要网络结构的精心设计。GAN中常见的mode dropping现象也急剧下降。WGAN最具竞争力的是可以通过将判别器训练到最优来连续的评估EM距离。画出这些曲线不止对调试和超参数搜索有用,而且与观察到的样本质量相关。

2 不同的距离

令\(\mathcal{X}\)是一个紧凑的度量集(a compact metric set)(如图像\([0,1]^d\)的空间),\(\Sigma\)表示所有\(\mathcal{X}\)的Borel子集的集合。令\(Prob(\mathcal{X})\)表示定义在\(\mathcal{X}\)的概率测度空间。可以定义两个分布\(\mathbb{P}_r,\mathbb{P}_g\in Prob(\mathcal{X})\)之间的初始距离和散度:

  • Total Variation(TV) 距离
    \[\delta(\mathbb{P}_r,\mathbb{P}_g)=\underset{A\in\sum}{sup} |\mathbb{P}_r(A)-\mathbb{P}_g(A)|\]
  • Kullback-Leibler(KL)散度
    \[KL(\mathbb{P}_r||\mathbb{P}_g)=\int\log\left(\frac{P_r(x)}{P_g(x)} \right)P_r(x)d\mu(x)\]
    其中,\(\mathbb{P}_r\)和\(\mathbb{P}_g\)假设为完全连续,因此就关于定义在\(\mathcal{X}\)上同样的测度\(\mu\)而言,有密度存在(记得一个概率分布\(\mathbb{P}_r\in Prob(\mathcal{X})\)有一个关于\(\mu\)的密度\(P_r(x)\),即\(\forall A\in \sum,\mathbb{P}_r(A)=\int_AP_R(x)d\mu(x)\),有且仅有关于\(\mu\)是完全连续的,即\(\forall A\in \sum,\mu(A)=0\Rightarrow \mathbb{P}_r(A)=0\))。KL散度是当存在满足\(P_g(x)= 0\)且\(P_r(x)> 0\)的点时,KL是不对称的,而且还可能值是无穷大。
  • Jensen-Shannon(JS)散度
    \[JS(\mathbb{P}_r,\mathbb{P}_g)=KL(\mathbb{P}_r||\mathbb{P}_m)+KL(\mathbb{P}_g||\mathbb{P}_m)\]
    这里\(\mathbb{P}_m\)是\(\frac{\mathbb{P}_r+\mathbb{P}_g}{2}\),该散度是对称的,且总是有定义的,因为可以选择\(\mu=\mathbb{P}_m\)
  • Earth-Mover(EM)距离或者称其为Wasserstein-1
    \[\begin{align}W(\mathbb{P}_r,\mathbb{P}_g)=\underset{\gamma\in\prod(\mathbb{P}_r,\mathbb{P}_g)}{inf}\mathbb{E}_{(x,y)\sim \gamma}\left[ ||x-y||\right] \end{align}\]
    这里\(\prod(\mathbb{P}_r,\mathbb{P}_g)\)表示所有联合分布\(\gamma(x,y)\)的集合,其边缘分布为\(\mathbb{P}_r\)和\(\mathbb{P}_g\)。直观的,\(\gamma(x,y)\)表示多少质量从\(x\)传输到\(y\),为了将分布\(\mathbb{P}_r\)变换成分布\(\mathbb{P}_g\)。EM距离是最优传输方案的cost

第三部分:Wasserstein距离的优越性质

  • 引用自知乎的文章:\(\Pi (P_r, P_g)\)是\(P_r\)和\(P_g\)组合起来所有可能联合分布的集合,反过来说,\(\Pi (P_r, P_g)\)中每一个分布的边缘分布都是\(P_r\)和\(P_g\)。对于每一个可能的联合分布\(\gamma\)而言,可以从中采样\((x, y) \sim \gamma\)得到一个真实样本\(x\)和一个生成样本\(y\),并算出这对样本的距离\(||x-y||\),所以可以计算该联合分布\(\gamma\)下样本对距离的期望值\(\mathbb{E}_{(x, y) \sim \gamma} [||x - y||]\)。在所有可能联合分布中能够对这个期望值取到的下界\(\inf_{\gamma \sim \Pi (P_r, P_g)} \mathbb{E}_{(x, y) \sim \gamma} [||x - y||]\),就定义为Wasserstein距离。

    直观上可以把\(\mathbb{E}_{(x, y) \sim \gamma} [||x - y||]\)理解为在\(\gamma\)这个“路径规划”下把\(P_r\)这堆“沙土”挪到\(P_g\)“位置”所需的“消耗”,而\(W(P_r, P_g)\)就是“最优路径规划”下的“最小消耗”,所以才叫Earth-Mover(推土机)距离。

    Wasserstein距离相比KL散度、JS散度的优越性在于,即便两个分布没有重叠,Wasserstein距离仍然能够反映它们的远近。WGAN本作通过简单的例子展示了这一点。考虑如下二维空间中的两个分布\(P_1\)和\(P_2\),\(P_1\)在线段AB上均匀分布,\(P_2\)在线段CD上均匀分布,通过控制参数\(\theta\)可以控制着两个分布的距离远近。
    Generative Adversarial Nets[Wasserstein GAN]
    此时容易得到(读者可自行验证)
    \[KL(P_1 || P_2) = KL(P_1 || P_2) =
    \begin{cases}
    +\infty & \text{if $\theta \neq 0$} \\
    0 & \text{if $\theta = 0$}
    \end{cases}(突变)\]
    \[JS(P_1||P_2)=
    \begin{cases}
    \log 2 & \text{if $\theta \neq 0$} \\
    0 & \text{if $\theta - 0$}
    \end{cases}(突变)\]
    \[W(P_0, P_1) = |\theta|(平滑)\]

    KL散度和JS散度是突变的,要么最大要么最小,Wasserstein距离却是平滑的,如果我们要用梯度下降法优化\theta这个参数,前两者根本提供不了梯度,Wasserstein距离却可以。类似地,在高维空间中如果两个分布不重叠或者重叠部分可忽略,则KL和JS既反映不了远近,也提供不了梯度,但是Wasserstein却可以提供有意义的梯度

例子1(学习平行线)
令\(Z\sim U[0,1]\)表示单位间隔下的均匀分布,令\(\mathbb{P}_0\)是\((0,Z)\in\mathbb{R}^2\)的分布(0在x轴上,随机变量\(Z\)在y轴上),在穿过原点的直线垂直线上均匀分布。现在令\(g_{\theta}(z)=(\theta,z)\)是关于\(\theta\)的一个单一实参数。很容易得到如下式子:

  • \(W(\mathbb{P}_0,\mathbb{P}_{\theta})=|\theta|\)
  • \(JS(\mathbb{P}_0,\mathbb{P}_{\theta})= \begin{cases} \log2, & if\, \theta \neq 0,\\ 0, & if \,\theta = 0, \end{cases}\)
  • \(KL(\mathbb{P}_{\theta}||\mathbb{P}_0) = KL(\mathbb{P}_0||\mathbb{P}_{\theta})= \begin{cases} +\infty, & if \,\theta \neq 0,\\ 0, & if\, \theta = 0, \end{cases}\)
  • \(\delta (\mathbb{P}_0,\mathbb{P}_{\theta})= \begin{cases} 1, & if \,\theta \neq 0,\\ 0, & if\, \theta = 0, \end{cases}\)

当\(\theta_t\rightarrow 0\),序列\((\mathbb{P}_{\theta_t})_{t\in\mathbb{N}}\)基于EM距离收敛到\(\mathbb{P}_0\),但是在JS,KL,逆KL,TV散度都不收敛。
Generative Adversarial Nets[Wasserstein GAN]
图1展示基于EM和JS距离下的结果。

例子1的情况是我们可以基于一个低维度流行,在EM距离上通过梯度下降方式学到一个概率分布。这不能用其他距离和散度学到是因为他们生成的loss函数不是连续的。虽然这个简单的例子是基于不相交支撑集的特征分布,该结论在当支撑集包含相交部分但测度为0的集合上同样适用,当两个低维流形在一般位置相交时,恰好就是这种情况。
因为Wasserstein距离比JS距离要弱很多。现在有个疑问是:\(W(\mathbb{P}_r, \mathbb{P}_{\theta})\)是否是基于温和假设下在\(\theta\)上的连续损失函数?结论是的。

理论1
令\(\mathbb{P}_r\)是在\(\mathcal{X}\)上的固定分布,\(Z\)是一个基于令一个空间\(\mathcal{Z}\)的随机变量(如高斯),\(g:\mathcal{Z}\times \mathbb{R}^d\rightarrow \mathcal{X}\)是一个函数,\(g_{\theta}(z)\)中\(z\)表示坐标系第一个坐标,\(\theta\)表示第二个。令\(\mathbb{P}_{\theta}\)表示\(g_{\theta}(Z)\)的分布。然后:

  • 如果\(g\)是在\(\theta\)上连续,则\(W(\mathbb{P}_r,\mathbb{P}_{\theta})\)也是;
  • 如果\(g\)是局部Lipschitz,并且满足正则假设1,那么\(W(\mathbb{P}_r,\mathbb{P}_{\theta})\)也是处处连续,并且几乎处处可微;

    • 假设1
      令\(g:\mathcal{Z}\times\mathbb{R}^d\rightarrow \mathcal{X}\)是基于有限维度向量空间的局部Lipschitz。\(g_{\theta}(z)\)表示在坐标\((z,\theta)\)上的评估。我们说\(g\)在\(\mathcal{Z}\)上基于一个具体概率密度分布\(p\)满足假设1,是如果存在一个局部Lipschitz常量\(L(\theta,z)\),且:
      \[\mathbb{E}_{z\sim p}[L(\theta,z)]<+\infty\]
  • 上述2条对于JS散度\(JS(\mathbb{P}_r,\mathbb{P}_{\theta})\)和所有KL都不成立

下面的推理告诉我们通过最小化EM距离可以让NN的学习有意义(至少理论上是的)。

推理1
令\(g_{\theta}\)为任意前向神经网络(前向NN就是由仿射函数和逐点非线性的Lipschitz函数(sigmoid,tanh,elu,softplus等等)组成的,虽然对rectier nonlinearities也成立,不过证明更讲究技巧),参数为\(\theta\),\(p(z)\)为在\(z\)上的一个先验,且\(\mathbb{E}_{z\sim p(z)}[||z||]<\infty\)(如,高斯,均匀分布等等)

因为假设1是满足的,所以\(W(\mathbb{P}_r, \mathbb{P}_{\theta})\)是处处连续且几乎处处可微。

所有这些都表明,对于我们的问题,EM是一个比至少Jensen-Shannon散度更好的cost函数。 下面的定理描述了由这些距离和散度引起的拓扑结构的相对强度,其中KL最强,其次是JS和TV,EM最弱。

理论2
令\(\mathbb{P}\)是一个基于紧密空间\(\mathcal{X}\)分布,\((\mathbb{P}_n)_{n\in\mathbb{N}}\)是在\(\mathcal{X}\)上的分布序列。然后,考虑所有的极限,如\(n\rightarrow \infty\)

  • 1 下面2个是等效的

    • \(\delta (\mathbb{P}_n,\mathbb{P})\rightarrow 0\),$\delta $是total variation距离;
    • \(JS(\mathbb{P}_n,\mathbb{P})\rightarrow 0\),JS是JS散度;
  • 2 下面2个是等效的

    • \(W(\mathbb{P}_n,\mathbb{P})\rightarrow 0\);
    • \(\mathbb{P}_n\,\,\underset{\rightarrow}{\mathcal{D}} \,\,\mathbb{P}\)其中\(\underset{\rightarrow}{\mathcal{D}}\)表示随机变量的分布收敛;
  • 3 \(KL(\mathbb{P}_n||\mathbb{P})\rightarrow 0\)or \(KL(\mathbb{P}||\mathbb{P}_n)\rightarrow 0\)暗示了1的结论;
  • 4 1的结论暗示了2的结论。

上述理论说明了KL,JS,TV距离在基于低维度流行的支撑集进行分布学习的时候cost函数是不敏感的。然而EM距离是敏感的。所以接下来就是介绍优化EM距离的实用近似方法。

3 Wasserstein GAN

理论2表明的是\(W(\mathbb{P}_r,\mathbb{P}_{\theta})\)相比\(JS(\mathbb{P}_r,\mathbb{P}_{\theta})\)也许在优化上会有更好的特性。然而式子1中的下限很难处理。另一方面,Kantorovich-Rubinstein 二元性[22]告诉我们:
\[\begin{align}
W(\mathbb{P}_r,\mathbb{P}_{\theta}) = \underset{||f||_{L\leq1}}{sup}\mathbb{E}_{x\sim\mathbb{P}_r}\left [f(x)\right ]-\mathbb{E}_{x\sim\mathbb{P}_{\theta}}\left[f(x)\right]
\end{align}\]
其上限在所有的1-Lipschitz函数\(f:\mathbb{X}\rightarrow\mathbb{R}\)之上。注意到如果我们将\(||f||_{L\leq 1}\)替换成\(||f||_{L\leq K}\)(某些常量K的K-Lipschitz),那么就得到\(K\cdot W(\mathbb{P}_r,\mathbb{P}_{\theta})\).因此,如果有一个参数化的函数族\(\{f_w\}_{w\in \mathcal{W}}\),那么对某些K的所有K-Lipschitz,可以解决下述问题:
\[\begin{align}
\underset{w\in\mathcal{W}}{\max}\mathbb{E}_{x\sim\mathbb{P}_r}\left[f_w(x)\right]-\mathbb{E}_{z\sim p(z)}\left[f_w(g_{\theta}(z))\right]
\end{align}\]
如果式子2中的上线可以在某些\(w\in\mathcal{W}\)上贴近(一个非常强的假设,类似于证明估计量一致性时的假设),该过程会从\(W(\mathbb{P}_r,\mathbb{P}_{\theta})\)上升到一个乘法常量。而且,可以考虑通过评估\(\mathbb{E}_{z\sim p(z)}[\bigtriangledown _{\theta}f_w(g_{\theta}(z))]\)来bp式子2,达到微分\(W(\mathbb{P}_r,\mathbb{P}_{\theta})\)的目的(再次,上升到一个常量).不过这些都只是直观猜测,需要下面的证明,证明这个过程是在最优性假设下完成的。

理论3
令\(\mathbb{P}_r\)表示任意分布,\(\mathbb{P}_{\theta}\)是关于\(g_{\theta}(Z)\)的分布,其中\(Z\)是一个密度为\(p\)的随机变量,\(g_{\theta}\)是一个满足假设1的函数。然后,存在一个解\(f:\mathcal{X}\rightarrow \mathbb{R}\) ,其问题为:
\[\underset{||f||_{L\leq 1}}{\max}\mathbb{E}_{x\sim \mathbb{P}_r}[f(x)]-\mathbb{E}_{x\sim \mathbb{P}_{\theta}}[f(x)]\]
且,得到
\[\bigtriangledown_{\theta}W(\mathbb{P}_r,\mathbb{P}_{\theta})= -\mathbb{E}_{z\sim p(z)}[\bigtriangledown _{\theta}f(g_{\theta}(z))]\]
这两项都很好的被定义了。

现在的问题变成了找到函数\(f\)来解决式子2中的最大化问题。为了粗略逼近,我们能做的就是训练一个NN,其权重为\(w\),且位于一个紧凑空间\(\mathcal{W}\)中,然后对\(\mathbb{E}_{z\sim p(z)}[\bigtriangledown _{\theta}f_w(g_{\theta}(z))]\)进行BP。和对传统GAN做得一样。注意到\(\mathcal{W}\)紧凑意味着所有的函数\(f_w\)对于某些K是K-Lipschitz,其只取决于\(\mathcal{W}\)而不是独立的权重。因此,近似式子2 直到一个不相关的缩放因子和判别器\(f_w\)的能力范围。为了让参数\(w\)落在一个紧凑空间中,我们能做的简单事情是每次迭代后将权重附到一个固定box(如\(\mathcal{W}=[-0.01,0.01]^l\))。WGAN的过程如算法1.
Generative Adversarial Nets[Wasserstein GAN]

第四部分:从Wasserstein距离到WGAN

  • 既然Wasserstein距离有如此优越的性质,如果我们能够把它定义为生成器的loss,不就可以产生有意义的梯度来更新生成器,使得生成分布被拉向真实分布吗?

    没那么简单,因为Wasserstein距离定义(式子1)中的\(\inf_{\gamma \sim \Pi (P_r, P_g)}\)没法直接求解,不过没关系,作者用了一个已有的定理把它变换为如下形式
    \[W(P_r, P_g) = \frac{1}{K} \sup_{||f||_L \leq K} \mathbb{E}_{x \sim P_r} [f(x)] - \mathbb{E}_{x \sim P_g} [f(x)](公式13)\]

    证明过程被作者丢到论文附录中了,我们也姑且不管,先看看上式究竟说了什么。

    首先需要介绍一个概念——Lipschitz连续。它其实就是在一个连续函数f上面额外施加了一个限制,要求存在一个常数K\geq 0使得定义域内的任意两个元素x_1和x_2都满足:
    \[|f(x_1) - f(x_2)| \leq K |x_1 - x_2|\]
    此时称函数f的Lipschitz常数为\(K\)。

    简单理解,比如说\(f\)的定义域是实数集合,那上面的要求就等价于f的导函数绝对值不超过K。再比如说\(\log (x)\)就不是Lipschitz连续,因为它的导函数没有上界。Lipschitz连续条件限制了一个连续函数的最大局部变动幅度。

    公式13的意思就是在要求函数f的Lipschitz常数\(||f||_L\)不超过K的条件下,对所有可能满足条件的\(f\)取到\(\mathbb{E}_{x \sim P_r} [f(x)] - \mathbb{E}_{x \sim P_g} [f(x)]\)的上界,然后再除以\(K\)。特别地,我们可以用一组参数w来定义一系列可能的函数\(f_w\),此时求解公式13可以近似变成求解如下形式
    \[K \cdot W(P_r, P_g) \approx \max_{w: |f_w|_L \leq K} \mathbb{E}_{x \sim P_r} [f_w(x)] - \mathbb{E}_{x \sim P_g} [f_w(x)](公式14)\]

    再用上我们搞深度学习的人最熟悉的那一套,不就可以把\(f\)用一个带参数\(w\)的神经网络来表示嘛!由于神经网络的拟合能力足够强大,我们有理由相信,这样定义出来的一系列\(f_w\)虽然无法囊括所有可能,但是也足以高度近似公式13要求的那个\(sup_{||f||_L \leq K}\)了。

    最后,还不能忘了满足公式14中\(||f_w||_L \leq K\)这个限制。我们其实不关心具体的\(K\)是多少,只要它不是正无穷就行,因为它只是会使得梯度变大\(K\)倍,并不会影响梯度的方向。所以作者采取了一个非常简单的做法,就是限制神经网络\(f_\theta\)的所有参数\(w_i\)的不超过某个范围[-c, c],比如\(w_i \in [- 0.01, 0.01]\),此时关于输入样本\(x\)的导数\(\frac{\partial f_w}{\partial x}\)也不会超过某个范围,所以一定存在某个不知道的常数\(K\)使得\(f_w\)的局部变动幅度不会超过它,Lipschitz连续条件得以满足。具体在算法实现中,只需要每次更新完\(w\)后把它clip回这个范围就可以了。

到此为止,我们可以构造一个含参数\(w\)、最后一层不是非线性激活层的判别器网络\(f_w\),在限制\(w\)不超过某个范围的条件下,使得
\[L = \mathbb{E}_{x \sim P_r} [f_w(x)] - \mathbb{E}_{x \sim P_g} [f_w(x)](公式15)\]

尽可能取到最大,此时\(L\)就会近似真实分布与生成分布之间的Wasserstein距离(忽略常数倍数\(K\))。注意原始GAN的判别器做的是真假二分类任务,所以最后一层是sigmoid,但是现在WGAN中的判别器\(f_w\)做的是近似拟合Wasserstein距离,属于回归任务,所以要把最后一层的sigmoid拿掉。

接下来生成器要近似地最小化Wasserstein距离,可以最小化\(L\),由于Wasserstein距离的优良性质,我们不需要担心生成器梯度消失的问题。再考虑到L的第一项与生成器无关,就得到了WGAN的两个loss。
\[- \mathbb{E}_{x \sim P_g} [f_w(x)](公式16,WGAN生成器loss函数) \]
\[\mathbb{E}_{x \sim P_g} [f_w(x)]- \mathbb{E}_{x \sim P_r} [f_w(x)](公式17,WGAN判别器loss函数)\]

公式15是公式17的反,可以指示训练进程,其数值越小,表示真实分布与生成分布的Wasserstein距离越小,GAN训练得越好

权重裁剪是一种可怕的强制Lipschitz约束。如果裁剪参数很大,那么可以花较久的时间让权重达到他们的限制,因而让模型很难训练判别器(critic)到最优。如果裁剪很小,当层数很多或者未用BN(如RNN)的时候很容易导致梯度消失。作者对这些都做了实验(如将权重映射到一个球体),不过还是希望有其他方法能代替简单的权重裁剪。

事实上,EM距离是连续且可微的,这意味着可以将判别器(critic)训练到最优。参数也是很简单的,我们越是训练critic,那么可依赖的Wasserstein梯度就越多,而Wasserstein是几乎处处可微的。对于JS,判别器越是好,但是真实梯度就越接近0,因为JS是局部饱和的,所以得到的就是梯度消失,如图1一样,还有和[1]中的理论2.4一样。
Generative Adversarial Nets[Wasserstein GAN]
图2中,是该概念的一种证明,其中训练一个GAN判别器和一个WGAN critic直到最优。判别器学的很快,很容易去识别fake和real,如期望的那样,其没法提供可靠的梯度信息。而critic没饱和,其收敛到一个线性函数,并处处给出很明显干净的梯度。事实上,我们约束权重限制让函数的增长尽可能都在空间不同部分的线性部分,强制最优critic有这样的结果。

也许更重要的,我们可以训练critic直到最优使得无法产生mode collapse。这是因为mode collapse来自这样一个事实,即一个固定判别器对应的最优生成器是生成器赋予最高值那些点的deltas的和,如[4]中观测的,和[11]中强调的。

令人拍案叫绝的Wasserstein GAN
上文说过,WGAN与原始GAN第一种形式相比,只改了四点:

  • 判别器最后一层去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
  • 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

前三点都是从理论分析中得到的,已经介绍完毕;第四点却是作者从实验中发现的,属于trick,相对比较“玄”。作者发现如果使用Adam,判别器的loss有时候会崩掉,当它崩掉时,Adam给出的更新方向与梯度方向夹角的cos值就变成负数,更新方向与梯度方向南辕北辙,这意味着判别器的loss梯度是不稳定的,所以不适合用Adam这类基于动量的优化算法。作者改用RMSProp之后,问题就解决了,因为RMSProp适合梯度不稳定的情况。

4 实验结果

作者在图像生成上使用本文的Waserstein-GAN算法,并发现相比标准GAN算法,有明显的优势:

  • 一个有意义的loss指标可以预示生成器的收敛和样本质量;
  • 优化过程的稳定性的提升

4.1 实验过程

作者在图像生成上做了测试,要学习的目标分布是LSUN-Bedrooms数据集[24]-一个室内卧室的自然图像集合。我们对标的baseline是DCGAN[18],是一个基于标准GAN流程训练的卷积结构的GAN,使用的是\(-\log D\)trick[4]。生成的样本是3-通道图像,其size为64x64.使用算法权重的超参数方式。

4.2 有意义的loss指标

因为WGAN算法试图在每次生成器更新(算法1中行10)前训练判别器"critic" \(f\)(算法1中行2-8),当前loss函数是关于EM距离的评估。

令人拍案叫绝的Wasserstein GAN
作者第一个实验揭示了该评估如何与生成样本的质量很好地进行关联(第一,判别器所近似的Wasserstein距离与生成器的生成图片质量高度相关)。在卷积DCGAN结构的同时,其他对比实验有:将生成器或者生成器和critic同时替换成一个有512个隐藏单元的4层ReLU-MLP。
Generative Adversarial Nets[Wasserstein GAN]
图3是所有三种结构在WGAN训练上WGAN评估的EM距离演化。该图清晰的显示了这些曲线很好的与生成的样本的可视化质量相关联。这同时也是第一个loss函数可以显示收敛特性的文献。这些特性在做对抗网络研究的时候十分有用,其不需要在生成的样本上。

  • 第二,WGAN如果用类似DCGAN架构,生成图片的效果与DCGAN差不多:
    Generative Adversarial Nets[Wasserstein GAN]
    但是厉害的地方在于WGAN不用DCGAN各种特殊的架构设计也能做到不错的效果,比如如果大家一起拿掉Batch Normalization的话,DCGAN就崩了:
    Generative Adversarial Nets[Wasserstein GAN]
    如果WGAN和原始GAN都使用多层全连接网络(MLP),不用CNN,WGAN质量会变差些,但是原始GAN不仅质量变得更差,而且还出现了collapse mode,即多样性不足:
    Generative Adversarial Nets[Wasserstein GAN]
  • 第三,在所有WGAN的实验中未观察到collapse mode,作者也只说应该是解决了,
    最后补充一点论文没提到,但是我个人觉得比较微妙的问题。判别器所近似的Wasserstein距离能够用来指示单次训练中的训练进程,这个没错;接着作者又说它可以用于比较多次训练进程,指引调参,我倒是觉得需要小心些。比如说我下次训练时改了判别器的层数、节点数等超参,判别器的拟合能力就必然有所波动,再比如说我下次训练时改了生成器两次迭代之间,判别器的迭代次数,这两种常见的变动都会使得Wasserstein距离的拟合误差就与上次不一样。那么这个拟合误差的变动究竟有多大,或者说不同的人做实验时判别器的拟合能力或迭代次数相差实在太大,那它们之间还能不能直接比较上述指标,我都是存疑的

    评论区的知友@Minjie Xu
    进一步指出,相比于判别器迭代次数的改变,对判别器架构超参的改变会直接影响到对应的Lipschitz常数K,进而改变近似Wasserstein距离的倍数,前后两轮训练的指标就肯定不能比较了,这是需要在实际应用中注意的。对此我想到了一个工程化的解决方式,不是很优雅:取同样一对生成分布和真实分布,让前后两个不同架构的判别器各自拟合到收敛,看收敛到的指标差多少倍,可以近似认为是后面的\(K_2\)相对前面\(K_1\)的变化倍数,于是就可以用这个变化倍数校正前后两轮训练的指标。

    总结:
    WGAN本作引入了Wasserstein距离,由于它相对KL散度与JS散度具有优越的平滑特性,理论上可以解决梯度消失问题。接着通过数学变换将Wasserstein距离写成可求解的形式,利用一个参数数值范围受限的判别器神经网络来最大化这个形式,就可以近似Wasserstein距离。在此近似最优判别器下优化生成器使得Wasserstein距离缩小,就能有效拉近生成分布与真实分布。WGAN既解决了训练不稳定的问题,也提供了一个可靠的训练进程指标,而且该指标确实与生成样本的质量高度相关。作者对WGAN进行了实验验证。

4.2 提高稳定性

5 相关工作

reference:

[1] Martin Arjovsky and Leon Bottou. Towards principled methods for training generative adversarial networks. In International Conference on Learning Rep- resentations, 2017. Under review.
[2] Gintare Karolina Dziugaite, Daniel M. Roy, and Zoubin Ghahramani. Training generative neural networks via maximum mean discrepancy optimization. CoRR, abs/1505.03906, 2015.
[3] Aude Genevay, Marco Cuturi, Gabriel Peyre, and Francis Bach. Stochastic optimization for large-scale optimal transport. In D. D. Lee, M. Sugiyama, U. V. Luxburg, I. Guyon, and R. Garnett, editors, Advances in Neural Information Processing Systems 29, pages 3440{3448. Curran Associates, Inc., 2016.
[4] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde- Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial nets. In Advances in Neural Information Processing Systems 27, pages 2672{2680. Curran Associates, Inc., 2014.
[5] Arthur Gretton, Karsten M. Borgwardt, Malte J. Rasch, Bernhard Scholkopf, and Alexander Smola. A kernel two-sample test. J. Mach. Learn. Res., 13:723{ 773, 2012.
[6] Ferenc Huszar. How (not) to train your generative model: Scheduled sampling, likelihood, adversary? CoRR, abs/1511.05101, 2015.
[7] Shizuo Kakutani. Concrete representation of abstract (m)-spaces (a characterization of the space of continuous functions). Annals of Mathematics, 42(4):994{ 1024, 1941.
[8] Diederik P. Kingma and Jimmy Ba. Adam: A method for stochastic optimization. CoRR, abs/1412.6980, 2014.
[9] Diederik P. Kingma and MaxWelling. Auto-encoding variational bayes. CoRR, abs/1312.6114, 2013.
[10] Yujia Li, Kevin Swersky, and Rich Zemel. Generative moment matching networks. In Proceedings of the 32nd International Conference on Machine Learn- ing (ICML-15), pages 1718{1727. JMLR Workshop and Conference Proceedings, 2015.
[11] Luke Metz, Ben Poole, David Pfau, and Jascha Sohl-Dickstein. Unrolled generative adversarial networks. Corr, abs/1611.02163, 2016.
[12] Paul Milgrom and Ilya Segal. Envelope theorems for arbitrary choice sets. Econometrica, 70(2):583{601, 2002.
[13] VolodymyrMnih, Adria Puigdomenech Badia, Mehdi Mirza, Alex Graves, Timothy P. Lillicrap, Tim Harley, David Silver, and Koray Kavukcuoglu. Asynchronous methods for deep reinforcement learning. In Proceedings of the 33nd International Conference on Machine Learning, ICML 2016, New York City, NY, USA, June 19-24, 2016, pages 1928{1937, 2016.
[14] Gregoire Montavon, Klaus-Robert Muller, and Marco Cuturi. Wasserstein training of restricted boltzmann machines. In D. D. Lee, M. Sugiyama, U. V. Luxburg, I. Guyon, and R. Garnett, editors, Advances in Neural Information Processing Systems 29, pages 3718{3726. Curran Associates, Inc., 2016.
[15] Alfred Muller. Integral probability metrics and their generating classes of functions. Advances in Applied Probability, 29(2):429{443, 1997.
[16] Radford M. Neal. Annealed importance sampling. Statistics and Computing, 11(2):125{139, April 2001.
[17] Sebastian Nowozin, Botond Cseke, and Ryota Tomioka. f-gan: Training generative neural samplers using variational divergence minimization. pages 271{279, 2016.
[18] Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. CoRR, abs/1511.06434, 2015.
[19] Aaditya Ramdas, Sashank J. Reddi, Barnabas Poczos, Aarti Singh, and Larry Wasserman. On the high-dimensional power of linear-time kernel two-sample testing under mean-dierence alternatives. Corr, abs/1411.6314, 2014.
[20] Dougal J Sutherland, Hsiao-Yu Tung, Heiko Strathmann, Soumyajit De, Aaditya Ramdas, Alex Smola, and Arthur Gretton. Generative models and model criticism via optimized maximum mean discrepancy. In International Confer- ence on Learning Representations, 2017. Under review.
[21] T. Tieleman and G. Hinton. Lecture 6.5|RmsProp: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural Networks for Machine Learning, 2012.
[22] Cedric Villani. Optimal Transport: Old and New. Grundlehren der mathematischen Wissenschaften. Springer, Berlin, 2009.
[23] Yuhuai Wu, Yuri Burda, Ruslan Salakhutdinov, and Roger B. Grosse. On the quantitative analysis of decoder-based generative models. CoRR, abs/1611.04273, 2016.
[24] Fisher Yu, Yinda Zhang, Shuran Song, Ari Se, and Jianxiong Xiao. LSUN: Construction of a large-scale image dataset using deep learning with humans in the loop. Corr, abs/1506.03365, 2015.
[25] Junbo Zhao, Michael Mathieu, and Yann LeCun. Energy-based generative adversarial network. Corr, abs/1609.03126, 2016.