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

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

1. Earth-Mover 距离

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

  • 不能反向
    Fij0(1) (1) F i j ≥ 0
  • 山脉运出的所有商品总重量不能大于山脉可开采矿产量
    j=1MFijWi(2) (2) ∑ j = 1 M F i j ≤ W i
  • 运输到仓库的总矿产量不能超过其库存
    i=1NFijQj(3) (3) ∑ i = 1 N F i j ≤ Q j
  • 总运输量为仓库总容量和山脉总可开采矿产量较小者
    i=1Nj=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 )

      综上所述,该运输问题可转化为求解如下优化问题
      
    mini=1Nj=1MFijDijs.t.Fij0j=1MFijWii=1NFijQji=1Nj=1MFij=min(j=1MFij,i=1NFij)1iN,1jM(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=1Nj=1MDijFiji=1Nj=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)散度作损失函数,如果生成器生成图像的概率分布 Pg P g 的支撑集 M M 和真实图像像素概率分布 Pdata P d a t a 的支撑集 P P 没有任何交集或者交集是低维流形,那么可以证明总能够找到最优判别器 D D 将从两个分布 Pdata P d a t a Pg P g 获得的数据分开,优化生成器 G G 时,JS散度将会是常数,这将导致 G G 的损失函数成为一个常函数,梯度变为0。这种梯度弥散问题将极大影响生成器 G G 生成的图片质量,使得生成器不能稳定生成图片。
      那么 M M P P 支撑集交集测度为0的可能性 P0 P 0 有多大?作者在文献[2]中证明 P0=1 P 0 = 1 ,这一点可以从生成器 G G 的输入与真实图像数据的大小来直观地理解。生成器的输入为100维噪声,而常用于训练判别器的图像数据约为4096维,远大于100维。所以生成器生成数据就在4096维空间中构成一个低维流形,在浩浩荡荡4096维空间中,两个100维的概率分布要有交集的概率很明显是0。可见,这种情况广泛存在于图片生成的过程中,除非细心调整参数让两个分布有较大交集,否则 G G 不可能生成稳定的图像。
    可见,使用KL散度作为生成器的损失函数并不稳定。针对此问题,曾有人提出修改生成器的迭代更新梯度如下:
    Δθ=θEzp(z)[log(D(gθ(z)))](7) (7) Δ θ = ∇ θ E z ∼ p ( z ) [ − log ⁡ ( D ( g θ ( z ) ) ) ]

      作者同样在论文中证明了这种方法等价于下式
      
    Δθ=θEzp(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散度作为 G G 的损失函数。文献[4]中,作者指出EMD最大的好处在于即便两个分布支撑集不重合(没有任何交叉),EMD还是能够保证梯度不为零,从而解决了 G G 的梯度弥散问题,另一方面,EMD是光滑可导的,不像KL散度存在一些梯度不存在的点。
  因此,论文将生成器 G G 的损失函数用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.

你可能感兴趣的:(深度学习)