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

2017 年 8 月 17 日 产业智能官 量子位
王小新 编译
原文作者:Sumeet Agrawal
量子位 出品 | 公众号 QbitAI

生成对抗网络(GANs)是一种能“教会”计算机胜任人类工作的有趣方法。一个好的对手能让你成长更快,而GANs背后就是“从竞争中学习”的思路。

GANs最先是由蒙特利尔大学的Ian Goodfellow提出,已在图像生成和风格迁移等领域获得了巨大的成功,充分展示了“无监督学习”技术的潜力。

GANs是如何工作的?

 GAN结构示意图

一个GAN中包含两个相互竞争的神经网络模型。一个网络称为生成器(generator),能将噪声作为输入并生成样本;另一个网络称为鉴别器(discriminator),能接收生成器数据和真实训练数据,训练得到能正确区分数据类型的分类器。

这两个网络互相对抗。其中,生成器通过学习来产生更逼近真实数据的新样本,用于愚弄鉴别器,反之鉴别器也需要更好地区分生成数据与真实数据。

将这两个网络联合训练,经过大量回合“交锋”后,鉴别器将无法区分生成样本和实际数据。做个比喻,生成器就像是想制作一些高仿品的生产商,而鉴别器就像是试图检测出这些仿制品的警察。

由于整个过程是自动完成的,仅受限于实际的计算能力,因此GANs可用来实现一些很有趣的功能。

以下是一些用GANs完成的酷炫应用。

1、让机器拥有想象力

神经网络对于物体的本质是怎么“想”的?

为了搞懂这个问题,谷歌大脑的研究人员使用GAN,让神经网络的“想法”呈现在你的眼前。当然,这些“想法”看起来十分迷幻。

其实这原本是一个图像分类器,而生成的迷幻图片,是故意对图像进行过度处理的副产品。现在这套系统有个单独的名字:“深梦(Deep Dream)”。

 Deep Dream模型利用普通照片生成的一张奇幻照片

 Deep Dream模型将塔楼、房屋和小鸟等对象融入图像中的效果示例

想要运行Deep Dream模型,你只需要输入一张图像,然后这个模型就开始穷尽所能,寻找被训练识别的目标。在一张完全不相关的图像中,神经网络可能会发现一些与狗、房子、水母等物体的相似之处。

就好像你看到云朵会产生联想一样,Deep Dream模型会放大它找到的相似之处。

举个例子,当你运行这个辨识网络时,它指出某张图是狗的可能性为40%,然后开始修改输入图像,使得这张图为狗的可能性增加到60%。并不断重复这个过程,直到输入图像明显地转化成一张看起来像狗的图像。

按照这种方式,通过将图像逐渐转化为的另一种物体,这个神经网络就把自己的“想象”,展现在你的面前。

谷歌提出的Deep Dream模型将传统的思路(即给定相同输入只产生一种输出的想法),改变为不断修改输入来获取最佳输出。

更多信息

博客:

http://googleresearch.blogspot.ch/2015/06/inceptionism-going-deeper-into-neural.html

代码:

https://github.com/google/deepdream

2、能模仿人的智能体

这是通过GANs实现模仿学习。不同于传统的奖励机制,某些AI研究人员希望针对自主学习智能体,提出一种全新的方法。

他们将实际的示范数据输入到智能体,然后智能体从中学习并尝试模仿相同的动作。

 一个小人试图模仿人类来自学跑步

在这个模型中,Jonathan Ho和Stefano Ermon提出了一种模仿学习的新方法。一般来说,强化学习通常需要设计一个衡量智能体运动行为的奖励机制。但是,在实际中,可能要经历成本昂贵的试错过程,才能得到合理的前进表现。

然而,在模仿学习中,智能体从示范数据(机器人的远程操作或是人类行为)中学习,消除了设计奖励机制的要求。关于强化学习在这方面的最新研究可移步量子位编译过的“DeepMind智能体自学跑酷:略显智障,结果尚好”。

更多信息

博客:

https://blog.openai.com/generative-models/

代码:

https://github.com/openai/imitation

3、指马为斑马

用图像生成图像,这也是生成网络的一个有趣应用。在实验中,研究人员能够更改视频中的动物种类、图片中的季节类型或是其他类似任务。

这项任务的目标是通过一系列配对图像的训练集,学习从输入图像到输出图像的映射关系。然而,在大多数情况下,不容易获得所需的配对训练数据。

为了克服这个问题,引入了两个逆映射,使得每个映射的输出与另一个映射的输入相同,从而可利用少量数据来建立一个图像间尽可能完整的映射关系(即无监督学习)。

关于这方面工作的详细解读可移步量子位编译过的“带你理解CycleGAN,并用TensorFlow轻松实现”。

