Introduction
-
生成式模型的目的:学习目标的分布(比如图像的分布)
通常的做法:
给定一类分布的族PΘ,在这类族中,寻找最优的参数,使得可以逼近真实分布Pτ,通常的做法是 MLE,并且MLE正好和最小化PΘ和Pτ的KL距离等价。
问题是:这类函数族PΘ和Pτ可能没有多大的交集,所以通常会选择PΘ为高斯分布,能够尽可能多地涵盖分布。
-
Modern way:
现在一般的做法是:给定一个随机的噪声Z,寻找一个分布的映射函数fW,将Z映射到分布Pg,使得Pg和Pr接近,已有的这方面的工作包括:
Distances
使Pg和Pr接近可以通过优化二者的距离的度量,所以选择合适的分布的距离的度量十分重要,好的度量应该具有良好的函数性质(如连续、一致连续等)便于优化,而且对所有分布都能够真实反映二者的距离,以下作者对四种距离做了分析:
定义X为compact metrix set
(随机变量),Σ是X的波莱尔子集(?),Prob(X)是所有定义在X上的分布的空间,对于两个分布Pr,Pg∈Prob(X)有以下的距离的定义:
δ(Pr,Pg)=A∈Σsup∥Pr(A)−Pg(A)∥
KL(Pr∣∣Pg)=∫log(Pg(x)Pr(x))Pr(x)dμ(x)
JS(Pr∣∣Pg)=21(KL(Pr∣∣Pm)+KL(Pg∣∣Pm))
(注:原论文这有笔误)
- EM(Earth Move) or Wasserstain-1 距离:
W(Pr,Pg)=γ∈∏(Pr,Pg)infE(x,y)∼γ∥x−y∥
这四种距离:
-
KL距离的缺点是:不对称,即KL(Pr∣∣Pg)=KL(Pg∣∣Pg),作者指出的KL距离包含的问题有:
-
如果两个分布Pr,Pg几乎没有什么交集,那么KL距离会变得没有定义(趋向正无穷)。
Pr,Pg没有什么交集,当Pr取概率比较大的随机变量X的值时,Pg(X)→0,KL距离中,log函数的分子趋向0,整个值趋向正无穷。
-
其中JS距离是KL距离的优化,Pm取2Pr+Pg,它是对称的。
- JS 距离是对称的,而且它对任意的两个分布都是有定义的。
-
TV距离是对两个分布,同一个样本出现的最大值。
-
EM(Wassertain-1)距离理解起来有点抽象,其中∏(Pr,Pg)是联合分布γ的集合,集合中的每一个元素(每一个联合分布)γ,它的边缘分布是Pr和Pg。
Examples
文章作者举了例子来阐述了EM距离在连续性上的优越性:
令Z∼U[0,1],P0是(0,Z)二维随机变量的分布,而Pθ是二维随机变量(θ,Z)的随机分布族,其中θ是超参数。
可以发现,当且仅当θ=0时,P0和Pθ是同一分布,而当θ=0时,P0和Pθ是完全没有交集的两个分布,下面我们可以分情况计算这四种距离:
- KL 距离:同一分布时KL(P0∣∣Pθ)=0,而完全没有交集的两个分布时,KL(P0∣∣Pθ)=∞,即:
KL(P0∣∣Pθ)=0∞iffθ=0iffθ=0
- JS 距离:同一分布的情况下,同样JS距离也是0,不同分布下:
JS(P0,Pθ)=KL(P0∣∣Pm)+KL(Pθ∣∣Pm)
KL(P0∣∣Pm)=∫log(2P0(x)+Pθ(x)P0(x))P0(x)du(x)=log2∫P0(x)du(x)=log2
同理有:
KL(Pθ∣∣Pm)=log2
则:
JS(P0,Pθ)=0log2iffθ=0iffθ=0
-
TV 距离:
直观上很容易看出TV距离的值,当二者是同一分布时,对任意A∈Σ,都有P0(A)−Pθ(A),则TV(P0,Pθ)=0。
当二者是完全没有交集的分布时,对同一个A∈Σ,∥P0(A)−Pθ(A)∥的最大值是1:概率取值在[0,1],最大的差就是1。
则有:
TV(P0,Pθ)=01iffθ=0iffθ=0
W(P0,Pθ)==infE(x,y)∼γ∥(0,Z)−(θ,Z)∥infE(x,y)∼γ∣θ∣
又 θ 是常数。
W(P0,Pθ)=∣θ∣
比较这四种距离,发现只有EM距离对于θ是连续的,只有EM距离可以使得当θ→0时,分布族(Pθt)t∈N收敛到P0,而且当两个分布完全不相交时,其他距离对于θ的导数是0,使得无法通过梯度下降学习。
WGAN 和 实际计算EM距离
EM距离中的inf计算是非常困难的,作者使用了Kantorovich-Rubinstein对偶,将距离变成了另一个公式:
W(Pr,Pθ)=sup∥f∥L≤1Ex∼Pr[f(x)]−Ex∼Pθ[f(x)]
其中f是X→R,即将随机变量映射到实数空间的函数。而且f满足1-Lipschitz条件。
上式的意思是,对所有满足1-Lipschitz
的函数f,Ex∼Pr[f(x)]−Ex∼Pθ[f(x)] 的上确界。
将1-Lipschitz
条件替换为K-Lipschitz
条件(K为任意常数),如果我们有满足K-Lipschitz
条件的函数族fw(w∈W),把求解W(Pr,Pθ)变成求最优值的问题:
w∈WmaxEx∼Pr[fw(x)]−Ez∼p(z)[fw(gθ(z))]
这里就可以引入函数的万能近似器NN了,将其中的fw和gθ替换,最终得到的WGAN的优化目标为:
GminD∈DmaxEx∼pdata[D(x)]−Ez∼pz[D(G(z))]
其中D表示满足Lipschitz-1条件的函数族。
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),对任意定义域内的点x1,x2,都存在L,使得:
∥f(x1)−f(x2)∥≤L∥x1−x2∥
直观上看,就是函数f任意两点连线斜率小于L。
满足上述条件的函数也称Lipschitz连续,比起连续的函数,满足Lipschitz连续的函数更加光滑,而且它对函数的变化做了要求:函数在任意区间的变化不能超过线性的变化,线性变化的大小不超过Lipschitz常数L。
在非凸优化中,Lipschitz条件对函数定义了一类边界。
Reference