论文研读:WGAN

前言

Wasserstain-GAN 是 GAN 中非常重要的一个工作 ,文章:

  1. 从理论上分析了原始GAN 的 Loss 存在的优化上的问题:
  2. 提出了Wasserstain 距离,例子论证了不同distance的差异,并使用 Kantorovich-Rubinstein对偶将 Wasserstain 距离的计算进行简化,提出了WGAN Loss。

Introduction

  1. 生成式模型的目的:学习目标的分布(比如图像的分布)

    通常的做法:

    给定一类分布的族{P_{\Theta}},在这类族中,寻找最优的参数,使得可以逼近真实分布{P_{\tau}},通常的做法是 MLE,并且MLE正好和最小化{P_{\Theta}}{P_{\tau}}的KL距离等价。

    问题是:这类函数族{P_{\Theta}}{P_{\tau}}可能没有多大的交集,所以通常会选择{P_{\Theta}}为高斯分布,能够尽可能多地涵盖分布。

  2. Modern way:

    现在一般的做法是:给定一个随机的噪声{Z},寻找一个分布的映射函数{f_{W}},将{Z}映射到分布{P_{g}},使得{P_{g}}{P_{r}}接近,已有的这方面的工作包括:

    • VAE(变分自编码器)
    • GAN

Distances

已有的一些距离,定义{\mathcal{X}}compact metrix set(随机变量),{\Sigma}{\mathcal{X}}的波莱尔子集(?),{\mathrm{Prob}(\mathcal{X})}是所有定义在{\mathcal{X}}上的分布的空间,对于两个分布{\mathbb{P}_{r}, \mathbb{P}_{g} \in \mathrm{Prob}(\mathcal{X})}有以下的距离的定义:

  • TV 距离:

    { \delta(\mathbb{P}_{r}, \mathbb{P}_{g}) = \sup_{A \in \Sigma}\| \mathbb{P}_{r}(A) - \mathbb{P}_{g}(A) \| }

  • KL 距离:

    { KL(\mathbb{P}_{r} \vert \vert \mathbb{P}_{g}) = \int \log \left( \frac{\mathbb{P}_{r}(x)}{\mathbb{P}_{g}(x)} \right) \mathbb{P}_{r}(x) d \mu(x) }

  • JS 距离:

    { JS(\mathbb{P}_{r} \vert \vert \mathbb{P}_{g}) = \frac{1}{2}\left( KL(\mathbb{P}_{r} \vert \vert \mathbb{P}_{m}) + KL(\mathbb{P}_{g} \vert \vert \mathbb{P}_{m}) \right) }

    (注:原论文这有笔误)

  • EM(Earth Move) or Wasserstain-1 距离:

    { W(\mathbb{P}_{r}, \mathbb{P}_{g}) = \inf_{\gamma \in \prod(\mathbb{P}_{r}, \mathbb{P}_{g})} \mathbb{E}_{(x,y) \sim \gamma} \| x - y \| }

这四种距离:

  • KL距离的缺点是:不对称,即{KL(\mathbb{P}_{r} \vert \vert \mathbb{P}_{g}) \neq KL(\mathbb{P}_{g} \vert \vert \mathbb{P}_{g})},作者指出的KL距离包含的问题有:

    • 如果两个分布{\mathbb{P}_{r}, \mathbb{P}_{g}}几乎没有什么交集,那么KL距离会变得没有定义(趋向正无穷)。

      {\mathbb{P}_{r},\mathbb{P}_{g}}没有什么交集,当{\mathbb{P}_{r}}取概率比较大的随机变量{\mathcal{X}}的值时,{\mathbb{P}_{g}(\mathcal{X}) \to 0},KL距离中,log函数的分子趋向0,整个值趋向正无穷。

  • 其中JS距离是KL距离的优化{\mathbb{P}_{m}}{\frac{\mathbb{P}_{r} + \mathbb{P}_{g}}{2}},它是对称的。

    • JS 距离是对称的,而且它对任意的两个分布都是有定义的。
  • TV距离是对两个分布,同一个样本出现的最大值。

  • EM(Wassertain-1)距离理解起来有点抽象,其中{\prod(\mathbb{P}_{r}, \mathbb{P}_{g})}是联合分布{\gamma}的集合,集合中的每一个元素(每一个联合分布){\gamma},它的边缘分布是{\mathbb{P}_{r}}{\mathbb{P}_{g}}

Examples