以下是这项研究工作的一些实例。

 通过检测视频中正在移动中的野马并把斑马条纹叠加上去,可将野马转换成斑马。

 改变图像中的季节,如把优胜美地的冬天变成夏天,把冬天变成春天,反之亦可。

更多信息

首页:

https://junyanz.github.io/CycleGAN/

代码:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

4、给草图上色

这项任务可根据物体轮廓生成逼真图像。在现实中,图像处理是一项具有挑战性的工作,因为它需要以一种用户可控的方式来修改图像外观,同时保留结果的逼真程度。这需要一定的技巧,一个艺术家可能需要苦练多年才能达到这一高度。


 GANs可利用物体轮廓生成逼真图像

研究人员构建了一个模型,在给定物体轮廓后,它能够识别这个物体并生成该物体的逼真图像。

然而,在伯克利大学的一篇论文中,作者Jun-Yan Zhu提出了一种利用生成对抗网络直接从数据中学习自然图像流形的方法。该模型能自动调整输出以保持所有编辑尽可能地逼真,以及所有操作都是用约束优化来表示的,处理过程近乎实时。

所提出的这种方法可进一步用于图像生成研究,或是基于个人涂鸦完整地产生新奇图像的研究中。

更多信息

论文:

https://arxiv.org/pdf/1609.03552v2.pdf

代码:

https://github.com/junyanz/iGAN

首页:

https://people.eecs.berkeley.edu/~junyanz/projects/gvm/

5、仅根据文本描述来生成图像

能否仅根据文本来自动生成逼真图像?这听起来就十分有趣。

最近,研究人员提出了一种深度卷积生成对抗网络(Deep convolutional generative adversarial networks),可以产生一些高度逼真的图像,但是目前仅针对特定类别,如人脸、唱片封面和房间内饰。

该模型的训练数据为一些文本描述及其对应图像的样本集。当给出任何物体描述时,这个模型会尝试根据描述来生成图像。

 该模型能根据详细的文字描述来生成似乎合理的花鸟图像。

在这项工作中,所构建的模型首先获取关于图像合成的文本描述,其次学习捕捉文本中描述重要视觉信息的特征,然后使用这些特征来合成出能愚弄人的逼真图像。

更多信息

论文:

https://arxiv.org/pdf/1605.05396.pdf

代码:

https://github.com/paarthneekhara/text-to-image

6、通过“好奇心”驱动学习

“好奇心”机制推动了对深层神经网络的探索。在许多现实场景中,对操作者的外部奖励是非常稀疏的或几乎不存在的。因此,由于这种内在特性,操作者处于被动状态,很难进行进化和学习。

在这种情况下,好奇心可以作为一种内在的奖励信号,让操作者去探索未知的新环境,学习一些在以后生活中可能有用的技能。在这些情况下,主动学习者的效果远远好于被动学习者。

在这个模型中,我们将操作者预测自身行为可能导致后果的能力,即预测值和真实值之间的误差称为好奇心(Curiosity)。当然,在此空间中,机器人也可通过程序员建立的奖励机制来学习。

我们可将这个模型类比为小孩的认知过程。如果父母不告诉这个小孩,他并不知道他碰到一个热火炉后会发生什么,但是一旦他这么做了,他就学会下次不这么做,因为触摸到炉子后,他会感到十分疼痛,这就存在前后的因果关系。

“好奇心”机制推动他去探索,同时奖励机制会标记这个行动的好坏。

 在这个游戏中,小蛇正在学习收集能增加奖励的绿球,同时避开能减少奖励的红球,这些是通过“好奇心”机制实现的。

“好奇心”驱动学习有如下三个大概的研究背景:

1).极少的外部奖励,与外部环境的相互作用远远少于期望值;

2).不输入外部奖励,好奇心促使操作者的探索更有效;

3).推广到未接触过的场景(例如同一游戏的新关卡),从早期经历获得知识的操作者比从头开始探索新地点的操作者学习要快得多。

我们在两个游戏环境中评估所提出的方法:毁灭战士(VizDoom)和超级马里奥兄弟(Super Mario Bros)。

更多信息

论文:

https://pathak22.github.io/noreward-rl/resources/icml17.pdf

代码:

https://github.com/pathak22/noreward-rl

首页:

https://pathak22.github.io/noreward-rl/index.html#demoVideo

7、AI设计游戏

这个研究希望使用GANs来设计游戏的用户界面。研究者的思路是,如果能生成一些有说服力的虚拟视频游戏截图,我们可以从中得到一些启发,并将部分图像片材用于设计新游戏。

 真实的游戏背景图像作为输入

 随着GANs的训练,生成的背景图像变得越来越好

 最后得到一些可能对新游戏有启发的场景

