李宏毅GAN6-LSGAN,WGAN,EBGAN

JS divergence is not suitable

大多数情况下PG和Pdata是没有重叠的(PG为generator生成数据的概率分布,Pdata是样本数据的概率分布,两者是分布函数)

我们在算divergence时,是从两个数据分布(PG&Pdata)中sampling数据,再用discriminator来量他们之间的divergence。但是我们在sampling时数据量是有限的,除非PG&Pdata的相似度很像,否则很难通过少量数据就反应出其overlap情况。因此我们可以近似认为PG&Pdata在早期没有overlap(通过JS divergence很难反映出其overlap)

在这里插入图片描述

直观上PG1应该比PG0效果更好(因为generator的数据分布与样本数据分布更加接近了),但是对于JS divergence却很难反应出这个进步,因此generator并不会向着PG1的方向前进,因为对于generator来说PG1和PG0的loss是一样坏的,并没有进步。因此模型将会卡住

LSGAN

LSGAN提出的方法是将discriminator的输出层激活函数sigmoid换成linear,即将discriminator的二分类问题转化为回归问题,减少梯度消失的情况

在这里插入图片描述

WGAN

WGAN的方法是换一种方式来衡量PG和Pdata的相似程度
FGAN中提出了很多中divergence方法来衡量距离
在这里插入图片描述

求divergence方法都是带入一个公式求解损失距离
earth movers distance则需要使用穷举的方法,列出可能的所以移动方案,找到移动距离最小的那一个

1.怎么样设计discriminator来使其train完后的值就是wasserstein distance

在这里插入图片描述

如果不对D(X)加以限制,就会导致real无穷大而fake无穷小,永远无解。
这里的做法就是限制D(x)的平滑程度,使其output change <= input change

而如何解这个带约束function,在最原始的WGAN中方法是weight clipping。我们同样使用梯度下降来求解,但是限制参数w的取值范围为[-c, c]。避免出现无穷情况。现实是这个方法行不通

2.Improved WGAN(WGAN-GP)

在这里插入图片描述

如何使D(X)为1-Lipschitz function。这里的方法是限制D(X)的梯度的L1值在处处小于1
将该条件作为惩罚项放入V(G,D)中
但不可能检查所有的输入来验证 ||D(X)|| <= 1
故规定只检验 Ppenalty上的 ||D(X)|| - 1 <= 0

在这里插入图片描述

所谓Ppenalty,就是在PG和Pdata上分布sampling一个点,在两个点连线之间random一个点,该点即为这个sampling上的Ppenalty点。
直觉是,Ppenalty就是介于PG和Pdata的一个概率分布,因为训练generator时就是通过discriminator指示的方向更新权重,使得PG向Pdata前进,期间会经过Ppenalty。

3.Spectrum Norm(2018)

WGAN只是限制D(X)的梯度在某一区域内<=1
而Spectrum Norm是能够使D(X)梯度在每个地方都<=1

GAN -> WGAN

最原始GAN的流程
在这里插入图片描述

WGAN的算法流程
在这里插入图片描述

EBGAN

EBGAN的generator保持不变,discriminator使用autoencoder来代替NN
由于经过AE后图片质量会下降,如果经过AE的reconstruction error越低,就可以认为generator生成的质量越好,经过discriminator后的得分也就越高。

在这里插入图片描述

其好处在于我们可以使用real data来pre-train这个autoencoder
以前的discriminator训练是从样本数据里面sampling一些real data,从generator中sampling一些fake data来作为训练集的。这样存在的问题就是刚开始generator生成的数据很弱,因此训练出来的discriminator也很弱,这样就会导致前期generator成长的很慢。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值