苏剑林作者广州火焰信息科技有限公司单位NLP,神经网络研究方向

近期值得读的10篇GAN进展论文

这篇文章简单列举一下我认为最近这段时间中比较重要的 GAN 进展论文,这基本也是我在学习 GAN 的过程中主要去研究的论文清单。

生成模型之味

GAN 是一个大坑,尤其像我这样的业余玩家,一头扎进去很久也很难有什么产出,尤其是各个大公司拼算力搞出来一个个大模型,个人几乎都没法玩了。但我总觉得,真的去碰了生成模型,才觉得自己碰到了真正的机器学习。这一点,不管在图像中还是文本中都是如此。所以,我还是愿意去关注生成模型

当然,GAN 不是生成模型的唯一选择,却是一个非常有趣的选择。在图像中至少有 GAN、Flow、PixelRNN/PixelCNN 这几种选择,但要说潜力,我还是觉得 GAN 才是最具前景的,不单是因为效果,主要是因为它那对抗的思想。

而在文本中,事实上 Seq2Seq 机制就是一个概率生成模型了,而 PixelRNN 这类模型,实际上就是模仿着 Seq2Seq 来做的,当然也有用 GAN 做文本生成的研究(不过基本上都涉及到了强化学习)。也就是说,其实在 NLP 中,生成模型也有很多成果,哪怕你主要是研究 NLP 的,也终将碰到生成模型

好了,话不多说,还是赶紧把清单列一列,供大家参考,也作为自己的备忘。

拿效果来说话 

话在前头

不严谨地说,目前在 GAN 中,基本上都是效果说话。不管你多么完美的理论,只要你实验不能生成高清图,都很难被人接受;你再丑陋的结果,只要你实验效果够好,能生成高清大图,大家都得围着你转。 

GAN 模型的一个标志性事件,是 NVIDIA 去年搞出来的 Progressive Growing GANs,它首次实现了 1024*1024 的高清人脸生成。要知道,一般的 GAN 在生成 128*128 人脸时就会有困难,所以 1024 分辨率的生成称得上是一个突破。而下面列举的一些论文,都是在自己的实验中做到了 1024 的人脸生成。单是这个实验结果,就值得我们去关注一下这些论文。 

当然,生成 1024 图除了需要模型的进步,还需要很大的算力,因此一般人/实验室都很难做到。关注这些论文,并不是要我们去复现这么大的图生成,而是因为这些模型能生成这么大的图,必然有它值得我们借鉴的地方,甚至我们可以从中明白到 GAN 的瓶颈所在,从而让我们在自己的研究中少走弯路。

论文清单

这篇文章就是前面说的首次实现了 1024 人脸生成的 Progressive Growing GANs,简称 PGGAN,来自 NVIDIA。

顾名思义,PGGAN 通过一种渐进式的结构,实现了从低分辨率到高分辨率的过渡,从而能平滑地训练出高清模型出来。论文还提出了自己对正则化、归一化的一些理解和技巧,值得思考。当然,由于是渐进式的,所以相当于要串联地训练很多个模型,所以 PGGAN 很慢。

这篇文章有很多对 GAN 训练稳定性的数学推导,最终得到了比 WGAN-GP 更简单的梯度惩罚项,关注 GAN 训练稳定性的同学可以参考。

除了 1024 人脸,这篇文章也做了很多其他数据集的实验,效果都挺不错,而且都是直接端到端训练,不需要渐进式结构。我唯一困惑的是,这个惩罚项,不就是 WGAN-div 中的一个特例吗?为什么论文没有提到这一点?

这是个会“反省”的 VAE,通过对抗来改进了 VAE,从而能生成高清图片,并且能同时得到编码器和生成器。

除了能生成1024的高清图,更值得一提的是,这篇文章在构思上非常精妙。因为能同时得到编码器和生成器的模型不算独特,比如 BiGAN 就能做到,但是 IntroVAE 独特之处在于它能直接利用了 encoder 作为判别器,不需要额外的判别器,也就是直接省去了 1/3 的参数量。这背后更深层次的原因,值得我们去细细分析和回味。

这就是大名鼎鼎的 BigGAN。这篇文章虽然没有提供 1024 的人脸生成结果,但是它提供了 128、256、512 的自然场景图片的生成结果。要知道自然场景图片的生成可是比 CelebA 的人脸生成要难上很多倍,既然它连 512 的自然场景图片都可以生成了,我们自然不怀疑它能轻松生成 1024 的人脸。

BigGAN 在网上已经有很多科普介绍了,不再重复。论文还提出了自己的一些正则化技巧,并分享了大量的调参经验(调整哪些参数会有好的/坏的改变),非常值得参考。

这篇文章通过信息瓶颈来控制判别器的拟合能力,从而起到正则作用,稳定了 GAN 的训练。信息瓶颈的简介可以参考我的这篇文章。总的来说,在普通有监督训练中一切防止过拟合的手段,理论上都可以用在判别器中,而信息瓶颈也算是防止过拟合的一种手段。

