您的位置:首页 > 其它

GAN论文研读(三)-----WGAN

2018-02-02 10:22 357 查看
  回想之前提到的一种极端情况,如果判别器能力极强,GG生成的任何图像他都能轻易辨识出,那么GG其实学不到任何东西,即GG的梯度弥散问题会十分严重。WGAN的作者正是从该点得到启发,将Earth-Mover距离引入GAN模型中,理论上解决了GG生成图像不稳定的问题。本章首先介绍Earth-Mover距离,并在此基础上与KL散度进行对比,说明Earth-Mover距离相对KL散度的优越性,最后介绍能够稳定生成图片的模型—WGAN。

1. Earth-Mover 距离

  Earth-Mover距离是将一个分布转换为另一个分布所需要的最小代价和KL散度一样,可用于表征两个分布之间的距离,求解该距离实际上是要解决一个运输问题。考虑如下场景:NN座山脉有不少矿产,某人想用推土机将它们运送到M座仓库去。设每座山脉拥有可开采矿产量为WiWi且仓库容量为QiQi,从山脉i到仓库j距离为DijDij。如果从山脉ii到仓库jj要运输FijFij重量的货物,如何优化FijFij(不一定是全部货物)才能较省力?

  除最小化总运输距离外,该问题还有以下约束条件:  

不能反向

Fij≥0(1)(1)Fij≥0

山脉运出的所有商品总重量不能大于山脉可开采矿产量

∑j=1MFij≤Wi(2)(2)∑j=1MFij≤Wi

运输到仓库的总矿产量不能超过其库存

∑i=1NFij≤Qj(3)(3)∑i=1NFij≤Qj

总运输量为仓库总容量和山脉总可开采矿产量较小者

∑i=1N∑j=1MFij=min(∑j=1MFij,∑i=1NFij)(4)(4)∑i=1N∑j=1MFij=min(∑j=1MFij,∑i=1NFij)

  综上所述,该运输问题可转化为求解如下优化问题

  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=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

  EMD(Earth-Mover Distance)即是上述优化问题的目标解,由于总运输量取决于山脉总矿产量和仓库总容量较小者,所以为了不让EMD随着不同总运输量变化而发生变化,即在确定每座山脉可采矿产量分布和仓库容量的分布后,让EMD唯一地确定下来,需要对求解结果进行归一化。

  EMD=∑i=1N∑j=1MDijFij∗∑i=1N∑j=1MFij∗(6)(6)EMD=∑i=1N∑j=1MDijFij∗∑i=1N∑j=1MFij∗

  EMD在图像处理中具有广泛的应用。例如,已知两幅图像的颜色直方图,求解两幅图像的相似度,就可以使用该方法,参考文献[1]提供了一个较好的案例。

2. KL(JS)散度的不合理性

  在这个系列第一篇博文中,我们推导了GAN优化目标函数的过程,即首先最大化式(1)求解最优分类器,再将最优分类器表达式(3)带入目标函数求解对应的最小化问题。

在进行下文的论述前,需要首先介绍流形与支撑集的相关理论[3]。

流形

  即高维空间中曲线、曲面。三维空间中的一张曲面是一个二维流形,因为它本质上可以在二维空间中进行描述,称这种情况为高维空间中的低维流形。  

支撑集

  对一个函数来说,其函数值大于0那部分对应的自变量组成的集合称支撑集。

测度

  高维空间中长度、面积概念的拓展。

  以上三个概念贯穿于参考文献[2]。Martin Arjovsky在该论文中通过数学推导指出一个训练中存在的问题。训练GG时使用KL(JS)散度作损失函数,如果生成器生成图像的概率分布PgPg的支撑集MM和真实图像像素概率分布PdataPdata的支撑集PP没有任何交集或者交集是低维流形,那么可以证明总能够找到最优判别器DD将从两个分布PdataPdata和PgPg获得的数据分开,优化生成器GG时,JS散度将会是常数,这将导致GG的损失函数成为一个常函数,梯度变为0。这种梯度弥散问题将极大影响生成器GG生成的图片质量,使得生成器不能稳定生成图片。

  那么MM与PP支撑集交集测度为0的可能性P0P0有多大?作者在文献[2]中证明P0=1P0=1,这一点可以从生成器GG的输入与真实图像数据的大小来直观地理解。生成器的输入为100维噪声,而常用于训练判别器的图像数据约为4096维,远大于100维。所以生成器生成数据就在4096维空间中构成一个低维流形,在浩浩荡荡4096维空间中,两个100维的概率分布要有交集的概率很明显是0。可见,这种情况广泛存在于图片生成的过程中,除非细心调整参数让两个分布有较大交集,否则GG不可能生成稳定的图像。

可见,使用KL散度作为生成器的损失函数并不稳定。针对此问题,曾有人提出修改生成器的迭代更新梯度如下:

Δθ=∇θEz∼p(z)[−log(D(gθ(z)))](7)(7)Δθ=∇θEz∼p(z)[−log⁡(D(gθ(z)))]

  作者同样在论文中证明了这种方法等价于下式

  Δθ=∇θEz∼p(z)[−log(D(gθ(z)))]=∇θ[KL(Pg||Pdata)−2JSD(Pg||Pdata)](8)(8)Δθ=∇θEz∼p(z)[−log⁡(D(gθ(z)))]=∇θ[KL(Pg||Pdata)−2JSD(Pg||Pdata)]

  可以看出,要达到Pg=PdataPg=Pdata的目的,-JSD项必须最大化,而KL散度项却要最小化,梯度更新公式自身就存在矛盾的行为,生成的图像出现“崩溃”也就不奇怪了。

3. 稳定性的解决—WGAN

  事实上,作者Martin Arjovsky花了两篇论文对WGAN进行论述。第一篇论文主要论述GAN生成图像不稳定的根源,即参考文献[2]中提到的JS散度在两个分布没有公共支撑集或支撑集交集太小时恒为log2log2导致生成器GG训练时出现梯度弥散的情况。在了解不稳定性的根源后,第二篇论文[4]才开始介绍WGAN的网络结构。

  WGAN使用EMD代替KL和JS散度作为GG的损失函数。文献[4]中,作者指出EMD最大的好处在于即便两个分布支撑集不重合(没有任何交叉),EMD还是能够保证梯度不为零,从而解决了GG的梯度弥散问题,另一方面,EMD是光滑可导的,不像KL散度存在一些梯度不存在的点。

  因此,论文将生成器GG的损失函数用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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习 GAN