本文转载自:https://mp.weixin.qq.com/s/d_W0O7LNqlBuZV87Ou9uqw 新智元公众号 本文来自ICCV 2017的Talk:如何训练GAN,FAIR的研究员Soumith Chintala总结了训练GAN的16个技巧,例如输入的规范化,修改损失函数,生成器用Adam优化,使用Sofy和Noisy标签,等等。这是NIPS 2016的Soumith Chintala作的邀请演讲的修改版本,而2016年的这些tricks在github已经有2.4k星。
ICCV 2017 slides:https://github.com/soumith/talks/blob/master/2017-ICCV_Venice/How_To_Train_a_GAN.pdf
NIPS2016:https://github.com/soumith/ganhacks
训练GAN的16个trick
# 1:规范化输入
#2:修改损失函数(经典GAN)
-因为第一个公式早期有梯度消失的问题
- Goodfellow et. al (2014)
一些GAN变体
【TensorFlow】https://github.com/hwalsuklee/tensorflow-generative-model-collections
【Pytorch】https://github.com/znxlwm/pytorch-generative-model-collections
#3:使用一个具有球形结构的噪声z
- https://arxiv.org/abs/1609.04468
#4: BatchNorm
#5:避免稀疏梯度:ReLU, MaxPool
-PixelShuffle 论文:https://arxiv.org/abs/1609.05158
#6:使用Soft和Noisy标签
- Salimans et. al. 2016
#7:架构:DCGANs / Hybrids
- https://github.com/igul222/improved_wgan_training
#8:借用RL的训练技巧
#9:优化器:ADAM
#10:使用 Gradient Penalty
#11:不要通过loss statistics去balance G与D的训练过程(经典GAN)
#12:如果你有类别标签,请使用它们
#13:给输入增加噪声,随时间衰减
#14:多训练判别器D
#15:避开离散空间
#16:离散变量
总结:
时间线——GAN模型的稳定性
PPT下载:https://github.com/soumith/talks/blob/master/2017-ICCV_Venice/How_To_Train_a_GAN.pdf
参考:https://github.com/soumith/ganhacks