生成对抗网络(GANs)是一种很有力的生成模型,它解决生成建模问题的方式就像在两个对抗式网络中进行比赛:给出一些噪声源,生成器网络能够产生合成的数据,鉴别器网络在真实数据和生成器的输出中进行鉴别。GAN能够产生十分生动的样例,但是很难训练。尽管最近大量的研究工作都投入到了寻找能让GAN稳定训练的方法上,但GAN的持续稳定训练成了依然是一个公开的问题。
概要最近提出的Wasserstein GAN(WGAN)在GAN的稳定训练上取得了重大进展,但是依然会产生低质量的样例或者出现在某些设置上不能收敛的情况。会产生这些训练失败的样例一般都是因为,作者通过在WGAN中使用权重修剪来达到在鉴别器中强制利普希茨(Lipschitz)限制条件的目的,但这样的方式会导致病态行为。
根据上述情况,文章提出了一种替代方法来强制Lipschitz限制条件:不修剪权重,而是根据输入来惩罚鉴别器的梯度正则项。这一方法方法与权重修剪WGAN相比,收敛的更快并且能产生更高质量的样例。这一替代方法基本能够保证很稳定的GAN训练。这是自深度学习发展以来,第一次可以训练多种多样的GAN结构,并且几乎不用进行超参数的调整,包括101层的ResNet和离散数据上的语言模型。
本文将从提出背景,算法介绍,实验结果,论文实现等四个方面来介绍这篇文章。
提出背景作者发现,WGAN的权重修剪会导致优化困难,并且即使能够优化成功,鉴别器也会出现病态等值面。作者测试了了WGAN中的权重限制条件(对每个权重的量级进行硬修剪),也测试了其他的权重限制条件(L2范数修剪,权重正则化等等),以及一些软限制条件(L1和L2权重衰减等等),实验结果发现他们都会出现类似的问题。
容量使用不当
作者在玩具数据库上使用权重修剪来训练WGAN鉴别器使其达到最优,保持生成器的分布固定,以及单元变量高斯噪声,对鉴别器的等值面曲线图进行了绘制。我们省略了鉴别器中的批正则化(batch normalization)。在每个样例中,作者发现,用权重修剪训练的鉴别器忽略了数据分布的高阶矩,而是对很简单的近似建模来进行优化函数。相比而言,梯度惩罚的方法不会因为这样的行为受到影响。

梯度消失和爆炸作者发现,WGAN的优化过程之所以很难,是由于权重修剪和损失函数之间的互动。这一情况会不可避免的导致梯度消失或梯度爆炸,取决于修剪的阈值。如果权重由于限制变得太小,梯度就会在反向传播到之前的层时消失。这会阻止鉴别器(和生成器)之前的层接受有用的训练信号,并且会使得深度网络学习速度变得很慢。

(a)深度WGAN的鉴别器的梯度正则项在玩具数据库上训练时的变化情况。用权重修剪的WGAN中的梯度总是爆炸或消失,而作者提出的梯度惩罚方法则为之前层提供了稳定梯度。
(b)分别使用权重修剪(左)和使用梯度惩罚(右)的WGAN的权重直方图。权重修剪将权重推到了修剪范围的极限,当这个范围很高时,就会导致梯度爆炸,然后减慢训练速度。
算法——梯度惩罚由于WGAN中的权重修剪带来的不好的结果,作者提出了一种替代方法,在训练目标上加强Lipschitz限制条件:当且仅当一个可微函数梯度的正则项处处小于等于1时,它才满足1-Lipschitz条件。所以作者直接根据输入来限制鉴别器的梯度正则项,也就是梯度惩罚。
分以下几个步骤实现:
·根据直线采样。
·超参数:梯度惩罚引入了一个参数λ,实验中设为10。
·去掉鉴别器的批正则化。
·使用Adam参数设置。
·双面惩罚。
·二次惩罚。
实验结果与权重修剪WGAN相比,梯度惩罚WGAN不仅提高了收敛速度,还提升了网络训练的稳定性。
CIFAR-10 训练速度和样例质量

四个模型在CIFAR-10数据集上的测试分数与生成器迭代次数(左)和系统时间(右)的曲线图。四个模型分别为:权重修剪WGAN,梯度惩罚以及RMSProp(控制优化器)WGAN,梯度惩罚以及Adam参数设置WGAN和DCGAN。从图中可以看出,即使在同样的学习速率下,梯度惩罚方法的表现比权重修剪有显著的提高。DCGAN收敛的更快,但是使用梯度惩罚的WGAN达到相似的分数时,稳定性提高了。
LSUN卧室数据集作者在LSUN卧室数据集上训练了多种GAN模型。除了作为基准的DCGAN,还选择了六个比较难训练的结构:
生成器没有批正则化以及的连续数量滤波
1.4层的512维ReLU MLP生成器
2.生成器和鉴别器中都没有正则化
3.门控相乘非线性
4.Tanh非线性
5.101层ResNet 生成器和鉴别器

从图中可以看出,使用不同方法训练的GAN结构,只有作者提出的使用梯度惩罚WGAN方法在每个结构的训练中都成功了。
字符级语言建模

上部:在Billion Word数据集上测试的WGAN字符级语言模型样例,缩短到32个字符。
底部:使用标准GAN训练的同样结构的模型样例。
据我们所知,这是第一个完全用对抗式训练的语言生成模型,而不需要相似性最大化损失的监督。从图中可以看出它会产生很多拼写错误,但是依然能成功的学习到自然语言统计学的很多数据。
损失曲线和过拟合检测

