(转) GAN应用情况调研

本文转自: https://mp.weixin.qq.com/s?__biz=MzA5MDMwMTIyNQ==&mid=2649290778&idx=1&sn=9816b862e167c4792f4251c199fcae16&chksm=8811ee5cbf66674a54e87bc3cef4937da6e5aac7599807754731ab777d359b219ac6de97616e&mpshare=1&scene=2&srcid=0219a2eBxTk422jOeh9mSxr6&from=timeline&key=d5aa2529cd509c24d0b323552433a61be5181e60aca7ca468b4ed92f98d30c3cd3305fa1695215de157c8fcd8718c461b3382c2472f5b7e1c3c686be2871009911eaf51e1d7afa86e5a87b470d3c7e5f&ascene=2&uin=MTgwOTU2NjU0MQ%3D%3D&devicetype=android-24&version=26050434&nettype=WIFI&abtest_cookie=AQABAAgAAQBChh4AAAA%3D&pass_ticket=bMwVMQ2K1X9RvTCJaBHIfrq9%2BOLAbQeQmw8cLAK33TF40zlmdma44fhN5bVmW1Vq&wx_header=1

GAN应用情况调研

2017-02-19 Gapeng CreateAMind

转自公众号  学术兴趣小组

今天我们来聊一个轻松一些的话题——GAN的应用。

在此之前呢,先推荐大家去读一下一篇新的文章LS-GAN(Loss-sensitive GAN)[1]。

这个文章比WGAN出现的时间要早几天,它在真实分布满足Lipschitz条件的假设下,提出了LS-GAN,并证明了它的纳什均衡解存在。它也能解决generator梯度消失的问题,实验发现不存在mode collapse的问题。

作者齐国君老师在知乎上写了一篇文章介绍LS-GAN,建议感兴趣的童鞋也去阅读一下,地址:

条条大路通罗马LS-GAN:把GAN建立在Lipschitz密度上

回到今天的主题GAN的应用上来。GAN的应用按照大类分为在图像上的应用、在NLP上的应用,以及与增强学习结合。我们分这两个大类进行介绍。今天介绍的应用不涉及算法细节(除了能简短介绍清楚的算法),基本上都有源码,参见文末。

GAN在图像上的应用

 

从目前的文献来看,GAN在图像上的应用主要是往图像修改方向发展。涉及的图像修改包括:单图像超分辨率(single image super-resolution)、交互式图像生成、图像编辑、图像到图像的翻译等。

单图像超分辨率

单图像超分辨率任务(SISR)就是给定单张低分辨率图像,生成它的高分辨率图像。传统方法一般是插值,但是插值不可避免地会产生模糊。GAN怎么应用到这个任务上去呢?

首先,GAN有两个博弈的对手:G(generator)和D(discriminator),容易想到一种可能的方案是:G的输入是低分辨率图像(LR),输出应该是高分辨率图像(HR)。文献[9]正是采用这种做法。作者采用ResNet作为G,网络架构如下图所示:

对于一批N张图像,G的loss定义为

其中,包含两部分:content loss和adversarial loss。G的loss包含content loss部分,因此G并非完全的非监督,它也用到了监督信息:它强制要求生成图像提取的特征与真实图像提取的特征要匹配,文中用到的特征提取网络为VGG,content loss定义如下:

而adversarial loss就是我们常见的GAN loss:

文中采用的为:

文献[9]的实验效果如下图所示,可以看出,SRGAN效果比其他方法要好,生成的图像模糊程度更低。代码参见文末的SRGAN。

此外,还有另外一个文章[3]也做了GAN在SISR上的应用,文中提出了AffGAN。这里不再展开介绍,感兴趣的同学请参看原文。

交互式图像生成

这个工作来自于Adobe公司。他们构建了一套图像编辑操作,能使得经过这些操作以后,图像依旧在“真实图像流形”上,因此编辑后的图像更接近真实图像。

