ICCV 2017:训练GAN的16个技巧

更新于 2017年10月30日 机器学习
我来说两句
wx:   网页版 2017-10-29 20:59
会议活动 深度学习 视觉 算法 应用 资源 Chris Rowen ICCV Max Log NIPS PDF Tom White 代码 广告系统 行业动态 华先胜 幻灯片 会议 活动 贾佳亚 论文 孙剑 统计
「ICCV 2017:训练GAN的16个技巧,2400+星(PPT)」【AI WORLD 2017世界人工智能大会倒计时 10 天】 在2017年11月8日在北京国家会议中心举办的AI World 2017世界人工智能大会上,我们邀请到阿里巴巴副总裁、iDST副院长华先胜,旷视科技Face++首席科学家、旷视研究院院长孙剑博士,腾讯优图实验室杰出科学家贾佳亚教授,以及硅谷知名企业家、IEEE Fellow Chris Rowen,共论人脸识别等前沿计算机视觉技术。 抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026大会官网:http://www.aiworld2017.com   新智元编译  作者:Soumith Chintala等 编译:马文 【新智元导读】本文来自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.pdfNIPS2016:https://github.com/soumith/ganhacks # 1:规范化输入将输入图像规范化为-1到1之间生成器最后一层的输出使用tanh函数(或其他bounds normalization) #2:修改损失函数(经典GAN)在GAN论文里人们通常用 min (log 1-D) 这个损失函数来优化G,但在实际训练的时候可以用max log D       -因为第一个公式早期有梯度消失的问题        – Goodfellow et. al (2014)在实践中:训练G时使用反转标签能工作得很好,即:real = fake, fake = real 一些GAN变体【TensorFlow】https://github.com/hwalsuklee/tensorflow-generative-model-collections【Pytorch】https://github.com/znxlwm/pytorch-generative-model-collections #3:使用一个具有球形结构的噪声z在做插值(interpolation)时,在大圆(great circle)上进行Tom White的论文“Sampling Generative Networks”- https://arxiv.org/abs/1609.04468 #4: BatchNorm一个mini-batch里面必须保证只有Real样本或者Fake样本,不要把它们混起来训练如果不能用batchnorm,可以用instance norm #5:避免稀疏梯度:ReLU, MaxPoolGAN的稳定性会因为引入了稀疏梯度受到影响LeakyReLU很好(对于G和D)对于下采样,使用:Average Pooling,Conv2d + stride对于上采样,使用:PixelShuffle, ConvTranspose2d + stride       -PixelShuffle 论文:https://arxiv.org/abs/1609.05158 #6:使用Soft和Noisy标签Label平滑,也就是说,如果有两个目标label:Real=1 和 Fake=0,那么对于每个新样本,如果是real,那么把label替换为0.7~1.2之间的随机值;如果样本是fake,那么把label替换为0.0~0.3之间的随机值。训练D时,有时候可以使这些label是噪声:偶尔翻转label       – Salimans et. al. 2016 #7:架构:DCGANs / Hybrids能用DCGAN就用DCGAN,如果用不了DCGAN而且没有稳定的模型,可以使用混合模型:KL + GAN 或 VAE + GANWGAN-gp的ResNet也很好(但非常慢)       – https://github.com/igul222/improved_wgan_trainingwidth比depth更重要 #8:借用RL的训练技巧Experience replay对于deep deterministic policy gradients(DDPG)有效的技巧参考Pfau & Vinyals (2016)的论文 #9:优化器:ADAM优化器用Adam(Radford et. al. 2015)或者对D用SGD,G用Adam #10:使用 Gradient Penalty使梯度的norm规范化对于为什么这一点有效,有多个理论(WGAN-GP, DRAGAN, 通过规范化使GAN稳定) #11:不要通过loss statistics去balance G与D的训练过程(经典GAN) #12:如果你有类别标签,请使用它们如果还有可用的类别标签,在训练D判别真伪的同时对样本进行分类 #13:给输入增加噪声,随时间衰减给D的输入增加一些人工噪声(Arjovsky et. al., Huszar, 2016)给G的每一层增加一些高斯噪声(Zhao et. al. EBGAN) #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 深入了解AI 技术进展和产业情况,参加新智元世界人工智能大会,马上抢票! 【AI WORLD 2017世界人工智能大会倒计时 10 天】点击图片查看嘉宾与日程。抢票链接:http://www.huodongxing.com/event/2405852054900?td=4231978320026AI WORLD 2017 世界人工智能大会购票二维码:  via: http://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2652006892&idx=3&sn=9b8802adb47e0a9e85dc10a912b75f96&scene=0#wechat_redirect

 

回复