(a)作者的模型在LSUN卧室数据集上的鉴别器损失,随着网络的训练收敛到最小值。
(b)在1000位MNIST子数据集上的WGAN训练和验证损失。可以看出使用我们的方法(左)或权重修剪法(右)都会产生过拟合。我们的方法中,鉴别器比生成器过拟合速度更快,是的训练损失随时间逐渐增加,而验证损失随之减少。
论文地址及实现
论文链接:https://arxiv.org/abs/1704.00028
github链接:https://github.com/igul222/improved_wgan_training
环境要求:
·Python, NumPy, TensorFlow,SciPy, Matplotlib
·NVIDIA GPU
模型
所有模型的配置在文件最上面的一列常数中已经进行了特别说明。有两个模型应该可以直接使用:
·python gan_toy.py: 玩具数据库(8 Gaussians, 25 Gaussians, SwissRoll).
·python gan_mnist.py: MNIST手写数字识别库
对于其他的模型,在运行之前请修改脚本,指定数据集的路径为DATA_DIR下。每个模型的数据集现在都已公开;下载链接已包含在文件中。
·python gan_64x64.py: 64x64 结构 (论文中,该模型是在ImageNet上进行训练的,而不是LSUN卧室图片库)
·python gan_language.py: 字符级别的语言模型
·python gan_cifar.py: CIFAR-10数据库
AIJob社是《全球人工智能》旗下专门为AI开发工程师免费服务的求职平台。我们将竭尽全力帮助每一个ai工程师对接自己喜欢的企业,推荐给你喜欢的直接领导,帮你谈一个最好的薪资待遇。
微信咨询:aihr007简历投递:hr@top25.cn企业合作:job@top25.cn
《全球人工智能》招聘5名兼职翻译及10名兼职VIP社群专家:图像技术、语音技术、自然语言、机器学习、数据挖掘等专业技术领域,工作内容及待遇请在公众号内回复“兼职+个人微信号”联系工作人员。
热门文章推荐
重磅|全球AI报告:看看谷歌|苹果|Facebook等十几家巨头都收购了哪些牛逼的AI公司?

收敛速度更快更稳定的Wasserstein GAN(WGAN)相关推荐

  1. WGAN(Wasserstein GAN)看这一篇就够啦,WGAN论文解读

    WGAN论文地址:[1701.07875] Wasserstein GAN (arxiv.org) WGAN解决的问题 原始GAN训练过程中经常遇到的问题: 模式崩溃,生成器生成非常窄的分布,仅覆盖数 ...

  2. W-GAN系 (Wasserstein GAN、 Improved WGAN)

    习总结于国立台湾大学 :李宏毅老师 Wasserstein GAN  .  Improved Training of Wasserstein GANs 本文outline 一句话介绍WGAN: Usi ...

  3. Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法

    作者:郑华滨 链接:https://www.zhihu.com/question/52602529/answer/158727900 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  4. 经典论文复现 | ICML 2017大热论文:Wasserstein GAN

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

  5. 还记得Wasserstein GAN吗?

    ICML 2017 仍然在悉尼火热进行中,Facebook 研究院今天也发文介绍了自己的 ICML 论文.Facebook有9篇论文被 ICML 2017接收,这些论文的主题包括语言建模.优化和图像的 ...

  6. 令人拍案叫绝的Wasserstein GAN

    雷锋网按:本文作者郑华滨,原载于知乎.雷锋网已获转载授权. 在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文<Wassertein GAN>却在Reddit的 ...

  7. Wasserstein GAN

    在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文<Wasserstein GAN>却在Reddit的Machine Learning频道火了,连Goodfel ...

  8. 《Wasserstein GAN》继续 GAN

    自从2014年Ian Goodfellow提出以来,GAN就存在着训练困难.生成器和判别器的loss无法指示训练进程.生成样本缺乏多样性等问题.从那时起,很多论文都在尝试解决,但是效果不尽人意,比如最 ...

  9. 令人拍案叫绝的 Wasserstein GAN,彻底解决GAN训练不稳定问题

    [新智元导读] 本文详细解析了最近在 reddit 的 Machine Learning 版引起热烈讨论的一篇论文Wassertein GAN,该论文提出的 WGAN 相比原始 GAN 的算法实现流程 ...

最新文章

  1. Windows Azure Marketplace入门教学-利用TabLeau Public构建可视化DataMarket应用
  2. ios修改了coredata数据结构后,更新安装会闪退
  3. jeecg开源项目的IDEA的部署
  4. Java Web学习笔记06:利用JDBC访问数据库
  5. 安装composer 提示需要反复重启解决办法
  6. ajax修改属性后如何遍历,Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)...
  7. g2o图优化简介与基本使用方法
  8. Detectron2安装教程
  9. TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下
  10. 人人网相册加密密码破解
  11. 年度最高奖金【198 万+198 万】:2021年全国人工智能大赛开赛啦
  12. Python获取指定时间范围内的工作日、假日日、法定节假日
  13. PyTorch 11—简单图像定位
  14. 初学ue4#2 制作3d视角人物part2
  15. php结账系统,pay: ThinkPHP开源聚合支付系统
  16. clamp漫画作品集
  17. 《Kotlin 极简教程 》第4章 基本数据类型与类型系统
  18. 中国上古神话中神族谱系探源
  19. 网盘生意这么难做,为何阿里、迅雷还要争着和百度网盘抢饭碗呢?
  20. executemany存万得数据到数据库

热门文章

  1. android 保存textview,为什么没有TextView(带ID)会自动保存它的状态?
  2. PTA 基础编程题目集 7-18 二分法求多项式单根 C语言
  3. 一次看懂RIP协议。
  4. 求行指针所指的字符串数组中长度最长的字符串所在的行下标
  5. java实训周报_实验室周报
  6. java 序列化慢_java原生序列化慢在哪里?
  7. java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络
  8. gradle build connection reset or protocol_version build failure
  9. [USACO]奶牛博览会(DP)
  10. markdown简明语法