2019-02-24 22:23:17

BigGAN-LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS

原文:https://arxiv.org/abs/1809.11096

作者:来自DeepMind & Heriot-Watt University

译者:Tony

时长:3K字,约10分钟


摘要

作者提出了一种大规模GAN(参数大、批量大),即BigGAN,分析了大规模GAN训练不稳定因素,通过正交正则化平衡保真度和多样性。在类条件图像合生中取得了最先进水平:ImageNet中128*128像素的图像上,IS(越大越好)从52.52提高到166.3,FID(越小越好)从18.65下降到9.6。

1 引言

GAN首次是在2014年提出来的,目前最好的GAN是2018年提出的SAGAN,其IS是52.5,但相比真实图像的IS 233,差距还是很大。为了进一步提高保真度和多样性,作者做了三个项工作:

一是通过将模型参数扩大2-4倍、将批量大小扩大8倍、以及修改正则方案来提高模型性能。

二是通过Truncation Trick技术平衡样本的多样性和保真度。

三是发现了大规模GAN的不稳定因素,通过新颖的和现有的技术减少不稳定性,但是保证模型的训练稳定性会给模型的性能带来损失。

2 背景

GAN包含一个Generator (G)网络和一个Discriminator (D) 网络,其目标是一个纳什均衡:

其中,z来自p(z)分布,通常是正态分布N(0, I)或均衡分布U[-1, 1],G和D通常是卷积神经网络。若没有辅助的稳定性技术,训练过程是不稳定的,则需要微调超参和架构来保证模型正常工作。

许多近期研究聚焦在调整vanilla GAN,以便获取稳定性:一部分工作是调整目标函数,以便加速收敛;另一部分工作是通过归一化或梯度惩罚来限制D。

与BigGAN相关的工作有两个:一是谱归一化(Spectral Normalization);二是架构选择,例如SA-GAN、ProGAN、Conditional GAN。

BigGAN使用IS和FID评估GAN网络性能。

模型架构如下图15所示:

3 SCALING UP GANS

作者通过如下方法扩大GAN网络:

使用SA-GAN作为基准模型,SA-GAN采用hinge loss目标函数。通过类条件批归一化(BatchNorm)将类信息输入到G中,通过投影(Projection )将类信息输入到D中。在G中引入谱范数(Spectral Norm),将学习率降半,每G步两D步。为了评估,G权重采用滑动平均,衰减系数为0.9999。使用正交初始化,而不是正态分布N(0, 0.02I)。每个模型在Google TPU v3 Pod上训练,并计算G上所有设备上批归一化(BatchNorm)。

作者增大基准模型的batch大小,效果明显,扩大8倍后,IS提升了46%,如表1第1-4行所示。作者推测,这是因为每个batch覆盖了更多modes,为G和D提供了更好的梯度。但是存在一个问题,模型训练变得不稳定,会出现爆炸,在第4节中,作者分析了原因并给出了解决方案。

作者在每层中增加了50%的通道数,即大约增加了2倍参数,效果也很明显,IS提升了21%。作者推测是因为增加模型容量,模拟更复杂情况。

作者将模型深度加深2倍,性能却在降低。

作者在所有的conditional BatchNorm 层中使用一个共享嵌入(shared embedding),线性投影到每层。这样可以减少参数,降低计算和内存消耗,将训练速度提升37%。另外,引入hierarchical latent spaces,噪声向量z输入到G中多层,而不是初始层,将性能提升了4%,训练速度提升了18%。

3.1 通过TRUNCATION TRICK权衡多样性和保真度

GAN的p(z)可以选择任何先验概率分布,BigGAN作者通过一些列比较,最终选择了基于标准正态分布N(0, I)的截断正态分布(Truncated Normal),称作Truncation Trick,可以提升IS和FID。随着截断正态分布的阈值越来越小,G生成的图像的保真度越来越好,但多样性越来越差,如图2(a)所示。

