形式上来看,LS-GAN和WGAN也有很大区别。WGAN是通过最大化f-函数在真实样本和生成样本上的期望之差实现学习的,这种意义上,它可以看做是一种使用“一阶统计量"的方法。 LS-GAN则不同。观察LS-GAN优化目标的第二项,由于非线性的函数的存在,使得我们无法把L-函数分别与期望结合,像WGAN那样得到一阶统计量。因为如此,才使得LS-GAN与WGAN非常不同。 LS-GAN可以看成是使用成对的(Pairwise)“真实/生成样本对”上的统计量来学习f-函数。这点迫使真实样本和生成样本必须相互配合,从而更高效的学习LS-GAN。 如上文所述,这种配合,使得LS-GAN能够按需分配其建模能力:当一个生成样本非常接近某个真实样本时,LS-GAN就不会在过度地最大化他们之间L-函数地差值,从而LS-GAN可以更有效地集中优化那些距离真实样本还非常远地生成样本,提高LS-GAN模型优化和使用地效率。 梯度消失问题 那LS-GAN是否也能解决经典GAN中的梯度消失问题呢?即当它的L-函数被充分训练后,是否对应的G-网络训练目标仍然可以提供足够的梯度信息呢? 我们回顾下,在WGAN里,其作者给出G-网络的训练梯度,并证明了这种梯度在对应的f-函数被充分优化后,仍然存在。 不过,仅仅梯度存在这点并不能保证WGAN可以提供足够的梯度信息训练 G-网络。为了说明WGAN可以解决梯度消失问题,WGAN的作者宣称:“G-网络的训练目标函数”在对其网络链接权重做限定后, 是接近或者最多线性的。这样就可以避免训练目标函数饱和,从而保证其能够提供充足的梯度训练G-网络。 好了,问题的关键时为什么G-网络的训练目标函数是接近或者最多线性的,这点WGAN里并没有给出定量的分析,而只有大致的定性描述,这里我们引用如下: “
” 现在,让我们回到LS-GAN,看看如何给出一直定量的形式化的分析。在LS-GAN里,我们给出了最优的L-函数的一种非参数化的解:
这个定理比较长,简单的来说,就是所有的最优 L-GAN的解,都是在两个分段线性的上界和下界L-函数之间。如下图所示:
红线是上界,绿线是下界。任何解出来最优L-函数,atv,一定在这两个分段线性的上下界之间,包括用一个深度网络解出来L-函数。 也就是说,LS-GAN解出的结果,只要上下界不饱和,它的得到的L-函数就不会饱和。而这里看到这个L-函数的上下界是分段线性的。这种分段线性的函数几乎处处存在非消失的梯度,这样适当地控制L-函数地学习过程,在这两个上下界之间地最优L-函数也不会出现饱和现象。 好了,这样我们就给出了WGAN分析梯度消失时候,缺失的哪个定量分析了。 最后,我们看看LS-GAN合成图像的例子,以及和DCGAN的对比。 看看在CelebA上的结果:
如果我们把DCGAN和LS-GAN中Batch Normalization 层都去掉,我们可以看到DCGAN模型取崩溃,而LS-GAN仍然可以得到非常好的合成效果:
不仅如此,LS-GAN在去掉batch normalization后,如上图(b)所示,也没有看到任何mode collapse现象。 我们进一步通过实验看看、在LS-GAN中L-函数网络过训练后,模型还能不能提供足够的梯度来训练G-网络。 下图是L-网络每次都训练,而G-网络每个1次、3次、5次才训练时,对应的用来更新G-网络的梯度大小(在log scale上):
我们可以看到:即便当L-网络相对G-网络多训练若干次后,更新G-网络的梯度仍然充分大,而没有出现梯度消失的问题。 (责任编辑:本港台直播) |