回想之前提到的一种极端情况,如果判别器能力极强, G G 生成的任何图像他都能轻易辨识出,那么其实学不到任何东西,即 G G 的梯度弥散问题会十分严重。WGAN的作者正是从该点得到启发,将Earth-Mover距离引入GAN模型中,理论上解决了生成图像不稳定的问题。本章首先介绍Earth-Mover距离,并在此基础上与KL散度进行对比,说明Earth-Mover距离相对KL散度的优越性,最后介绍能够稳定生成图片的模型—WGAN。
1. Earth-Mover 距离
Earth-Mover距离是将一个分布转换为另一个分布所需要的最小代价和KL散度一样,可用于表征两个分布之间的距离,求解该距离实际上是要解决一个运输问题。考虑如下场景:
N
N
座山脉有不少矿产,某人想用推土机将它们运送到M座仓库去。设每座山脉拥有可开采矿产量为且仓库容量为
Qi
Q
i
,从山脉i到仓库j距离为
Dij
D
i
j
。如果从山脉
i
i
到仓库要运输
Fij
F
i
j
重量的货物,如何优化
Fij
F
i
j
(不一定是全部货物)才能较省力?
除最小化总运输距离外,该问题还有以下约束条件:
- 不能反向
Fij≥0(1) (1) F i j ≥ 0 - 山脉运出的所有商品总重量不能大于山脉可开采矿产量
∑j=1MFij≤Wi(2) (2) ∑ j = 1 M F i j ≤ W i - 运输到仓库的总矿产量不能超过其库存
∑i=1NFij≤Qj(3) (3) ∑ i = 1 N F i j ≤ Q j - 总运输量为仓库总容量和山脉总可开采矿产量较小者
∑i=1N∑j=1MFij=min(∑j=1MFij,∑i=1NFij)(4) (4) ∑ i = 1 N ∑ j = 1 M F i j = min ( ∑ j = 1 M F i j , ∑ i = 1 N F i j )
综上所述,该运输问题可转化为求解如下优化问题
min∑i=1N∑j=1MFijDijs.t.⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪Fij≥0∑j=1MFij≤Wi∑i=1NFij≤Qj∑i=1N∑j=1MFij=min(∑j=1MFij,∑i=1NFij)1≤i≤N,1≤j≤M(5) (5) min ∑ i = 1 N ∑ j = 1 M F i j D i j s . t . { F i j ≥ 0 ∑ j = 1 M F i j ≤ W i ∑ i = 1 N F i j ≤ Q j ∑ i = 1 N ∑ j = 1 M F i j = min ( ∑ j = 1 M F i j , ∑ i = 1 N F i j ) 1 ≤ i ≤ N , 1 ≤ j ≤ M
EMD(Earth-Mover Distance)即是上述优化问题的目标解,由于总运输量取决于山脉总矿产量和仓库总容量较小者,所以为了不让EMD随着不同总运输量变化而发生变化,即在确定每座山脉可采矿产量分布和仓库容量的分布后,让EMD唯一地确定下来,需要对求解结果进行归一化。
EMD=∑i=1N∑j=1MDijFij∗∑i=1N∑j=1MFij∗(6) (6) E M D = ∑ i = 1 N ∑ j = 1 M D i j F i j ∗ ∑ i = 1 N ∑ j = 1 M F i j ∗
EMD在图像处理中具有广泛的应用。例如,已知两幅图像的颜色直方图,求解两幅图像的相似度,就可以使用该方法,参考文献[1]提供了一个较好的案例。
2. KL(JS)散度的不合理性
在这个系列第一篇博文中,我们推导了GAN优化目标函数的过程,即首先最大化式(1)求解最优分类器,再将最优分类器表达式(3)带入目标函数求解对应的最小化问题。
在进行下文的论述前,需要首先介绍流形与支撑集的相关理论[3]。
- 流形
即高维空间中曲线、曲面。三维空间中的一张曲面是一个二维流形,因为它本质上可以在二维空间中进行描述,称这种情况为高维空间中的低维流形。 - 支撑集
对一个函数来说,其函数值大于0那部分对应的自变量组成的集合称支撑集。 - 测度
高维空间中长度、面积概念的拓展。
以上三个概念贯穿于参考文献[2]。Martin Arjovsky在该论文中通过数学推导指出一个训练中存在的问题。训练 G G 时使用KL(JS)散度作损失函数,如果生成器生成图像的概率分布的支撑集 M M 和真实图像像素概率分布的支撑集 P P 没有任何交集或者交集是低维流形,那么可以证明总能够找到最优判别器将从两个分布 Pdata P d a t a 和 Pg P g 获得的数据分开,优化生成器 G G 时,JS散度将会是常数,这将导致的损失函数成为一个常函数,梯度变为0。这种梯度弥散问题将极大影响生成器 G G 生成的图片质量,使得生成器不能稳定生成图片。
那么与 P P 支撑集交集测度为0的可能性有多大?作者在文献[2]中证明 P0=1 P 0 = 1 ,这一点可以从生成器 G G 的输入与真实图像数据的大小来直观地理解。生成器的输入为100维噪声,而常用于训练判别器的图像数据约为4096维,远大于100维。所以生成器生成数据就在4096维空间中构成一个低维流形,在浩浩荡荡4096维空间中,两个100维的概率分布要有交集的概率很明显是0。可见,这种情况广泛存在于图片生成的过程中,除非细心调整参数让两个分布有较大交集,否则不可能生成稳定的图像。
可见,使用KL散度作为生成器的损失函数并不稳定。针对此问题,曾有人提出修改生成器的迭代更新梯度如下:
Δθ=∇θEz∼p(z)[−log(D(gθ(z)))](7) (7) Δ θ = ∇ θ E z ∼ p ( z ) [ − log ( D ( g θ ( z ) ) ) ]
作者同样在论文中证明了这种方法等价于下式
Δθ=∇θEz∼p(z)[−log(D(gθ(z)))]=∇θ[KL(Pg||Pdata)−2JSD(Pg||Pdata)](8) (8) Δ θ = ∇ θ E z ∼ p ( z ) [ − log ( D ( g θ ( z ) ) ) ] = ∇ θ [ K L ( P g | | P d a t a ) − 2 J S D ( P g | | P d a t a ) ]
可以看出,要达到 Pg=Pdata P g = P d a t a 的目的,-JSD项必须最大化,而KL散度项却要最小化,梯度更新公式自身就存在矛盾的行为,生成的图像出现“崩溃”也就不奇怪了。
3. 稳定性的解决—WGAN
事实上,作者Martin Arjovsky花了两篇论文对WGAN进行论述。第一篇论文主要论述GAN生成图像不稳定的根源,即参考文献[2]中提到的JS散度在两个分布没有公共支撑集或支撑集交集太小时恒为
log2
l
o
g
2
导致生成器
G
G
训练时出现梯度弥散的情况。在了解不稳定性的根源后,第二篇论文[4]才开始介绍WGAN的网络结构。
WGAN使用EMD代替KL和JS散度作为的损失函数。文献[4]中,作者指出EMD最大的好处在于即便两个分布支撑集不重合(没有任何交叉),EMD还是能够保证梯度不为零,从而解决了
G
G
的梯度弥散问题,另一方面,EMD是光滑可导的,不像KL散度存在一些梯度不存在的点。
因此,论文将生成器的损失函数用EMD进行代换,以期望获得更好的效果。EMD是以一个优化问题的形式出现的,并不方便求导,因此,作者参考文献将其转换为解析形式,使得距离的求解更为方便。
除上述改动外,论文对网络结构和整个训练过程只做了如下几点改动:
1. D去掉sigmoid层。
2. D和G的损失函数不取对数。
3. 不使用基于动量的优化算法,使用随机梯度下降算法更为可靠。
4. D的参数更新后,将其截断到绝对值不超过某常数。
在加入上述步骤后,GAN生成的图像终于变的稳定了起来。下一篇文章将介绍GAN在图像风格转换中的应用—Cycle GAN与Star GAN。
参考文献:
[1] EMD.http://blog.csdn.net/garfielder007/article/details/50389507
[2] Arjovsky M., Bottou L. Towards Principled Methods for Training Generative Adversarial Networks[C]. ICLR, 2017.
[3] 流形与支撑集. http://blog.csdn.net/xyj1536214199/article/details/55214091
[4] Arjovsky M., Chintala S., Bottou L. Wasserstein GAN[J]. arXiv:1701.07875, 2017.