为什么 GAN 不好训练

        为什么 GAN 不好训练?先看 GAN 的损失:

      当生成器固定时,堆D(x)求导,推理得到(加号右边先对log求导,再对负项求导)

        然后在面对最优Discriminator时,Generator的优化目标就变成了:

        上式可以变成:

        也就是说,如果把Discriminator训练到极致,那么整个GAN的训练目标就成了最小化真实数据分布与合成数据分布之间的JS散度。。。

        考虑如下二维空间中的两个分布P1和P2,P1在线段AB上均匀分布,P2在线段CD上均匀分布,通过控制参数θ可以控制着两个分布的距离远近。则:

         此时,JS散度值为常数,无法传递梯度,梯度消失了。也就是说,如果Discriminator训练得太好,Generator就无法得到足够的梯度继续优化,而如果Discriminator训练得太弱,指示作用不显著,同样不能让Generator进行有效的学习。这样一来,Discriminator的训练火候就非常难把控,这就是GAN训练难的根源。

        实际上,JS散度出现为常数的概率非常大,当数据分布类似高维空间中的低维流形,如下图时,虽然数据分布处理三维空间,本质展开是个二维平面。


    除此之外, GAN 的训练过程中,生成器和判别器的loss无法指示进程,也就是说,我们无法通过生成器与判别器的loss来判断我们生成的图像是否到达了我们所满意的情况。只能通过显示训练图像自行感受训练程度。生成样本缺乏多样性。容易产生模型崩坏,即生成的图像中有着大量的重复图像。

参考博文:令人拍案叫绝的Wasserstein GAN - 知乎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值