【应用】生成式对抗网络GAN有哪些最新的发展,可以实际应用到哪些场景中?

2017 年 8 月 21 日 GAN生成式对抗网络

1生成式对抗网络GAN有哪些最新的发展,









  可以实际应用到哪些场景中?  

来源:知乎

作者:莫驚蟄


刚做完实验,来答一答自然语言处理方面GAN的应用。

直接把GAN应用到NLP领域(主要是生成序列),有两方面的问题:


1. GAN最开始是设计用于生成连续数据,但是自然语言处理中我们要用来生成离散tokens的序列。因为生成器(Generator,简称G)需要利用从判别器(Discriminator,简称D)得到的梯度进行训练,而G和D都需要完全可微,碰到有离散变量的时候就会有问题,只用BP不能为G提供训练的梯度。在GAN中我们通过对G的参数进行微小的改变,令其生成的数据更加“逼真”。若生成的数据是基于离散的tokens,D给出的信息很多时候都没有意义,因为和图像不同。图像是连续的,微小的改变可以在像素点上面反应出来,但是你对tokens做微小的改变,在对应的dictionary space里面可能根本就没有相应的tokens.


2.GAN只可以对已经生成的完整序列进行打分,而对一部分生成的序列,如何判断它现在生成的一部分的质量和之后生成整个序列的质量也是一个问题。

近几篇重要的工作:


1. 为了解决这两个问题,比较早的工作是上交的这篇发表在AAAI 2017的文章:SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient, 16年9月就放上了Arxiv上面了,而且也公布了源代码。

利用了强化学习的东西来解决以上问题。如图,针对第一个问题,首先是将D的输出作为Reward,然后用Policy Gradient Method来训练G。针对第二个问题,通过蒙特卡罗搜索,针对部分生成的序列,用一个Roll-Out Policy(也是一个LSTM)来Sampling完整的序列,再交给D打分,最后对得到的Reward求平均值。

完整算法如图:

原文链接:https://arxiv.org/pdf/1609.05473v5.pdf

Github链接:https://github.com/LantaoYu/SeqGAN


2. 第二篇是C.Manning组大神Li Jiwei的文章:Adversarial Learning for Neural Dialogue Generation,用GAN和强化学习来做对话系统,如果我没有记错,这篇paper是最早引用SeqGAN的,有同学还说这篇是最早将RL用到GAN上的,主要是Jiwei大神名气太大,一放上Arxiv就引起无数关注。


如图,文章也是用了Policy Gradient Method来对GAN进行训练,和SeqGAN的方法并没有很大的区别,主要是用在了Dialogue Generation这样困难的任务上面。还有两点就是:第一点是除了用蒙特卡罗搜索来解决部分生成序列的问题之外,因为MC Search比较耗费时间,还可以训练一个特殊的D去给部分生成的序列进行打分。但是从实验效果来看,MC Search的表现要更好一点。


第二点是在训练G的时候同时还用了Teacher-Forcing(MLE)的方法,这点和后面的MaliGAN有异曲同工之处。


为什么要这样做的原因是在对抗性训练的时候,G不会直接接触到真实的目标序列(gold-standard target sequence),当G生成了质量很差的序列的时候(生成质量很好的序列其实相当困难),而D又训练得很好,G就会通过得到的Reward知道自己生成的序列很糟糕,但却又不知道怎么令自己生成更好的序列, 这样就会导致训练崩溃。所以通过对抗性训练更新G的参数之后,还通过传统的MLE就是用真实的序列来更新G的参数。类似于有一个“老师”来纠正G训练过程中出现的偏差,类似于一个regularizer。

原文链接:https://arxiv.org/pdf/1701.06547.pdf

Github链接:https://github.com/jiweil/Neural-Dialogue-Generation


3. Yoshua Bengio组在二月底连续放了三篇和GAN有关的paper,其中我们最关心的是大神Tong Che和Li yanran的这篇:Maximum-Likelihood Augmented Discrete Generative Adversarial Networks(MaliGAN),简称读起来怪怪的。。。

这篇文章的工作主要是两个方面:


