Introduction

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

    通常的做法:

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

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

  2. Modern way:

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

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

Distances

使Pg{P_{g}}Pr{P_{r}}接近可以通过优化二者的距离的度量,所以选择合适的分布的距离的度量十分重要,好的度量应该具有良好的函数性质(如连续、一致连续等)便于优化,而且对所有分布都能够真实反映二者的距离,以下作者对四种距离做了分析:

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

  • TV 距离:

δ(Pr,Pg)=supAΣPr(A)Pg(A){ \delta(\mathbb{P}_{r}, \mathbb{P}_{g}) = \sup_{A \in \Sigma}\| \mathbb{P}_{r}(A) - \mathbb{P}_{g}(A) \| }

  • KL 距离:

KL(PrPg)=log(Pr(x)Pg(x))Pr(x)dμ(x){ 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(PrPg)=12(KL(PrPm)+KL(PgPm)){ 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(Pr,Pg)=infγ(Pr,Pg)E(x,y)γxy{ 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(PrPg)KL(PgPg){KL(\mathbb{P}_{r} \vert \vert \mathbb{P}_{g}) \neq KL(\mathbb{P}_{g} \vert \vert \mathbb{P}_{g})},作者指出的KL距离包含的问题有:

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

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

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

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

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

Examples

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

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

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

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

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

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

JS(P0,Pθ)=KL(P0Pm)+KL(PθPm){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}) }

KL(P0Pm)=log(P0(x)P0(x)+Pθ(x)2)P0(x)du(x)=log2P0(x)du(x)=log2{ \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(PθPm)=log2{ KL(\mathbb{P}_{\theta} \vert \vert \mathbb{P}_{m}) = \log 2 }

则:

JS(P0,Pθ)=0iffθ=0log2iffθ0{ \begin{aligned} JS(\mathbb{P}_{0}, \mathbb{P}_{\theta}) =& 0 \quad & iff \quad \theta = 0 \\ & \log 2 \quad & iff \quad \theta \neq 0 \end{aligned} }

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

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

    则有:

TV(P0,Pθ)=0iffθ=01iffθ0{ \begin{aligned} TV(\mathbb{P}_{0}, \mathbb{P}_{\theta}) =& 0 \quad & iff \quad \theta = 0 \\ & 1 \quad & iff \quad \theta \neq 0 \end{aligned} }

  • EM距离:

W(P0,Pθ)=infE(x,y)γ(0,Z)(θ,Z)=infE(x,y)γθ{ \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} \vert \theta \vert \\ \end{aligned} }

θ{\theta} 是常数。

W(P0,Pθ)=θ{ W(\mathbb{P}_{0}, \mathbb{P}_{\theta}) = \vert \theta \vert }

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

WGAN 和 实际计算EM距离

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

W(Pr,Pθ)=supfL1ExPr[f(x)]ExPθ[f(x)]{ 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{f}XR{\mathcal{X} \to \mathbb{R}},即将随机变量映射到实数空间的函数。而且f{f}满足1-Lipschitz条件。

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

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

maxwWExPr[fw(x)]Ezp(z)[fw(gθ(z))]{ \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了,将其中的fw{f_{w}}gθ{g_{\theta}}替换,最终得到的WGAN的优化目标为:

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

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

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

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){f(x)},对任意定义域内的点x1,x2{x_{1},x_{2}},都存在L{L},使得:

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

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

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

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

Reference