当然,从标题就可以知道,论文也不满足于只用在 GAN 中,除了 1024 的人脸图生成实验,论文还做了仿真学习、强化学习等实验。

这就是前几天发出来的新的 GAN 生成器架构,被很多文章称之为 GAN 2.0,依旧是 NVIDIA,依旧是 PGGAN 的作者,依旧是 PGGAN 的模式。只不过生成器的架构换了,人家在一年前就已经生成了 1024 图,这次肯定也不例外了。

这个新的生成器架构,据说是借鉴了风格迁移的模型,所以叫 Style-Based Generator。我读了一下,其实它差不多就是条件 GAN(CGAN)的架构,但是把条件和噪声互换了。简单来说,就是把噪声当作条件,把条件当作噪声,然后代入到 CGAN 中。

看论文的效果图,这种思维上的转换的效果还是很不错的,我自己也试着实现了一下,能 work,但是有点 mode collapse,大家还是等开源吧。

顺便一提的是,一年前也是 PGGAN 的作者给我们带来了 CelebA HQ 数据集,现在还是他们给我们带来了新数据集 FFHQ。据说数据集和代码都将在明年一月开源,让我们拭目以待。

稳住训练再说

话在前头

与有监督学习的任务不同,有监督学习中,一般只要设计好模型,然后有足够多的数据,足够的算力,就可以得到足够好的模型;但 GAN 从来都不是设计模型就完事了,它是一个理论、模型、优化一体的事情。

从框架的角度来看,发展到 WGAN 后 GAN 的理论框架基本也就完备了,后面都只是不痛不痒的修补(包括我的 GAN-QP);从模型架构来看,DCGAN 奠定了基础,后来发展的 ResNet + Upsampling 也成为了标准框架之一,至于刚出来的 Style-Based Generator 就不说了,所以说模型架构基本上也成熟了。

那剩下的是什么呢?是优化,也就是训练过程。我觉得,要想真正掌握 GAN,就得仔细研究它的优化过程,也许得从动力学角度来仔细分析它的训练轨迹。这可能涉及到微分方程解的存在性、唯一性、稳定性等性质,也可能涉及到随机优化过程的知识。总而言之,需要把优化过程也纳入到 GAN 的分析中,GAN 才可能真正完备起来。 

下面的这些论文,从不同的角度分析了 GAN 的训练问题,并给出了自己的解决方案,值得一读。

论文清单

本文通过加噪声的方式推导出了 GAN 的正则项,推导过程理论上适用于一切 f-GAN从论文效果图看,结果还是不错的。

本文提出了 TTUR 的训练策略,大概意思就是:原来我们每次迭代都是用相同的学习率将判别器和生成器交替训练不同的次数,现在可以考虑用不同的学习率将各自训练一次,这样显然训练起来会更省时。

不过我粗略看了一下,尽管论文理论多,但是它理论基础却是另外一篇现成的文章 Stochastic approximation with two time scales [1],可以说论文只是反复在用这个现成的理论基础,略微单调。

在前面已经介绍过这篇文章了,但这里还是再放一次,因为实在是太经典。感觉是研究 GAN 训练稳定性必看的文章,作者从微分方程角度来理解 GAN 的训练问题

在稳定性分析的过程中,这篇文章主要还引用了两篇文章,一篇是它的“前传”(同一作者),叫做 The Numerics of GANs [2],另一篇是 Gradient descent GAN optimization is locally stable [3],都是经典之作。

本文通过谱归一化给判别器实现 L 约束,应该说是目前实现 L 约束最漂亮的方法了。目前谱归一化也用得很广,所以值得一提。相关介绍也可以参考我之前的文章

本文往 WGAN-GP 中添加了一个新的正则项,这个正则项的想法很朴素,就是直接把 L 约束(差分形式)作为正则项,跟 GAN-QP 的判别器多出来的二次项差不多。看论文的曲线图,训练比纯 WGAN-GP 要稳定些。

欢迎继续补充

这次的论文清单就这么多了,刚好凑够了十篇。限于笔者阅读量,不排除有疏漏之处,如果还有其他推荐的,欢迎在评论中提出。

相关链接

[1] Vivek S.Borkar. Stochastic approximation with two time scales. Systems & Control Letters Volume 29, Issue 5, February 1997, Pages 291-294.

[2] Lars Mescheder, Sebastian Nowozin, Andreas Geiger. The Numerics of GANs. NIPS 2017.

[3] Vaishnavh Nagarajan, J. Zico Kolter. Gradient descent GAN optimization is locally stable. NIPS 2017.

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论深度学习生成模型论文GAN
10
相关数据
随机优化技术

随机优化(SO)方法是生成和使用随机变量的优化方法。 对于随机问题,随机变量出现在优化问题本身的表述中,其涉及随机目标函数或随机约束。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

f-GAN技术

GAN的一个变种,使用变分散度最小化训练生成式神经采样器的生成对抗网络

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

WGAN技术

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~