作者认为可以选择适当的截断阈值,在保真度和多样性之间取得平衡,但通过多样性-保证度曲线图可知,多样性在开始时缓慢上升,然后急速下降,如果要保证一定的多样性,饱和度会很差,如图2(b)和图16所示。

为了解决这个问题,作者增加了一个正交正则化,使得模型平滑。

其中,W为权重矩阵、 β是超参,1为全1矩阵。结果如表1所示,没有正交正则化,16%的模型服从截断,有了正交正则化,60%的模型服从截断。

3.2 总结

作者发现,现有的GAN技术不适合大模型和大批量训练,BigGAN可以取得最先进水平,即使是在512*512像素的图像上。尽管如此,作者指出BigGAN中还出现训练爆炸问题,在后续章节进行分析。

4 分析

4.1 解决G的不稳定性

为了找出训练爆炸的原因,作者监控训练过程中的权重、梯度、以及损失,发现权重矩阵最重要的三个奇异值σ0、σ1、σ2影响最大。如图3所示,G的绝大部分层具有良好的谱范数(Spectral Norm),但一些层在训练中出现爆炸。

为了确认这是不是训练爆炸的原因,作者在G上利用额外的条件来消除谱爆炸:首先,正则第一个奇异值σ0,其中σclamp是σreg或者sg(σ1);其次,使用部分奇异值分解代替σ0。

结论是,谱归一化可以提高性能,但是不能阻止训练爆炸。

4.2 解决D的不稳定性

不同于G,D的权重谱有很多噪声,σ0/σ1表现良好,随着训练,奇异值坍塌,而不是爆炸。D的权重谱显示,D周期性地收到了大梯度,但弗罗贝尼乌斯范数(Frobenius Norm) 是平滑的,这种影响集中在顶层少量的奇异方向。作者假设,这些噪声是训练过程中优化带来的影响,G周期性地产生的批量对D有影响。如果谱噪声与不稳定性有影响,我们可以采用梯度惩罚,在D的Jacobian矩阵中加入正则项:

Γ=10时,G和D训练过程变得稳定,谱变得平滑,但是性严重下降:IS减少了45%。即使Γ=1,未出现爆炸,IS也减少20%。使用其他的正则项也是一样效果,例如正交正则化、DropOut、L2。

作者也发现,在训练过程中D的Loss接近0,但在坍塌处出现急速向上跳跃。一种解释是,D已经过拟合训练数据集。

4.3 总结

不稳定性不是单独来自G或D,而是来自G和D的交互对抗过程。严格限制D可以提高训练稳定性,但是会降低性能。利用现有技术,放松条件可以获得好性能,允许在后面阶段出现训练爆炸。

5 实验

5.1 ImageNet评估

结果如表2所示:

5.2 JFT-300M评估

结果如表3所示:

6 总结

作者发现:1、增大GAN模型的规模,可以提高生成图像的保真度和多样性,取得了最先进水平;2、分析大规模GAN的训练行为,通过权重矩阵的奇异值标识模型稳定性,并讨论稳定性和性能相互作用。