1.为G构造一个全新的目标函数,用到了Importance Sampling,将其与D的output结合起来,令训练过程更加稳定同时梯度的方差更低。尽管这个目标函数和RL的方法类似,但是相比之下更能狗降低estimator的方差(强烈建议看原文的3.2 Analysis,分析了当D最优以及D经过训练但并没有到最优两种情况下,这个新的目标函数仍然能发挥作用)


2.生成较长序列的时候需要用到多次random sampling,所以文章还提出了两个降低方差的技巧:第一个是蒙特卡罗树搜索,这个大家都比较熟悉; 第二个文章称之为Mixed MLE-Mali Training,就是从真实数据中进行抽样,若序列长度大于N,则固定住前N个词,然后基于前N个词去freely run G产生M个样本,一直run到序列结束。


基于前N个词生成后面的词的原因在于条件分布Pd比完整分布要简单,同时能够从真实的样本中得到较强的训练信号。然后逐渐减少N(在实验三中N=30, K=5, K为步长值,训练的时候每次迭代N-K)

Mixed MLE训练的MaliGAN完整算法如下:

在12,梯度更新的时候,第二项(highlight的部分)貌似应该是logP(我最崇拜的学长发邮件去问过一作) 。至于第一部分为什么梯度是近似于这种形式,可以参考Bengio组的另一篇文章:Boundary-Seeking Generative Adversarial Networks


这个BGAN的Intuition就是:令G去学习如何生成在D决策边界的样本,所以才叫做boundary-seeking。作者有一个特别的技巧:如图,当D达到最优的时候,满足如下条件,Pdata是真实的分布,Pg是G生成的分布。

我们对它进行一点微小的变换:这个形式厉害之处在于,尽管我们没有完美的G,但是仍然可以通过对Pg赋予权重来得到真实的分布,这个比例就是如图所示,基于该G的最优D和(1-D)之比。当然我们很难得到最优的D,但我们训练的D越接近最优D,bias越低。而训练D(标准二分类器)要比G简单得多,因为G的目标函数是一个会随着D变动而变动的目标。

文章后面给出了如何求梯度的数学公式,这里就不贴了。

回到MaliGAN,作者给出了实验数据,比SeqGAN的效果要更好,看BLEU score.

原文链接:https://arxiv.org/pdf/1702.07983v1.pdf


4. 用SeqGAN做机器翻译,中科院自动化所在三月中旬放出了这篇文章:Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets,这篇文章主要的贡献就是第一次将GAN应用到了NLP的传统任务上面,而且BLEU有2的提升。


这个模型他们称之为CSGAN-NMT,G用的是传统的attention-based NMT模型,而D有两种方案,一种是CNN based,另一种是RNN based,通过实验比较发现CNN的效果更好。推测的原因是RNN的分类模型在训练早期能够有极高的分类准确率,导致总能识别出G生成的数据和真实的数据,G难以训练(因为总是negative signal),


这篇文章的重点我想是4.训练策略,GAN极难训练,他们首先是用MLE来pretrain G,然后再用G生成的样本和真实样本来pretrain D,当D达到某一个准确率的时候,进入对抗性训练的环节,GAN的部分基本和SeqGAN一样,用policy gradient method+MC search,上面已经讲过了不再重复。但是由于在对抗性训练的时候,G没有直接接触到golden target sentence,所以每用policy gradient更新一次G都跑一次professor forcing。这里我比较困惑,我觉得是不是像Jiwei那篇文章,是用D给出的Reward来更新G参数之后,又用MLE来更新一次G的参数(保证G能接触到真实的样本,这里就是目标语言的序列),但这个方法是teacher-forcing不是professor forcing。


最后就是训练Trick茫茫,这篇文章试了很多超参数,比如D要pretrain到f=0.82的时候效果最好,还有pretrain要用Adam,而对抗性训练要用RMSProp,同时还要和WGAN一样将每次更新D的权重固定在一个范围之内。


原文链接:https://arxiv.org/pdf/1703.04887.pdf


5.最后3月31号放到Arxiv上的文章:Improved Training of Wasserstein GANs, WGAN发布之后就引起轰动,比如Ian在Reddit上就点评了这篇文章,NYU的又祭出了这篇,令WGAN在NLP上也能发挥威力。