具体来说,iGAN的流程包括以下几个步骤:

  1. 将原始图像投影到低维的隐向量空间
  2. 将隐向量作为输入,利用GAN重构图像
  3. 利用画笔工具对重构的图像进行修改(颜色、形状等)
  4. 将等量的结构、色彩等修改应用到原始图像上。

值得一提的是,作者提出G需为保距映射的限制,这使得整个过程的大部分操作可以转换为求解优化问题,整个修改过程近乎实时。细节比较多,这里不再展开,请参考文献[6],代码请参考文末的iGAN。下面的demo经过压缩图像质量比较差,查看清晰版本请移步iGAN的github页面。

图像编辑

GAN也可以应用到图像编辑上,文献[14]提出了IAN方法(Introspective Adversarial Network),它融合了GAN和VAE(variational autoencoder,另一种生成模型)。如果你对VAE、GAN以及它们的融合都比较熟悉,理解IAN应该是很容易的。文章的主要创新在于loss的设计上。

以下是IAN编辑图像的一个demo,代码可以在文末的IAN部分找到。

图像到图像的翻译

所谓“图像到图像的翻译”( image to image translation),是指将一种类型的图像转换为另一种类型的图像,比如:将草图具象化、根据卫星图生成地图等。文献[7]设计了一种算法pix2pix,将GAN应用到image to image translation上。

作者采用CGAN(conditional GAN,关于CGAN的介绍,参见两周前的推送20170203),将待转换的图像作为condition,加上高斯噪声作为generator的输入,generator将输入转换为我们需要的目标图像,而discriminator判断图像是generator产生的,还是真实的目标图像。为了能让generator产生的图像逼近真实的目标图像,generator的loss还包含目标图像匹配度的惩罚项,采用L1范数,generator的loss设计如下:

其中,y即为真实的目标图像。

然而,作者在实验中发现,generator会忽略高斯噪声z,而直接根据输入图像x产生目标图像y。为了解决这个问题,作者只在generator的某些层上以dropout的形式加入噪声(training和test时都需要dropout)。代码参见文末的pix2pix,实验效果如下图所示:

GAN在NLP上的应用

目前来说GAN在NLP上的应用可以分为两类:生成文本、根据文本生成图像。其中,生成文本包括两种:根据隐向量(噪声)生成一段文本;对话生成。

如果你对GAN在NLP中的应用感兴趣,推荐阅读下面的文章:

http://www.machinedlearnings.com/2017/01/generating-text-via-adversarial-training.html

或者可以查看AI100翻译的版本:

http://mp.weixin.qq.com/s/-lcEuxPnTrQFVJV61MWsAQ

我对NLP的了解比较少,这里只列举其中一部分应用。

对话生成

GAN应用到对话生成的例子,可以看这篇文章[2],文末也有相关的代码(参看GAN for Neural dialogue generation)。下图是GAN对话生成算法的伪代码,省略了很多细节:

实验效果如下图:

这个工作很有意思。可以看出,生成的对话具有一定的相关性,但是效果并不是很好,而且这只能做单轮对话。

文本到图像的翻译

GAN也能用于文本到图像的翻译(text to image),在ICML 2016会议上,Scott Reed等人提出了基于CGAN的一种解决方案[13]:将文本编码作为generator的condition输入;对于discriminator,文本编码在特定层作为condition信息引入,以辅助判断输入图像是否满足文本描述。文中用到的GAN架构如下:

作者提出了两种基于GAN的算法,GAN-CLS和GAN-INT。GAN-CLS算法如下:

GAN-INT对多种文本编码做一个加权,在这种设计下,generator的loss为:

其中,β控制两种文本编码的加权系数。

实验发现生成的图像相关性很高。代码参见文末的text2image。

此外,GAN还可以跟增强学习(RL)结合。

Ian Goodfellow指出,GAN很容易嵌入到增强学习(reinforcement learning)的框架中。例如,用增强学习求解规划问题时,可以用GAN学习一个actions的条件概率分布,agent可以根据生成模型对不同的actions的响应,选择合理的action。