此程序的目标是生成一些类似的游戏素材。为了实现这一点,该程序会从现有的各种游戏中收集出一堆图像。然后,程序根据这些打乱的图像小块来生成独特的新图像。这些图像可以被用作设计新游戏的背景。

更多信息

博客:

https://medium.com/@ageitgey/abusing-generative-adversarial-networks-to-make-8-bit-pixel-art-e45d9b96cee7

8、预测视频中可能的发展动向

这个研究是通过场景动力学(Scene Dynamics)来生成视频。

了解物体运动和场景动力学是计算机视觉中的一个核心问题。对于视频识别任务(如动作分类)和视频生成任务(如未来预测),需要构建一个能理解如何进行转换场景的模型。然而,创建动态模型十分具有挑战性,因为物体和场景的变化方式有很多种。


 对火车站、海滩、婴儿和高尔夫球场景下的视频进行未来预测

这是利用一个能从背景中分离前景的模型实现的,它通过强制背景变成静止的,并且该网络能学习到哪些物体正在移动以及哪些处于静止。

这些视频不是真实的,而是通过视频生成模型“想象”得来的。虽然看起来不够逼真,但根据训练时所使用的场景类别,这些生成动作是合理的。

量子位之前也有过类似报道

更多信息

论文:

http://carlvondrick.com/tinyvideo/paper.pdf

代码:

https://github.com/cvondrick/videogan

首页:

http://carlvondrick.com/tinyvideo/

9、生成逼真的假人脸

这个项目叫做“神经人脸(Neural Face)”,是一种能生成逼真脸部图像的人工智能技术。这个项目参考了Facebook公司AI研究团队开发的深度卷积生成对抗网络(DCGAN),这种方法也应用在上面提到的“仅根据文本描述来生成图像”。

 由GANs生成的独特人脸图

该AI团队使用一个向量Z表示每张图像,其中该向量Z由100个[0,1]区间的实数组成。

生成器计算得到脸部图像的分布后,利用高斯分布从向量Z中生成图像。生成器不断学习来生成新的脸部图像,以愚弄鉴别器;反过来,鉴别器在竞争过程中可以更好地区分生成脸部图像和真实脸部图像。

更多信息

代码:

https://github.com/carpedm20/DCGAN-tensorflow

首页:

http://carpedm20.github.io/faces/

10、改变照片中的面部表情和容貌

这个项目是使用GANs对面部图像进行向量运算。在实验中,研究人员通过向系统输入一系列样本图像,来生成具有多种面部表情的人脸图像。例如,它可以将一张非微笑的脸变为微笑的脸、在脸上添加一个物体(如眼镜),或突出某些特征。

 使用算术运算,我们可以将非微笑的人脸图像转换为微笑的人脸图像,或者向一张没有戴眼镜的人脸上添加眼镜。

这种方法的基本原理是,把图像的每一列都表示成一个向量X,把所有X平均后得到均值向量Y。

然后对向量Y执行诸如加法和减法的算术运算,来创建单张图像,即向量Z是通过戴眼镜的男人减去不戴眼镜的男人,再加上不戴眼镜的女人得到的。接着,这个图形向量Z被传输到生成器中,以生成上图中右侧所示的效果,分别是微笑的男人和戴着眼镜的女人。

 将左侧脸部图分步转换成右侧脸部图

我们也可模拟人脸的旋转、缩放和移位等变换,得到逼真的效果。为了实现这个,我们先拍摄了一系列左侧脸部图和右侧脸部图的图像样本。接着,平均所有图像得到一个转动图像向量(Turn Image Vector)。然后,我们通过沿着图像向量的轴线进行插值,将这种“变换”应用于新面孔中。

更多信息

论文:

https://arxiv.org/pdf/1511.06434.pdf

代码:

https://github.com/Newmu/dcgan_code

博客:

https://hackernoon.com/how-do-gans-intuitively-work-2dda07f247a1

结论

GANs的提出对人工智能和机器学习的发展有着十分深远的意义。但是上面提到的这些还只是GANs的早期研究成果。上述的十个例子,看起来十分酷炫,但是仍然只涉及到这个网络理论的一些皮毛。

作为一名工程师,我们应该意识到,它是一种强大的方法,可训练出能完成任何复杂人类任务的神经网络。GANs用实际性能证明,创造力不再是人类独有的特质。

学习资源

如果你想深入学习有关生成模型和DCGAN的知识,这里列出一些资源。

1.50行代码实现生成对抗网络:

https://medium.com/@devnag/generative-adversarial-networks-gans-in-50-lines-of-code-pytorch-e81b79659e3f