在WGAN中,他们给出的改进方案是:

  • 判别器最后一层去掉sigmoid

  • 生成器和判别器的loss不取log

  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c

  • 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

这里引用自知乎专栏:令人拍案叫绝的Wasserstein GAN - 知乎专栏

文章写得深入浅出,强烈推荐。


其中第三项就是机器翻译文章中也用到的weight clipping,在本文中,他们发现通过weight clipping来对D实施Lipschitz限制(为了逼近难以直接计算的Wasserstein距离),是导致训练不稳定,以及难以捕捉复杂概率分布的元凶。所以文章提出通过梯度惩罚来对Critic(也就是D,WGAN系列都将D称之为Critic)试试Lipschitz限制。

如图:损失函数有原来的部分+梯度惩罚,现在不需要weight clipping以及基于动量的优化算法都可以使用了,他们在这里就用了Adam。同时可以拿掉Batch Normalization。

如图所示,实验结果很惊人,这种WGAN—GP的结构,训练更加稳定,收敛更快,同时能够生成更高质量的样本,而且可以用于训练不同的GAN架构,甚至是101层的深度残差网络。

同时也能用于NLP中的生成任务,而且是character-level 的language model,而MaliGAN的实验是在Sentence-Level上面的。而且前面几篇提到的文章2,3,4在对抗性训练的时候或多或少都用到了MLE,令G更够接触到Ground Truth,但是WGAN-GP是完全不需要MLE的部分。

原文链接:https://arxiv.org/pdf/1704.00028.pdf

github地址:https://github.com/igul222/improved_wgan_training

代码一起放出简直业界良心。


6.3月31号还谷歌还放出了一篇BEGAN: Boundary Equilibrium Generative

Adversarial Networks,同时代码也有了是carpedm20用pytorch写的,他复现的速度真心快。。。


最后GAN这一块进展很多,同时以上提到的几篇重要工作的一二作,貌似都在知乎上,对他们致以崇高的敬意。

以上。




高质量延伸阅读

☞ 【从头开始GAN】Goodfellow开山之作到DCGAN等变体

☞ 【智能自动化学科前沿讲习班第1期】上海交大倪冰冰副教授:面向图像序列的生成技术及应用初探

☞ 【智能自动化学科前沿讲习班第1期】University of Central Florida 的Guojun Qi:LS-GAN

☞ 【智能自动化学科前沿讲习班第1期】微软秦涛主管研究员:从单智能体学习到多智能体学习

☞ 【智能自动化学科前沿讲习班第1期】王坤峰副研究员:GAN与平行视觉

☞ 【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文

☞ 【插画】AI可能真的要代替插画师了……

☞ 【教程】经得住考验的「假图片」:用TensorFlow为神经网络生成对抗样本

☞ 【模型】基于深度学习的三大生成模型:VAE、GAN、GAN的变种模型

☞ 【大会】还记得Wasserstein GAN吗?不仅有Facebook参与,也果然被 ICML 接收

☞ 【开发】 用GAN来做图像生成,这是最好的方法

☞ 【学界】邢波团队提出contrast-GAN:实现生成式语义处理

☞  【专栏】阿里SIGIR 2017论文:GAN在信息检索领域的应用

☞ 【学界】康奈尔大学说对抗样本出门会失效,被OpenAI怼回来了!

☞ 警惕人工智能系统中的木马、病毒 ——深度学习对抗样本简介

☞ 【生成图像】Facebook发布的LR-GAN如何生成图像?这里有一篇Pytorch教程

☞ 【智能自动化学科前沿讲习班第1期】国立台湾大学(位于中国台北)李宏毅教授:Anime Face Generation

☞ 【变狗为猫】伯克利图像迁移cycleGAN,猫狗互换效果感人

☞ 【论文】对抗样本到底会不会对无人驾驶目标检测产生干扰?又有人发文质疑了

【智能自动化学科前沿讲习班第1期】王飞跃教授:生成式对抗网络GAN的研究进展与展望