GAN与RL结合的典型工作有:将GAN嵌入模仿学习(imitation learning)中[5];将GAN嵌入到策略梯度算法(policy gradient)中[11],将GAN嵌入到actor-critic算法中[15],等。

GAN与增强学习结合的相关工作多数在16年才开始出现,GAN和RL属于近年来的研究热点,两者结合预计在接下来的一两年里将得到更多研究者的青睐。

常见GAN

最后,作为GAN专题的结尾,我们列举一下目前常见的GAN模型(可以根据arxiv id去寻找、下载文献),欢迎补充。

  • GAN - Ian Goodfellow, arXiv:1406.2661v1
  • DCGAN - Alec Radford & Luke Metz, arxiv:1511.06434
  • CGAN - Mehdi Mirza, arXiv:1411.1784v1
  • LAPGAN - Emily Denton & Soumith Chintala, arxiv: 1506.05751
  • InfoGAN - Xi Chen, arxiv: 1606.03657
  • PPGAN - Anh Nguyen, arXiv:1612.00005v1
  • WGAN - Martin Arjovsky, arXiv:1701.07875v1
  • LS-GAN - Guo-Jun Qi, arxiv: 1701.06264
  • SeqGAN - Lantao Yu, arxiv: 1609.05473
  • EBGAN - Junbo Zhao, arXiv:1609.03126v2
  • VAEGAN - Anders Boesen Lindbo Larsen, arxiv: 1512.09300

......

此外,还有一些在特定任务中提出来的模型,如本期介绍的GAN-CLS、GAN-INT、SRGAN、iGAN、IAN等等,这里就不再列举。

代码

  • LS-GAN

Torch版本:https://github.com/guojunq/lsgan

  • SRGAN

Tensorflow版本:https://github.com/buriburisuri/SRGAN

Torch版本:https://github.com/leehomyc/Photo-Realistic-Super-Resoluton

Keras版本:https://github.com/titu1994/Super-Resolution-using-Generative-Adversarial-Networks

  • iGAN

Theano版本:https://github.com/junyanz/iGAN

  • IAN

Theano版本:https://github.com/ajbrock/Neural-Photo-Editor

  • Pix2pix

Torch版本:https://github.com/phillipi/pix2pix

Tensorflow版本:https://github.com/yenchenlin/pix2pix-tensorflow

  • GAN for Neural dialogue generation

Torch版本:https://github.com/jiweil/Neural-Dialogue-Generation

  • Text2image

Torch版本:https://github.com/reedscot/icml2016

Tensorflow+Theano版本:https://github.com/paarthneekhara/text-to-image

  • GAN for Imitation Learning

Theano版本:https://github.com/openai/imitation

  • SeqGAN

Tensorflow版本:https://github.com/LantaoYu/SeqGAN