2.GANs教程(Ian Goodfellow,NIPS 2016):

https://channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural-Information-Processing-Systems-Conference-NIPS-2016/Generative-Adversarial-Networks

3.GANs入门讲解(5分钟短视频):

https://www.youtube.com/watch?v=deyOX6Mt_As



——  ——


 



新一代技术+商业操作系统:

AI-CPS OS

     

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利AI-CPS OS形成字化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生,在行业、企业和自身三个层面勇立鳌头。


数字化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置。

  • 分辨率革命种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品控制、事件控制和结果控制。

  • 复合不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  • 边界模糊化:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。随着变革范围不断扩大,一切都几乎变得不确定,即使是最精明的领导者也可能失去方向。面对新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能颠覆性的数字化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位。


如果不能在上述三个层面保持领先,领导力将会不断弱化并难以维继: 

  • 重新进行行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  • 重新构建你的企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  • 重新打造新的自己:你需要成为怎样的人?要重塑自己并在数字化时代保有领先地位,你必须如何去做?


子曰:“君子和而不同,小人同而不和。”  《论语·子路》

云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。

在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。

云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


人工智能通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。


新一代信息技术(云计算、大数据、物联网、区块链和人工智能)的商业化落地进度远不及技术其本身的革新来得迅猛,究其原因,技术供应商(乙方)不明确自己的技术可服务于谁,传统企业机构(甲方)不懂如何有效利用新一代信息技术创新商业模式和提升效率。


“产业智能官”,通过甲、乙方价值巨大的云计算、大数据、物联网、区块链和人工智能的论文、研究报告和商业合作项目,面向企业CEO、CDO、CTO和CIO,服务新一代信息技术输出者和新一代信息技术消费者。


助力新一代信息技术公司寻找最有价值的潜在传统客户与商业化落地路径,帮助传统企业选择与开发适合自己的新一代信息技术产品和技术方案,消除新一代信息技术公司与传统企业之间的信息不对称,推动云计算、大数据、物联网、区块链和人工智能的商业化浪潮。


给决策制定者和商业领袖的建议:


  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发人工智能型企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。

重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能正在经历从“概念”到“落地”,最终实现“大范围规模化应用,深刻改变人类生活”的过程。





产业智能官  AI-CPS



新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能),在场景中状态感知-实时分析-自主决策-精准执行-学习提升认知计算机器智能实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链




长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售新模式:案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”






本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
7

相关内容

专知会员服务
107+阅读 · 2020年5月21日
【论文】结构GANs,Structured GANs,
专知会员服务
14+阅读 · 2020年1月16日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
【浙江大学】对抗样本生成技术综述
专知会员服务
91+阅读 · 2020年1月6日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
生成式对抗网络GAN异常检测
专知会员服务
115+阅读 · 2019年10月13日
训练技巧 | 功守道:NLP中的对抗训练 + PyTorch实现
PaperWeekly
12+阅读 · 2019年11月13日
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
从零学习:生成敌对网络(GAN)入门指南
论智
8+阅读 · 2017年12月23日
深度卷积对抗生成网络(DCGAN)实战
全球人工智能
14+阅读 · 2017年11月7日
【教程】详解如何使用Keras实现Wassertein GAN
GAN生成式对抗网络
7+阅读 · 2017年10月5日
【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文
GAN生成式对抗网络
8+阅读 · 2017年8月14日
Seeing What a GAN Cannot Generate
Arxiv
8+阅读 · 2019年10月24日
Arxiv
4+阅读 · 2018年5月21日
Arxiv
6+阅读 · 2018年3月12日
Arxiv
5+阅读 · 2017年4月12日
VIP会员
相关VIP内容
专知会员服务
107+阅读 · 2020年5月21日
【论文】结构GANs,Structured GANs,
专知会员服务
14+阅读 · 2020年1月16日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
【浙江大学】对抗样本生成技术综述
专知会员服务
91+阅读 · 2020年1月6日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
生成式对抗网络GAN异常检测
专知会员服务
115+阅读 · 2019年10月13日
相关资讯
训练技巧 | 功守道:NLP中的对抗训练 + PyTorch实现
PaperWeekly
12+阅读 · 2019年11月13日
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
从零学习:生成敌对网络(GAN)入门指南
论智
8+阅读 · 2017年12月23日
深度卷积对抗生成网络(DCGAN)实战
全球人工智能
14+阅读 · 2017年11月7日
【教程】详解如何使用Keras实现Wassertein GAN
GAN生成式对抗网络
7+阅读 · 2017年10月5日
【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文
GAN生成式对抗网络
8+阅读 · 2017年8月14日
Top
微信扫码咨询专知VIP会员