文章作者举了例子来阐述了EM距离在连续性上的优越性:

{Z \sim U[0,1]}{\mathbb{P}_{0}}{(0,Z)}二维随机变量的分布,而{\mathbb{P}_{\theta}}是二维随机变量{(\theta, Z)}的随机分布族,其中{\theta}是超参数。

可以发现,当且仅当{\theta = 0}时,{\mathbb{P}_{0}}{\mathbb{P}_{\theta}}是同一分布,而当{\theta \neq 0}时,{\mathbb{P}_{0}}{\mathbb{P}_{\theta}}是完全没有交集的两个分布,下面我们可以分情况计算这四种距离:

  • KL 距离:同一分布时{KL(\mathbb{P}_{0} \vert \vert \mathbb{P}_{\theta}) = 0},而完全没有交集的两个分布时,{KL(\mathbb{P}_{0} \vert \vert \mathbb{P}_{\theta}) = \infty},即:

{ KL(\mathbb{P}_{0} \vert \vert \mathbb{P}_{\theta}) = \left\{ \begin{aligned} & 0 \quad & iff \quad \theta = 0 \\ & \infty \quad & iff \quad \theta \neq 0 \\ \end{aligned} \right. }

  • JS 距离:同一分布的情况下,同样JS距离也是0,不同分布下:

    {JS(\mathbb{P}_{0}, \mathbb{P}_{\theta}) = KL(\mathbb{P}_{0} \vert \vert \mathbb{P}_{m}) + KL(\mathbb{P}_{\theta} \vert \vert \mathbb{P}_{m}) }

    { \begin{aligned} KL(\mathbb{P}_{0} \vert \vert \mathbb{P}_{m}) &= \int \log \left( \frac{\mathbb{P}_{0}(x)}{\frac{\mathbb{P}_{0}(x) + \mathbb{P}_{\theta}(x)}{2}} \right) \mathbb{P}_{0}(x) du(x) \\ &= \log 2 \int \mathbb{P}_{0}(x) du(x) \\ &= \log 2 \end{aligned} }

    同理有:

    { KL(\mathbb{P}_{\theta} \vert \vert \mathbb{P}_{m}) = \log 2 }

    则:

    { JS(\mathbb{P}_{0}, \mathbb{P}_{\theta}) = \left\{ \begin{aligned} & 0 \quad & iff \quad \theta = 0 \\ & \log 2 \quad & iff \quad \theta \neq 0 \\ \end{aligned} \right. }

  • TV 距离:
    直观上很容易看出TV距离的值,当二者是同一分布时,对任意{A \in \Sigma},都有{\mathbb{P}_{0}(A) - \mathbb{P}_{\theta}(A)},则TV(\mathbb{P}_{0},\mathbb{P}_{\theta}) = 0

    当二者是完全没有交集的分布时,对同一个{A \in \Sigma}{\| \mathbb{P}_{0}(A) - \mathbb{P}_{\theta}(A) \|}的最大值是1:概率取值在{[0,1]},最大的差就是1。

    则有:

    { TV(\mathbb{P}_{0}, \mathbb{P}_{\theta}) = \left\{ \begin{aligned} & 0 \quad & iff \quad \theta = 0 \\ & 1 \quad & iff \quad \theta \neq 0 \\ \end{aligned} \right. }

  • EM距离:

    { \begin{aligned} W(\mathbb{P}_{0}, \mathbb{P}_{\theta}) =& \inf \mathbb{E}_{(x,y) \sim \gamma} \| (0,Z) - (\theta, Z) \| \\ =& \inf \mathbb{E}_{(x,y) \sim \gamma} \| \theta \| \\ \end{aligned} }

    {\theta} 是常数。

    { W(\mathbb{P}_{0}, \mathbb{P}_{\theta}) = \| \theta \| }

比较这四种距离,发现只有EM距离对于{\theta}是连续的,只有EM距离可以使得当{\theta \to 0}时,分布族{(\mathbb{P}_{\theta_{t}})_{t \in \mathbb{N}}}收敛到{\mathbb{P}_{0}},而且当两个分布完全不相交时,其他距离对于{\theta}的导数是0,使得无法通过梯度下降学习。

WGAN 和 实际计算EM距离

EM距离中的{\inf}计算是非常困难的,作者使用了Kantorovich-Rubinstein对偶,将距离变成了另一个公式:

{ W(\mathbb{P}_{r}, \mathbb{P}_{\theta}) = sup_{\|f\|_{L} \leq 1} \mathbb{E}_{x \sim \mathbb{P}_{r}} [f(x)] - \mathbb{E}_{x \sim \mathbb{P}_{\theta}} [f(x)] }

其中{f}{\mathcal{X} \to \mathbb{R}},即将随机变量映射到实数空间的函数。而且{f}满足1-Lipschitz条件。

上式的意思是,对所有满足1-Lipschitz的函数{f}{\mathbb{E}_{x \sim \mathbb{P}_{r}} [f(x)] - \mathbb{E}_{x \sim \mathbb{P}_{\theta}} [f(x)]} 的上确界。

1-Lipschitz条件替换为K-Lipschitz条件({K}为任意常数),如果我们有满足K-Lipschitz条件的函数族{f_{w}}({w \in \mathcal{W}}),把求解{W(\mathbb{P}_{r},\mathbb{P}_{\theta})}变成求最优值的问题:

{ \max_{w \in \mathcal{W}}\mathbb{E}_{x \sim \mathbb{P}_{r}} [f_{w}(x)] - \mathbb{E}_{z \sim p(z)}[f_{w}(g_{\theta}(z))] }

这里就可以引入函数的万能近似器NN了,将其中的{f_{w}}{g_{\theta}}替换,最终得到的WGAN的优化目标为:

{ \min_{G} \max_{D \in \mathcal{D}} \mathbb{E}_{x \sim p_{data}}[D(x)] - \mathbb{E}_{z \sim p_{z}}[D(G(z))] }

其中{\mathcal{D}}表示满足Lipschitz-1条件的函数族。

WGAN的训练过程如下图所述:

WGAN训练过程

不难看出D训练地越好,越能反应真实的Wasserstain距离,所以作者也提出可以将损失函数的值作为Wasserstain距离的近似,衡量WGAN学习的好坏。

总结的上图的要点有:

  • 改变原有的损失函数的计算方式。
  • 使用权重裁剪(weight-clipping)处理D,使得它满足1-Lipschitz条件,通常c取0.01。

在WGAN-GP中论述了权重裁剪将使得D简单化,使用梯度惩罚(Gradient-Penalty)替代

  • 使用RMSProp的方法替代带动量的优化算法(经验之谈)。

在WGAN-GP使用的是Adam算法。

其他

一点经验之谈:

  • WGAN的收敛速度通常来说比较慢,要多训练几个epochs。
  • WGAN较容易收敛
  • Wasserstain距离的规律是开始逐渐增大,达到某个数值后开始减小:原因是开始训练D使得D比较好,D训练地比较好提供给G的梯度变大,使得G开始训练。

WGAN使得训练GAN更加容易,至于Mode Collapse,作者只是提到在实验中并没有发现这一现象。

附录

1. Lipschitz条件

Lipschitz条件的定义:

对函数{f(x)},对任意定义域内的点{x_{1},x_{2}},都存在{L},使得:

{ \| f(x_{1}) - f(x_{2}) \| \leq L \| x_{1} - x_{2} \| }

直观上看,就是函数{f}任意两点连线斜率小于{L}

满足上述条件的函数也称Lipschitz连续,比起连续的函数,满足Lipschitz连续的函数更加光滑,而且它对函数的变化做了要求:函数在任意区间的变化不能超过线性的变化线性变化的大小不超过Lipschitz常数{L}

在非凸优化中,Lipschitz条件对函数定义了一类边界。

Reference

后言

文章是为了方便自己理解而写,所以难免有不清楚或错误之处、或者自创的方便理解的术语,如有错误,欢迎指正。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文《Wasserstein GAN》却...
    MiracleJQ阅读 2,272评论 0 8
  • 转载自 https://mp.weixin.qq.com/s/OXXtPoBrCADbwxVyEbfbYg 25....
    _龙雀阅读 1,734评论 0 0
  • 关于WGAN总共有3篇文章:-paper1:Towards Principled Methods for Trai...
    雪俏阅读 1,514评论 0 4
  • 渐渐体会到GAN训练难确实是一个让人头疼的问题,一个多月前我曾粗略地了解了一下WGAN,知道这是一个着眼于提高GA...
    6e845d5ac37b阅读 24,383评论 2 19
  • GAN-QP 写到一半发现关于 WGAN 以及它相关约束部分之前没有完全读懂,需要重读,那顺手也把笔记给谢了吧 W...
    Duffy_x阅读 1,707评论 0 0