完整笔记:http://www.gwylab.com/note-gans.html
———————————————————————
Part3 GANs的其他改进
GANs还有一些其他的改进,本部分会选择一些很有创意的idea介绍一下。
1. RGAN
1.1 RGAN解决的问题
在标准生成对抗网络中,判别器D估计输入数据是真实的概率,训练生成器G以增加伪数据是真实的概率,但是现在RGAN(RelativisticGAN)认为,在提升伪数据是真实的概率的同时还应该降低真实数据是真实的概率。
首先解释为何传统GANs中,随着伪造数据得分的提升,真实数据的得分不会下降。其实这是显而易见的,假设D和G在每个交替步骤中都训练到了最佳,也就是说,D训练结束时D()= 1,D()= 0,而G训练结束时D()= 1,D()= 1。由此可以发现,在训练交替过程中,D()都维持着1,这意味着接受到的梯度是0,因此不会下降。
<->
Best D 与 Best G的交替
如果真实数据的得分不会下降,会造成一些麻烦,如下图所示:
理论上(如图A所示),如果Discriminator测量的就是Divergence的最小值,最终真实数据与仿造数据的得分都应该是0.5。但是实际上(如图B所示),由于训练过程中G只是不断提升伪数据是真实的概率,最终真实数据与伪造数据的得分都会趋近于1,这样就会造成一些问题。比如,这会影响JS divergence计算的有效性,因为它过分看重的第二项而忽视了第一项,以至于在第二项没有什么提升空间时模型依然专注于提升第二项却忽视了第一项的作用。再比如,假设我们先验知识中知道真实数据与仿造数据各占一半,图A的结果能体现这一点,因为判真和判假的概率各是0.5,但如果是图B所示的结果,所有的数据都成了真实数据,这就与我们的先验知识矛盾了。
为了解决不降低的问题,RGAN被提出了,它富有创意地提出采用相对判别器,在训练过程中不仅让向移动,而且让也向移动。
1.2 相对判别器
传统的判别器给数据的真实度打分,这会导致真实数据的得分居高不下,现在RGAN提出采用相对判别器,采用评估给定的实际数据比随机抽样的假数据更真实的概率。具体来说,传统GANs的目标式是如下:
其中,,,是标量-标量函数,C是判别函数。如果我们使用相对判别器,目标式就变为:
我们来比较一下二者。在传统GANs中,的值是0,因为传统GANs的G只需考虑C()尽可能高;但是在RGAN中,的值不是0,因为我们衡量的是真实数据的判别值减去伪造数据的判别值,我们希望在G中这个值越小越好,于是我们就产生了一个梯度,能够引导C()朝着更小的方向移动。由此可以看出,在RGAN中,C()是受到G的影响的,也就是说我们的训练过程中存在降低的过程。
1.3 相对平均判别器
相对判别器还有一个变种,叫做相对平均判别器,对应的GAN被称作RaGAN。
相对平均判别器的做法,是评估平均给定的真实数据要比随机抽样的假数据更加真实的概率。我们只需要把目标式中的C(x),改成期望值即可:
RaGAN的显著优势是,能从比较小的样本生成高分辨率图像,并且到达最优性能的训练时间大幅减少。以WGAN-GP为例,使用了相对平均判别器后训练时间减少了3/4。
综上,不论是相对判别器,还是相对平均判别器,都能够被直接接到一个非基于积分概率度量(IPM)的GANs中使用(因为基于IPM的GANs已经被证明自带相对(平均)判别器,譬如对于WGAN以及WGAN-GP,lipschitz限制就相当于相对判别器的作用,详见paper)。实验证明,含有RGAN和RaGAN的结构能更稳定并产生更高质量的数据样本。