参考文献

  1. Qi G J. Loss-Sensitive Generative Adversarial Networks onLipschitz Densities[J]. arXiv preprint arXiv:1701.06264, 2017.
  2. Li J, Monroe W, Shi T, et al. Adversarial Learning for NeuralDialogue Generation[J]. arXiv preprint arXiv:1701.06547, 2017.
  3. S?nderby C K, Caballero J, Theis L, et al. Amortised MAPInference for Image Super-resolution[J]. arXiv preprint arXiv:1610.04490, 2016.
  4. Ravanbakhsh S, Lanusse F, Mandelbaum R, et al. Enabling DarkEnergy Science with Deep Generative Models of Galaxy Images[J]. arXiv preprintarXiv:1609.05796, 2016.
  5. Ho J, Ermon S. Generative adversarial imitationlearning[C]//Advances in Neural Information Processing Systems. 2016:4565-4573.
  6. Zhu J Y, Kr?henbühl P, Shechtman E, et al. Generative visualmanipulation on the natural image manifold[C]//European Conference on ComputerVision. Springer International Publishing, 2016: 597-613.
  7. Isola P, Zhu J Y, Zhou T, et al. Image-to-image translationwith conditional adversarial networks[J]. arXiv preprint arXiv:1611.07004,2016.
  8. Shrivastava A, Pfister T, Tuzel O, et al. Learning fromSimulated and Unsupervised Images through Adversarial Training[J]. arXivpreprint arXiv:1612.07828, 2016.
  9. Ledig C, Theis L, Huszár F, et al. Photo-realistic singleimage super-resolution using a generative adversarial network[J]. arXivpreprint arXiv:1609.04802, 2016.
  10. Nguyen A, Yosinski J, Bengio Y, et al. Plug & playgenerative networks: Conditional iterative generation of images in latentspace[J]. arXiv preprint arXiv:1612.00005, 2016.
  11. Yu L, Zhang W, Wang J, et al. Seqgan: sequence generativeadversarial nets with policy gradient[J]. arXiv preprint arXiv:1609.05473,2016.
  12. Lotter W, Kreiman G, Cox D. Unsupervised learning of visualstructure using predictive generative networks[J]. arXiv preprintarXiv:1511.06380, 2015.
  13. Reed S, Akata Z, Yan X, et al. Generative adversarial textto image synthesis[C]//Proceedings of The 33rd International Conference onMachine Learning. 2016, 3.
  14. Brock A, Lim T, Ritchie J M, et al. Neural photo editingwith introspective adversarial networks[J]. arXiv preprint arXiv:1609.07093,2016.
  15. Pfau D, Vinyals O. Connecting generative adversarialnetworks and actor-critic methods[J]. arXiv preprint arXiv:1610.01945, 2016.

推荐: 

语义学习-通用智能的切入点-实现路径v0.01

通用智能-基础技术相关文章-CreateAMind公众号精华

一起学习讨论:qq群号 325921031;微信群请公众号内留言‘加群’;

更多深度学习干货请扫描下方二维码访问公众号CreateAMind菜单

阅读原文

微信扫一扫
关注该公众号

时间: 2024-12-26 09:15:35

(转) GAN应用情况调研的相关文章

线上部署GlusterFS情况调研结果

还是有不少群友在选择GlusterFS版本时缺乏信心,所以在"GlusterFS技术交流"QQ群(234901333)里调研了一下线上部署GlusterFS情况. 先说明一下GlusterFS的应用场景: 纯基于GlusterFS创业也是可以成功的,著名的有大道行云,结合他们的描述,GlusterFS主要应该于广电.高性能计算.医疗.军工等行业,也会用在桌面虚拟化和超融合,很多互联网公司内部也在使用GlusterFS,用于公司内部的文件共享,或是兼容之前基于文件的应用,通过NAS转换,

6.简单的用用户调研

指望从用户调研中获得需求,是产品经理懒惰的表现.也就是说,我们对待调研的态度更应该是:现有一些基本的假设和预判,再通过用户访谈等调研方式去加以验证,而不是实现脑子空空,寄希望于用户可以给你所有的答案. 除了被动的直观可触达的用户反馈这些渠道,我们也能主动出击,通过主动进行用户的调研和用户产生沟通. 用户调研的全过程 (1)明确目的和背景 背景: 什么情况下发起用户调研?是否必须要用调研来解决? 首先,什么情况下发起调研,这是调研的基本背景.其次是要考虑这件事是否一定要用调研来解决,有的时候你需要

论文---参考文献格式

一.参考文献的类型 参考文献(即引文出处)的类型以单字母方式标识,具体如下: M——专著 C——论文集 N——报纸文章 J——期刊文章(包括大学学报) D——学位论文 R——报告 对于不属于上述的文献类型,采用字母“Z”标识. 对于英文参考文献,还应注意以下两点: ①作者姓名采用“姓在前名在后”原则,具体格式是: 姓,名字的首字母. 如: Malcolm Richard Cowley 应为:Cowley, M.R., 如果有两位作者,第一位作者方式不变,&之后第二位作者名字的首字母放在前面,姓放