【开发】看完立刻理解GAN!初学者也没关系

【专栏】基于对抗学习的生成式对话模型的坚实第一步 :始于直观思维的曲折探索

☞ 【重磅】平行将成为一种常态:从SimGAN获得CVPR 2017最佳论文奖说起

☞ 【最新】OpenAI:3段视频演示无人驾驶目标检测强大的对抗性样本!

☞  【干货】生成对抗网络(GAN)之MNIST数据生成

☞ 【论文】CVPR 2017最佳论文出炉,DenseNet和苹果首篇论文获奖

☞   AI侦探敲碎深度学习黑箱

☞ 【深度学习】解析深度学习的局限性与未来,谷歌Keras之父「连发两文」发人深省

☞   苹果重磅推出AI技术博客,CVPR合成逼真照片论文打响第一枪

☞ 【Ian Goodfellow 五问】GAN、深度学习,如何与谷歌竞争

☞ 【巨头升级寡头】AI产业数据称王,GAN和迁移学习能否突围BAT垄断?

☞ 【高大上的DL】BEGAN: Boundary Equilibrium GAN

☞ 【最详尽的GAN介绍】王飞跃等:生成式对抗网络 GAN 的研究进展与展望

☞ 【最全GAN变体列表】Ian Goodfellow推荐:GAN动物园

☞   二十世纪的十大科学骗局

☞ 【DCGAN】深度卷积生成对抗网络的无监督学习,补全人脸合成图像匹敌真实照片

【学界】让莫奈画作变成照片:伯克利图像到图像翻译新研究

☞ 【DualGAN】对偶学习的生成对抗网络

☞ 【开源】收敛速度更快更稳定的Wasserstein GAN(WGAN)

☞ 【Valse 2017】生成对抗网络(GAN)研究年度进展评述

☞ 【开源】谷歌新推BEGAN模型用于人脸数据集:效果惊人!

☞ 【深度】Ian Goodfellow AIWTB开发者大会演讲:对抗样本与差分隐私

☞   论文引介 | StackGAN: Stacked Generative Adversarial Networks

☞ 【专题GAN】GAN应用情况调研

☞ 【纵览】从自编码器到生成对抗网络:一文纵览无监督学习研究现状

☞ 【论文解析】Ian Goodfellow 生成对抗网络GAN论文解析

☞ 【VALSE 前沿】利用对抗学习改进目标检测的结果

☞ 【干货】全面分析GAN,以及如何用TF实现GAN?

☞   苹果首份AI论文横空出世,提出SimGAN训练方法

☞ 【推荐】条条大路通罗马LS-GAN:把GAN建立在Lipschitz密度上

☞   到底什么是生成式对抗网络GAN?

☞   看穿机器学习(W-GAN模型)的黑箱

☞   看穿机器学习的黑箱(II)

【Geometric GAN】引入线性分类器SVM的Geometric GAN

☞ 【征稿】“生成式对抗网络GAN技术与应用”专刊

☞ 【GAN for NLP】PaperWeekly 第二十四期 --- GAN for NLP

☞ 【学界 】 从感知机到GAN,机器学习简史梳理

☞ 【Demo】GAN学习指南:从原理入门到制作生成Demo

☞ 【学界】伯克利与OpenAI整合强化学习与GAN:让智能体学习自动发现目标

☞ 【解读】通过拳击学习生成对抗网络(GAN)的基本原理

☞ 【人物 】Ian Goodfellow亲述GAN简史:人工智能不能理解它无法创造的东西

☞ 【DCGAN】DCGAN: 一类稳定的GANs

☞ 【DCGAN】DCGAN:深度卷积生成对抗网络的无监督学习,补全人脸合成图像匹敌真实照片

☞ 【原理】 直观理解GAN背后的原理:以人脸图像生成为例

☞ 【干货】深入浅出 GAN·原理篇文字版(完整)

☞   带你理解CycleGAN,并用TensorFlow轻松实现

☞   PaperWeekly 第39期 | 从PM到GAN - LSTM之父Schmidhuber横跨22年的怨念

☞ 【CycleGAN】加州大学开源图像处理工具CycleGAN

