如何训练GAN?能够让GAN work的方法和技巧
尽管在生成对抗网络(GAN)中的研究继续改善了这些模型的基本稳定性,但我们使用了许多技巧来训练它们并使它们日复一日地稳定。(翻译自:https://github.com/soumith/ganhacks)
注:这是笔者的不完全翻译
如下是关于这些tricks的一个总结。
1.归一化输入
(1)将图片归一化到-1到1之间
(2)在生成器的最后一层中使用tanh
2.微调的损失函数
在原始GAN的论文中,损失函数是min (log 1-D),但是在实际中人们通常使用max log D,因为第一个等式在训练初期就会陷入梯度消失的麻烦。
3.batchnorm
(1)使用既包含真实样本又包含假样本的mini-batch,
(2)如果不适用batchnorm,那么使用instance norm.
4.避免稀疏梯度:ReLu,MaxPool
(1)GAN博弈过程将不会变得稳定如果你使用稀疏梯度
(2)最好在生成器和鉴别器中使用leaky reku
(2)对下采样而言,使用平均池化或者步长大于一的卷积
(3)对于上采样而言,使用转置卷积或者pixelshuffle
5.使用soft and noisy的标签
(1)label smoothing,如果你有两类标签,真实的和假的,那么将真实标签的target设置在0.7-1.2之间,如果是假样本,将它的target设置在0-0.3之间
(2)是带有噪声的标签对鉴别器产生干扰:训练鉴别器时偶尔翻转标签
6.DCGAN
(1)使用DCGAN,它真的有效
7.使用ADAM优化器
(1)在鉴别器中使用SGD,在生成器中使用ADAM优化器
8.跟踪训练
(1)鉴别器的loss趋向于0,那么训练失败
(2)如果生成器的loss持续的下降,那么生成器在生成一些垃圾在愚弄鉴别器
9如果你有标签,那么请使用它吧
如果您有可用的标签,训练鉴别器时同时对样本分类:ACGAN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)