毕业论文参考文献规范格式

一.参考文献的类型参考文献(即引文出处)的类型以单字母方式标识,具体如下:M--专著 C--论文集 N--报纸文章J--期刊文章 D--学位论文 R--报告对于不属于上述的文献类型,采用字母“Z”标识.对于英文参考文献,还应注意以下两点:①作者姓名采用“姓在前名在后”原则,具体格式是: 姓,名字的首字母. 如: Malcolm Richard Cowley 应为:Cowley, M.R.,如果有两位作者,第一位作者方式不变,&之后第二位作者名字的首字母放在前面,姓放在后面,如:Frank Nor

【学生必备求职指南】好简历是怎样炼成的?毕业生简历实例点评版 转载

作为应届毕业生,简历中应当包括的重点内容基本出现,层次比较清晰,且对自己从事过的实践工作内容进行了较详尽的描述,同时有意识地给出了通过实践自己得到的收获.但总体篇幅过长,部分内容的逻辑性和展现方式有待改进. 撰写简历主要原则:1.在能够突出展现自己的工作履历.技能和优势的前提下,尽可能缩短篇幅(一页最佳),冗长的简历会冲淡重点,不易被HR所青睐.2.撰写简历前,尽可能通过各种途径了解职位所需的经验.素质和技能,并据此有针对性地制作相应的简历,只有这样才能让HR在"scan"简历的过程中

5大领先的商业智能解决方案,国产上榜!

2016年是商业智能元年,从企业应用和市场推广的角度来看,各家企业开始逐步上线商业智能,用于企业经营业务的分析. 对于目前市面上所提供的商业智能解决方案,传统BI.大数据BI以及自助型敏捷BI保持着并行发展的趋势.对于信息化发展相对成熟逐渐转向数据化运营的企业,商业智能主要用于打通系统间的数据壁垒,给日益增长的企业数据提供平台型服务,并联通外部数据,基于数据挖掘,机器学习提供多维度的数据分析服务.对于刚起步或尚未部署信息化的企业,商业智能更多地用于管理数据信息,利用数据分析的手段快速辅助业务.

论文参考文献标准格式

参考文献的类型 参考文献(即引文出处)的类型以单字母方式标识,具体如下: M——专著 C——论文集 N——报纸文章 J——期刊文章 D——学位论文 R——报告 对于不属于上述的文献类型,采用字母“Z”标识. 对于英文参考文献,还应注意以下两点: ①作者姓名采用“姓在前名在后”原则,具体格式是: 姓,名字的首字母. 如: Malcolm Richard Cowley 应为:Cowley, M.R.,如果有两位作者,第一位作者方式不变,&之后第二位作者名字的首字母放在前面,姓放在后面,如:Frank

从零开始编写自己的C#框架(24)——测试

导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复Bug 10.对已修复Bug进行返测 11.将修复完成的Bug关闭,对未修复的Bug重新激活 12.灵活使用压力测试工具 13.测试与版本控制 14.小结 15.附件下载 1.前言 对于测试,很多公司并不看重,接触过不少朋友或客户,打开网站随便点击一下,就可以很容易发现爆黄页.404.UI变型(浏览器

第一杯茶—启动茶

许多我们认为应该这样的,其实并不这样. 洞庭碧螺春,条索纤细,卷曲如螺,白毫毕露,银绿翠隐,是我国十大名茶之一.但如果你就一抹斜阳,至洞庭湖畔品碧螺春,那就是个十足的外行. 洞庭碧螺春并不在洞庭湖,而是在太湖.太湖有洞庭山,山上产碧螺春.清<野史大观>称碧螺春『吓煞人香』,因其清香异常,成为清代最著名的皇家贡茶之一. 还有很多事也超出『理应如此』之外.比如项目启动会不仅仅是字面描述的『启动的仪式』,正如洞庭碧螺春的玄机藏在太湖一样.一个正式的启动会,绝不是画蛇添足.启动会中隐藏着许多高效的工作