GAN训练中遇到的mode collapse(模式崩塌)

1.梯度/loss爆炸(NaN,Inf)

这两天一直在训练自己的GAN模型,训练过程中鉴别器极其不稳定,训练的几个epoch之后经常出现NAN,在加入WGAN中的梯度惩罚和鉴别器的参数裁剪之后,模型似乎变得可以训练了。

解决方案:

1.使用WGAN中的loss代替原始GAN中的损失函数,去掉原始GAN损失函数中的log

2.适当地进行梯度惩罚

3.使用hinge loss

2.mode collapse

在模型变得可以训练之后,生成器和鉴别器的loss如图所示:

                                                                    

鉴别器和生成器的对抗损失呈现相反的趋势,并且两者一直都处于比较稳定的状态,于是我中断了训练。出现这种问题的可能原因是模型在训练过程中出现了模式崩塌,它发生的原因之一是G只要学会欺骗D就可以了,所以G其实可以只生成小量真实数据即可,极端情况下甚至可以只生成一个真实数据就可以欺骗D了。出现这种情况的可能原因是生成器和鉴别器的模型复杂度(或者参数)不在一个层级,鉴别器过于强势,我发现我的模型中生成器的参数大概为四千万,鉴别器的参数来大概为七千五百万,几乎相差了两倍。

解决方案:

1.权衡好生成器和鉴别器的模型复杂度,复杂度不在一个层面的话,模型几乎无法学习到任何东西

2.可以尝试每更新几次生成器再更新一次鉴别器

3.每迭代几个epoch后就输出生成的额图片

4.注意观察训练过程中的loss曲线

 

reference:

1.https://www.zhihu.com/question/416797108/answer/1472929170

2.https://zhuanlan.zhihu.com/p/25071913

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值