作者: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.pdf

NIPS2016:https://github.com/soumith/ganhacks

训练GAN的16个trick

# 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, MaxPool

  • GAN的稳定性会因为引入了稀疏梯度受到影响

  • 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 + GAN

  • WGAN-gp的ResNet也很好(但非常慢)

- https://github.com/igul222/improved_wgan_training

  • width比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模型的稳定性在提升

  • 理论研究有所进展

  • 技巧只是权宜之计

时间线——GAN模型的稳定性

PPT下载:https://github.com/soumith/talks/blob/master/2017-ICCV_Venice/How_To_Train_a_GAN.pdf

参考:https://github.com/soumith/ganhacks

ICCV 2017:训练GAN的16个技巧,2400+星(PPT)相关推荐

  1. 训练社交口才的16种技巧

    训练社交口才的16种技巧 如何才能在交际圈中游刃有余,答案是你要提高交际口才.今天小编就为大家介绍训练社交口才的16种技巧,一起来看一下吧! 训练社交口才的16种技巧 1.朗读朗诵 自己读书,大声地读 ...

  2. 手把手带你复现ICCV 2017经典论文—PyraNet

    过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...

  3. 商汤科技20篇论文入选ICCV 2017,披露最新研究主线

    来源自 商汤科技 量子位 出品 | 公众号 QbitAI 本月22-29日,是两年一度的国际计算机视觉大会(ICCV)召开的日子. 于往届ICCV相比,本届 ICCV堪称火爆.据组委会统计,ICCV ...

  4. 最新 ICCV | 35个GAN应用主题梳理,最全GAN生成对抗论文汇总

     戳我,查看GAN的系列专辑~! 在最新的视觉顶会ICCV 2021会议中,涌现出了大量基于生成对抗网络GAN的论文,广泛应用于各类视觉任务:本文在此做尽可能的梳理汇总! 下述论文已分类打包好!后台回 ...

  5. ICCV 2017奖项公布:最大赢家何恺明获最佳论文,参与最佳学生论文

    当地时间 10 月 22 日,两年一度的计算机视觉国际顶级会议 International Conference on Computer Vision(ICCV 2017)在意大利威尼斯开幕.今日,大 ...

  6. 牛!何恺明包揽2项ICCV 2017最佳论文奖!这位高考状元告诉你什么是开挂的人生

    大神终究是大神! 刚刚,AI 科技大本营获悉,继两次荣获 CVPR 最佳论文奖之后,何恺明参与的两篇最新论文又分别摘下 ICCV 2017 的最佳论文奖(Best Paper Award)和最佳学生论 ...

  7. 【世界最大人脸对齐数据集】ICCV 2017:距离解决人脸对齐已不远

    在一篇已经被ICCV 2017接收的论文中,诺丁汉大学的研究人员提出了他们号称是迄今最大3D人脸对齐数据集,以及精准实现2D.3D以及2D到3D人脸对齐的网络.研究人员用<我们距离解决2D&am ...

  8. 单张图像就可以训练GAN!Adobe改良图像生成方法 | 已开源

    十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 数据集太小了,无法训练GAN?试试从单个图像入手吧. 去年谷歌就提出了SinGAN,是第一个拿GAN在单幅自然图像学习的非条件生成模型(IC ...

  9. 计算机顶级会议培训,计算机视觉顶级会议ICCV 2017 腾讯优图入选12篇论文

    腾讯科技讯 被誉为计算机视觉领域三大顶级会议之一的ICCV(另外两个为CVPR.ECCV)近日揭晓收录论文名单,腾讯优图共有12篇论文入选,居业界实验室前列,其中3篇被选做口头报告(Oral),该类论 ...

  10. 技术解读:腾讯优图12篇论文入选 ICCV 2017

    机器之心发布 来源:腾讯优图实验室 被誉为计算机视觉领域三大顶级会议之一的 ICCV(另外两个为 CVPR.ECCV)不久之前揭晓了收录论文名单,腾讯优图共有 12 篇论文入选,居业界实验室前列,其中 ...

最新文章

  1. 支持支付宝(Alipay)付款的三个美国主机商
  2. 计算机病毒攻防技术研究,计算机网络病毒辐射攻防技术研究.pdf
  3. 1.1 开始起步,配置ruby on rails运行环境
  4. try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?...
  5. mysql中select语句子句,了解mysql中select语句操作实例
  6. java判断对称素数_SM2非对称算法的原理及实现 Java SM2的代码案例 | 一生孤注掷温柔 | 小奋斗...
  7. python手机编译器可以干什么_世界上最好的Python编辑器是什么?
  8. 第十届数据技术嘉年华活动彩蛋!
  9. 大咖布道丨证券行业规模化敏捷和核心能力演进
  10. 2-1-XML和约束文档
  11. android反编译之获得res下的xml配置文件及图片等资源
  12. Springboot @Validated和@Valid
  13. 分布式系统关注点(3)——过去这几十年,分布式系统的「数据一致性」精华都在这了!...
  14. 实用的BeanUtils工具类
  15. 芯片设计:FPGA开发学习
  16. 【MarkMan】图片标注测量
  17. kali-linux-2018.2-i386.iso
  18. 动环监控系统的服务器部署在,动环监控系统【斯必得智慧机房】
  19. 切割文件(任何文件),并拼接
  20. 高等数学学习笔记——第五十讲——可降阶的高阶微分方程

热门文章

  1. 计算机台式硬件排名价格,2015年最新台式计算机处理器(CPU)性能排名_计算机硬件和网络_IT /计算机...
  2. 802.11--802.11n协议 PHY
  3. 12.STC15W408AS单片机比较器
  4. 还停留在图片识别?谷歌已经开始研究视频识别了
  5. Jenkins分布式集群设计方案
  6. 平时收集的一些有关UED的团队和个人博客
  7. DarkComet RAT简介
  8. 禁用计算机中的u盘功能,电脑设置禁用U盘的四大方法 怎么让电脑无法使用U盘...
  9. 企业内部短信模板大全分析
  10. 创建自己的WordPress主题的三种方法