蒙特利尔大学研究者改进Wasserstein GAN,极大提高GAN训练稳定性

近日,蒙特利尔大学的研究者们在WGAN的训练上又有了新的进展,他们将论文《Improved Training of Wasserstein GANs》发布在了arXiv上。研究者们发现失败的案例通常是由在WGAN中使用权重剪枝来对critic实施Lipschitz约束导致的。在本片论文中,研究者们提出了一种替代权重剪枝实施Lipschitz约束的方法:惩罚critic对输入的梯度。该方法收敛速度更快,并能够生成比权重剪枝的WGAN更高质量的样本。

生成对抗网络(GAN)将生成问题当作两个对抗网络的博弈:生成网络从给定噪声中产生合成数据,判别网络分辨生成器的的输出和真实数据。GAN可以生成视觉上吸引人的图片,但是网络通常很难训练。前段时间,Arjovsky等研究者对GAN值函数的收敛性进行了深入的分析,并提出了Wasserstein GAN(WGAN),利用Wasserstein距离产生一个比Jensen-Shannon发散值函数有更好的理论上的性质的值函数。但是仍然没能完全解决GAN训练稳定性的问题。

在该论文中,蒙特利尔大学的研究者对WGAN进行改进,提出了一种替代WGAN判别器中权重剪枝的方法,下面是他们所做的工作:

  1. 通过小数据集上的实验,概述了判别器中的权重剪枝是如何导致影响稳定性和性能的病态行为的。
  2. 提出具有梯度惩罚的WGAN(WGAN with gradient penalty),从而避免同样的问题。
  3. 展示该方法相比标准WGAN拥有更快的收敛速度,并能生成更高质量的样本。
  4. 展示该方法如何提供稳定的GAN训练:几乎不需要超参数调参,成功训练多种针对图片生成和语言模型的GAN架构

WGAN的critic函数对输入的梯度相比于GAN的更好,因此对生成器的优化更简单。另外,WGAN的值函数是与生成样本的质量相关的,这个性质是GAN所没有的。WGAN的一个问题是如何高效地在critic上应用Lipschitz约束,Arjovsky提出了权重剪枝的方法。但权重剪枝会导致最优化困难。在权重剪枝约束下,大多数神经网络架构只有在学习极其简单地函数时才能达到k地最大梯度范数。因此,通过权重剪枝来实现k-Lipschitz约束将会导致critic偏向更简单的函数。如下图所示,在小型数据集上,权重剪枝不能捕捉到数据分布的高阶矩。

由于在WGAN中使用权重剪枝可能会导致不良结果,研究者考虑在训练目标上使用Lipschitz约束的一种替代方法:一个可微的函数是1-Lipschitz,当且仅当它的梯度具有小于或等于1的范数时。因此,可以直接约束critic函数对其输入的梯度范数。新的critic函数为:

实验结果 图&表

研究者们在CIFAR-10数据集上将梯度惩罚的WGAN与权重剪枝的WGAN的训练进行了对比。其中橙色曲线的梯度惩罚WGAN使用了与权重剪枝WGAN相同的优化器(RMSProp)和相同的学习率。绿色曲线是使用了Adam优化器和更高学习率的梯度惩罚WGAN。可以看到,即使使用了同样的优化器,该论文中的方法也能更快的收敛并得到更高的最终分数。使用Adam优化器能进一步提高性能。

为了展示该方法训练过程中的稳定性,研究者在LSUN卧室训练集上训练了多种不同的GAN架构,除了DCGAN外,研究者还选择了另外六种较难训练的架构,如下图所示:

对于每种架构,研究者都使用了四种不同的GAN过程:梯度惩罚的WGAN,权重剪枝的WGAN,DCGAN,以及最小二乘GAN。对于每种方法,都使用了推荐的优化器超参数默认设置:

  • WGAN with gradient penalty: Adam (α = .0001, β1 = .5, β2 = .9)
  • WGAN with weight clipping: RMSProp (α = .00005)
  • DCGAN: Adam (α = .0002, β1 = .5)
  • LSGAN: RMSProp (α = .0001) [chosen by search over α = .001, .0002, .0001]

上图显示的样本都是经过200k次迭代的结果。目前为止,梯度惩罚的WGAN是唯一一种使用同一种默认超参数,并在每个架构下都成功训练的方法。而所有其他方法,都在一些架构下不稳定。

使用GAN构建语言模型是一项富有挑战的任务,很大程度上是因为生成器中离散的输入输出序列很难进行反向传播。先前的GAN语言模型通常凭借预训练或者与监督最大似然方法联合训练。相比之下,使用该论文的方法,不需采用复杂的通过离散变量反向传播的方法,也不需要最大似然训练或fine-tune结构。该方法在Google Billion Word数据集上训练了一个字符级的GAN语言模型。生成器是一个简单的CNN架构,通过1D卷积将latent vector转换为32个one-hot字符向量的序列。

下图展示了模型的一个例子。目前为止,这是第一个完全使用对抗方法进行训练,而没有使用监督的最大似然损失的生成语言模型。其中有一些拼写上的错误,这可能是由于模型是每个字符独立输出的。

该文提供了一种训练GAN的稳定的算法,能够更好的探索哪种架构能够得到最好的生成模型性能。该方法也打开了使用大规模图像或语言数据集训练以得到更强的模型性能的大门。

原文发布于微信公众号 - BestSDK(bestsdk)

原文发表时间:2017-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭耀华‘s Blog

NLP之——Word2Vec详解

2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据...

2242
来自专栏ATYUN订阅号

【技术】动手实现会写数字的神经网络—半监督学习和生成式对抗网络介绍

在1889年,梵高画了这个美丽的艺术品:星月夜。如今,我的GAN模型只使用20%的标签数据,学会了画MNIST数字!它是怎么实现的?让我们动手做做看。 ? 半监...

61310
来自专栏机器人网

机器学习算法集锦:最常见算法类别与优缺点?

它是另一种方法(通常是回归方法)的拓展,这种方法会基于模型复杂性对其进行惩罚,它喜欢相对简单能够更好的泛化的模型。

1342
来自专栏大数据挖掘DT机器学习

常见的机器学习&数据挖掘数学知识点

常见的机器学习&数据挖掘数学知识点之Basis SSE(Sum of Squared Error, 平方误差和) SSE=∑i=1n(Xi−X¯¯¯)2 ...

6417
来自专栏人工智能LeadAI

机器学习算法集锦

摘要: 机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研...

3785
来自专栏Petrichor的专栏

深度学习: 激活函数 (Activation Functions)

激活函数(activation function)层又称 非线性映射 (non-linearity mapping) 层,作用是 增加整个网络的非线性(即 表达...

6723
来自专栏机器之心

学界 | 用生成对抗网络解决NLP问题:谷歌大脑提出MaskGAN

3756
来自专栏CreateAMind

通俗|令人拍案叫绝的Wasserstein GAN 及代码(WGAN两篇论文的中文详细介绍)

在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文Wassertein GAN 却在 Reddit 的 Machine Learni...

1724
来自专栏目标检测和深度学习

一定要收藏!最详细的机器学习算法优缺点综述

1522
来自专栏专知

【干货】IRGAN :生成对抗网络在搜狗图片搜索排序中的应用

来源:8层会议室-知乎专栏 https://zhuanlan.zhihu.com/p/31373052 一:背景 2014年,GAN之父Ian Goodfell...

6907

扫码关注云+社区

领取腾讯云代金券