BigGAN高保真自然图像合成的大规模GAN训练相关推荐

  1. (2018, BigGAN)用于高保真自然图像合成的大规模 GAN 训练

    Large scale gan training for high fidelity natural image synthesis 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 背景 3. ...

  2. 用于高保真自然图像合成的大规模GAN训练(Large Scale GAN Training For High Fidelity Natural Images)论文 pdf

    下载地址:https://u20150046.ctfile.com/fs/20150046-376632643 By Andrew Brock,Jeff Donahue,Karen Simonyan( ...

  3. 清华BAAI唐杰团队提出第一个开源的通用大规模预训练文本到视频生成模型CogVideo,含94亿超大参数量!代码即将开源!...

    关注公众号,发现CV技术之美 我爱计算机视觉 专业计算机视觉技术分享平台,"有价值有深度",分享开源技术与最新论文解读,传播视觉技术的业内最佳实践.知乎/微博:我爱计算机视觉,官网 ...

  4. 《预训练周刊》第22期:Fastformer:加法注意力就是你所需要的、用于蛋白建模的大规模预训练语言模型...

    No.22 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第22期&l ...

  5. 提高GAN训练稳定性的9大tricks

    点击我爱计算机视觉标星,更快获取CVML新技术 作者 | Bharath Raj 译者 | ang010ela 编辑 | 一一 出品 | AI科技大本营 CV君注: 还有什么是比训练一个神经网络更玄学 ...

  6. 初探大规模GBDT训练

    本文是两年前年评估在 Spark 上做大规模 GBDT 训练时写的一篇入门级教程与框架评估.目前好像市面上也没有多少使用 Spark 来跑 GBDT 的分享(可能是个伪需求?),分享出来看看是否有做过 ...

  7. 技术实践干货 | 初探大规模 GBDT 训练

    本文作者: 字节,观远数据首席科学家.主导多个AI项目在世界500强的应用落地,多次斩获智能零售方向Hackathon冠军.曾就职于微策略,阿里云,拥有十多年的行业经验. 本文是此前评估在 Spark ...

  8. 清华研究登Nature子刊:面向大规模预训练语言模型的参数高效微调

    ©作者 | 机器之心编辑部 来源 | 机器之心 近年来,清华大学计算机系孙茂松团队深入探索语言大模型参数高效微调方法的机理与特性,与校内其他相关团队合作完成的研究成果"面向大规模预训练语言模 ...

  9. 在ViT、MLP-Mixer等进行4800多次实验,谷歌发现大规模预训练存在瓶颈

    视学算法报道 机器之心编辑部 大规模预训练模型在各种任务上取得了不错的性能,但是也存在一些限制.来自谷歌的研究者系统地研究了大规模预训练模型在图像识别任务中扩大数据.增加模型大小和训练时间对各种下游任 ...

  10. GAN--提升GAN训练的技巧汇总

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 GAN模型相比较于其他网络一直受困于三个问题的掣肘: 1. ...

最新文章

  1. python怎么导入同一包的模块
  2. 干货丨机器学习入门(经典好文,强烈推荐)
  3. 域名CNAME 概念
  4. Java中如何生成jar(框架)
  5. CentOS 7 安装方式汇总
  6. 妥了!微服务治理的困难,用 Serverless 来解决
  7. Python环境安装脚本,拷贝环境脚本,命令迁移模块(pip freeze requirements.txt)
  8. 用c#控制台模拟双色球随机选
  9. c语言大华面试题,大华股份的一道笔试题 C/C++
  10. matlab for局部变量赋值,Matlab中的persistent变量
  11. 网站换服务器 备案,网站换服务器备案吗
  12. buuctf easyphp
  13. ISFP——思想起决定作用
  14. 佛系推荐《骡子》是经典又好看的动作电影毋庸置疑
  15. LED数码管段码生成
  16. 【安卓】处理Android Studio中文字体为繁体字
  17. 微信小程序实现瀑布流,如何实现!
  18. SAP MM寄售采购业务
  19. 域名解析、域名空间绑定,两种截然不同概念
  20. 【数理逻辑与集合论】第一章 命题逻辑

热门文章

  1. 计算机专业拼音怎样写,拼音汉字计算机输入方法
  2. 花书笔记2——线性代数 线性组合Ax = b的解 线性相关/线性无关 举例说明 简单易懂
  3. 深度学习 机器学习 花书免费下载《Deep Learning》
  4. python比对excel表数据中的差异_Python比对EXCEL数据
  5. Java常用框架介绍
  6. python 密度聚类_Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
  7. 7.1立体环绕追踪音效|专属个性调音台,这副头戴电竞耳机有点料
  8. 小胖月安卓版,随机选号、叫号功能,互动功能
  9. Python实现双色球随机选号
  10. C#获得汉字对应区位码