☞ 【SIGIR2017满分论文】IRGAN:大一统信息检索模型的博弈竞争

☞ 【贝叶斯GAN】贝叶斯生成对抗网络(GAN):当下性能最好的端到端半监督/无监督学习

☞ 【贝叶斯GAN】贝叶斯生成对抗网络(GAN):当下性能最好的端到端半监督/无监督学习

☞ 【GAN X NLP】自然语言对抗生成:加拿大研究员使用GAN生成中国古诗词

☞    ICLR 2017 | GAN Missing Modes 和 GAN

☞ 【论文汇总】生成对抗网络及其变体

☞ 【AI】未来AI这样帮你一键修片,那还有PS什么事?

☞ 【学界】CMU新研究试图统一深度生成模型:搭建GAN和VAE之间的桥梁

☞ 【专栏】大漠孤烟,长河落日:面向景深结构的风景照生成技术

☞ 【开发】最简单易懂的 GAN 教程:从理论到实践(附代码)

☞ 【论文访谈】求同存异,共创双赢 - 基于对抗网络的利用不同分词标准语料的中文分词方法

☞ 【LeCun论战Yoav】自然语言GAN惹争议:深度学习远离NLP?

☞ 【争论】从Yoav Goldberg与Yann LeCun争论,看当今的深度学习、NLP与arXiv风气

☞ 【观点】Yoav Goldberg撰文再回应Yann LeCun:「深度学习这群人」不了解NLP(附各方评论)

☞   PaperWeekly 第41期 | 互怼的艺术:从零直达 WGAN-GP

☞ 【业界】CMU和谷歌联手研制左右互搏的对抗性机器人

☞ 【谷歌 GAN 生成人脸】对抗创造新艺术风格,128 像素扩展到 4000

☞ 【原理】模拟上帝之手的对抗博弈——GAN背后的数学原理

☞ 【原理】只知道GAN你就OUT了——VAE背后的哲学思想及数学原理


登录查看更多
7

相关内容

GAN:生成性对抗网,深度学习模型的一种,在神经网络模型中引入竞争机制,非常流行。
最新《生成式对抗网络》简介,25页ppt
专知会员服务
168+阅读 · 2020年6月28日
深度强化学习策略梯度教程,53页ppt
专知会员服务
176+阅读 · 2020年2月1日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
23+阅读 · 2019年11月19日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
王飞跃教授:生成式对抗网络GAN的研究进展与展望
算法与数学之美
12+阅读 · 2019年2月16日
生成对抗网络在图像翻译上的应用【附PPT与视频资料】
人工智能前沿讲习班
7+阅读 · 2018年11月28日
GAN在网络特征学习中的一些应用
计算机视觉战队
4+阅读 · 2018年1月25日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【GAN】生成式对抗网络GAN的研究进展与展望
产业智能官
12+阅读 · 2017年8月31日
王飞跃:生成式对抗网络GAN的研究进展与展望
机器学习研究会
7+阅读 · 2017年8月26日
GAN | GAN介绍(2)
中国科学院网络数据重点实验室
43+阅读 · 2017年8月4日
Arxiv
8+阅读 · 2019年2月15日
Adversarial Transfer Learning
Arxiv
12+阅读 · 2018年12月6日
Arxiv
10+阅读 · 2018年3月23日
Arxiv
4+阅读 · 2018年3月23日
VIP会员
相关资讯
王飞跃教授:生成式对抗网络GAN的研究进展与展望
算法与数学之美
12+阅读 · 2019年2月16日
生成对抗网络在图像翻译上的应用【附PPT与视频资料】
人工智能前沿讲习班
7+阅读 · 2018年11月28日
GAN在网络特征学习中的一些应用
计算机视觉战队
4+阅读 · 2018年1月25日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【GAN】生成式对抗网络GAN的研究进展与展望
产业智能官
12+阅读 · 2017年8月31日
王飞跃:生成式对抗网络GAN的研究进展与展望
机器学习研究会
7+阅读 · 2017年8月26日
GAN | GAN介绍(2)
中国科学院网络数据重点实验室
43+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员