科普 | 生成对抗网络(GAN)的发展史
来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy
五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起了一场革命。这场革命产生了一些重大的技术突破。Ian Goodfellow等人在“Generative Adversarial Networks”中提出了生成对抗网络。学术界和工业界都开始接受并欢迎GAN的到来。GAN的崛起不可避免。
首先,GAN最厉害的地方是它的学习性质是无监督的。GAN也不需要标记数据,这使GAN功能强大,因为数据标记的工作非常枯燥。
其次,GAN的潜在用例使它成为交谈的中心。它可以生成高质量的图像,图片增强,从文本生成图像,将图像从一个域转换为另一个域,随年龄增长改变脸部外观等等。这个名单是远远不够的。我们将在本文中介绍一些流行的GAN架构。
第三,围绕GAN不断的研究是如此令人着迷,以至于它吸引了其他所有行业的注意力。我们将在本文后面部分讨论重大技术突破。
诞生
生成对抗网络(GAN)具有两个网络,生成器网络和鉴别器网络。这两个网络可以是神经网络,从卷积神经网络,递归神经网络到自动编码器。在这种配置中,两个网络参与竞争游戏并试图相互超越,同时帮助他们完成自己的任务。经过数千次迭代后,如果一切顺利,生成器网络可以完美生成逼真的虚假图像,并且鉴别器网络可以很好地判断的图像是真实的还是虚假的。换句话说,生成器网络将来自潜在空间的随机噪声矢量(不是来自潜在空间的所有GAN样本)变换为真实数据集的样本。GAN的训练是一个非常直观的过程。
GAN具有大量的实际用例,如图像生成,艺术品生成,音乐生成和视频生成。此外,它还可以提高图像质量,图像风格化或着色,面部生成以及其他更多有趣的任务。
图片来源:O'Reilly
上图表示了一般的GAN网络的架构。首先,从潜在空间采样D维的噪声矢量并发送到生成器网络。生成器网络将该噪声矢量转换为图像。然后将生成的图像发送到鉴别器网络以进行分类。鉴别器网络不断地从真实数据集和由发生器网络生成的图像获得图像。它的工作是区分真实和虚假的图像。所有GAN架构都遵循这样的设计。
青春期
在青春期,GAN产生了许多流行的架构,如DCGAN,StyleGAN,BigGAN,StackGAN,Pix2pix,Age-cGAN,CycleGAN等。这些结构的结果都非常令人满意。下面详细讨论这些GAN架构。
DCGAN
这是第一次在GAN中使用卷积神经网络并取得了非常好的结果。之前,CNN在计算机视觉方面取得了前所未有的成果。但在GAN中还没有开始应用CNNs。Alec Radford,Luke Metz,Soumith Chintala等人“Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks”提出了DCGAN。这是GAN研究的一个重要里程碑,因为它提出了一个重要的架构变化来解决训练不稳定,模式崩溃和内部协变量转换等问题。从那时起,基于DCGAN的架构就被应用到了许多GAN架构。
来源:https://arxiv.org/pdf/1511.06434.pdf
BigGAN
这是GAN中用于图像生成的最新进展。一个谷歌的实习生和谷歌DeepMind部门的两名研究人员发表了一篇“Large Scale GAN Training for High Fidelity Natural Image Synthesis”的论文。本文是来自Heriot-Watt大学的Andrew Brock与来自DeepMind的Jeff Donahue和Karen Simonyan合作的实习项目。
来源:https://arxiv.org/pdf/1809.11096.pdf
这些图像都是由BigGAN生成,正如你看到的,图像的质量足以以假乱真。这是GAN首次生成具有高保真度和低品种差距的图像。之前的最高初始得分为52.52,BigGAN的初始得分为166.3,比现有技术(SOTA)好100%。此外,他们将Frechet初始距离(FID)得分从18.65提高到9.6。这些都是非常令人印象深刻的结果。它最重要的改进是对生成器的正交正则化。
来源:https://arxiv.org/pdf/1809.11096.pdf
StyleGAN
StyleGAN是GAN研究领域的另一项重大突破。StyleGAN由Nvidia在题为“A Style-Based Generator Architecture for Generative Adversarial Network”的论文中介绍。
来源:https://medium.com/syncedreview/gan-2-0-nvidias-hyperrealistic-face-generator-e3439d33ebaf
StyleGAN在面部生成任务中创造了新记录。算法的核心是风格转移技术或风格混合。除了生成面部外,它还可以生成高质量的汽车,卧室等图像。这是GANs领域的另一项重大改进,也是深度学习研究人员的灵感来源。
StackGAN
StackJANs由Han Zhang,Tao Xu,Hongsheng Li还有其他人在题为StackGAN: Text to Photo-Realistic Image Synthesis with Stacked Generative Adversarial Networks的论文中提出。他们使用StackGAN来探索文本到图像的合成,得到了非常好的结果。一个StackGAN由一对网络组成,当提供文本描述时,可以生成逼真的图像。
来源:https://arxiv.org/pdf/1612.03242.pdf
正如上图所看到的,提供文本描述时,StackGAN生成了逼真的鸟类图像。最重要的是生成的图像正类似于所提供的文本。文本到图像合成有许多实际应用,例如从一段文本描述中生成图像,将文本形式的故事转换为漫画,创建文本描述的内部表现。
CycleGAN
CycleGAN有一些非常有趣的用例,例如将照片转换为绘画,将夏季拍摄的照片转换为冬季拍摄的照片,或将马的照片转换为斑马照片,或者相反。CycleGANs 由Jun-Yan Zhu,Taesung Park,Phillip Isola和Alexei A. Efros在题为“Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”的论文中提出。CycleGAN用于不同的图像到图像翻译。
来源:https://arxiv.org/pdf/1703.10593.pdf
Pix2pix
对于图像到图像的翻译任务,pix2pix也显示出了令人印象深刻的结果。无论是将夜间图像转换为白天的图像还是给黑白图像着色,或者将草图转换为逼真的照片等等,Pix2pix在这些例子中都表现非常出色。pix2pix网络由Phillip Isola,Jun-Yan Zhu,Tinghui Zhou和Alexei A. Efros在他们的题为“Image-to-Image Translation with Conditional Adversarial Networks”的论文中提出。
来源:https://phillipi.github.io/pix2pix/
这是一个交互式的演示,能够从草图生成真实图像。
Age-cGAN(Age Conditional Generative Adversarial Networks)
面部老化有许多行业用例,包括跨年龄人脸识别,寻找失踪儿童,或者用于娱乐。Grigory Antipov,Moez Baccouche和Jean-Luc Dugelay在他们的题为“Face Aging with Conditional Generative Adversarial Networks”的论文中提出了用条件GAN进行面部老化。
1_p1VK22zXlezG-T712nEhbQ
该图显示了Age-cGAN是怎样从原来的年龄转换为目标年龄的。
这些都是非常流行的GAN架构。除了这些,还有数以千计的GAN架构。这取决于哪种架构适合您的需求。
崛起
正如着名理论物理学家理查德费曼所说:
“What I can’t create, I don’t understand”
GAN背后的思想是训练已知数据的网络。GAN开始了解数据,通过这种了解,GAN开始创建逼真的图像。
Edmond de Belamy
由GAN创作的Edmond de Belamy在佳士得拍卖会上以432,500美元的价格成交。这是GAN发展的重要一步,全世界第一次目睹了GAN及其潜力。在此之前,GAN主要局限于研究实验室,并由机器学习工程师使用。这一行为使GAN成为面向公众的一个入口。
这个人并不存在
您可能会熟悉 https://thispersondoesnotexist.com 这个网站。它是由优步的软件工程师Philip Wan创建。他根据NVIDIA发布的名为StyleGAN的代码创建了这个网站。每当你刷新时,它都会生成一个新的不存在的人脸,看起来无法判断它是否是假的。这项技术有可能创造一个完全的虚拟世界。
来源:https://thispersondoesnotexist.com/
实在是太棒了!
Deep Fakes
DeepFakes是另一个可怕的具有破坏性的技术。基于GAN,可以将人脸粘贴到视频中的目标人物上。人们找到这项技术的缺点,但对于AI研究人员来说,这是一个重大突破。这项技术有可能在电影行业节省数百万美元,在那里需要数小时的编辑来改变面对的特技演员。
这项技术很可怕,但我们也可以把他用在对社会好的一面。
来源:https://thenextweb.com/artificial-intelligence/2018/02/21/deepfakes-algorithm-nails-donald-trump-in-most-convincing-fake-yet/
未来发展
StyleGAN目前是GitHub上第六热门的python项目。到目前为止提出的GAN的数量已经达到了数千。这个GitHub仓库有一个受欢迎的GAN列表及论文:https://github.com/hindupuravinash/the-gan-zoo
现在
GAN已被用于增强游戏图形。我对GAN的这种用例感到非常兴奋。最近,NVIDIA发布了一个视频,其中展示了如何使用GAN对视频中的环境进行游戏化。
结论
在本文中,我们看到了GAN如何发展壮大并成为一种全球现象。我希望在未来几年GAN达到民主化。在本文中,我们从GAN的诞生开始,然后了解了一些流行的GAN架构,最后,我们看到了GAN的崛起。当我看到关于GAN的负面新闻时感到一些困惑。我相信,我们有责任让每个人都了解GAN带来的影响,以及我们如何在伦理道德上尽可能使用GAN。
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/
科普 | 生成对抗网络(GAN)的发展史的更多相关文章
- 用MXNet实现mnist的生成对抗网络(GAN)
用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...
- TensorFlow从1到2(十二)生成对抗网络GAN和图片自动生成
生成对抗网络的概念 上一篇中介绍的VAE自动编码器具备了一定程度的创造特征,能够"无中生有"的由一组随机数向量生成手写字符的图片. 这个"创造能力"我们在模型中 ...
- 人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN
[说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]本文衔接上一个随笔:人工智能中小样本问题相关的系列模型演变及学习 ...
- 生成对抗网络GAN介绍
GAN原理 生成对抗网络GAN由生成器和判别器两部分组成: 判别器是常规的神经网络分类器,一半时间判别器接收来自训练数据中的真实图像,另一半时间收到来自生成器中的虚假图像.训练判别器使得对于真实图像, ...
- 生成对抗网络(GAN)
基本思想 GAN全称生成对抗网络,是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的. 譬如:我要升职加薪,你领导力还不行,我现在领导力有了要升职加薪,你执行力还不行,我现在执行力有了要升职加薪 ...
- 深度学习-生成对抗网络GAN笔记
生成对抗网络(GAN)由2个重要的部分构成: 生成器G(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器 判别器D(Discriminator):判断这张图像是真实的 ...
- 深度学习框架PyTorch一书的学习-第七章-生成对抗网络(GAN)
参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter7-GAN生成动漫头像 GAN解决了非监督学习中的著名问题:给定一批样本,训 ...
- 利用tensorflow训练简单的生成对抗网络GAN
对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的. 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(di ...
- 原始的生成对抗网络GAN
论文地址:https://arxiv.org/pdf/1406.2661.pdf 1.简介: GAN的两个模型 判别模型:就是图中右半部分的网络,直观来看就是一个简单的神经网络结构,输入就是一副图像, ...
随机推荐
- windows 10 右键菜单注册表位置
1. 查找 1.1. 打开注册表 # 1. 使用快捷键打开 “运行” win + r # 2. 在 “运行” 中输入 regedit # 3. 回车 1.2. 点击 查找 # 1. 方法 1 : 点击 ...
- property 属性
#propery 属性"""内置装饰器函数,只在面向对象中使用."""#计算圆的面积,圆的周长 from math import pi cl ...
- 2018 C笔试题
⼀.单项选择题(15⼩题,每⼩题2分,共30分) 解析:[传值调用],实参和形参之间传递的是“地址” 解析:[优先级]:算术运算符 > 关系运算符 > 赋值运算符 [结核性 ...
- 大厂面试题:集群部署时的分布式 session 如何实现?
面试官心理分析 面试官问了你一堆 dubbo 是怎么玩儿的,你会玩儿 dubbo 就可以把单块系统弄成分布式系统,然后分布式之后接踵而来的就是一堆问题,最大的问题就是分布式事务.接口幂等性.分布式锁, ...
- 从头认识js-基本概念(关键字,保留字,数据类型)
语法 ECMAScript的语法大量借鉴了C及其他类C语言(如Java和Perl)的语法.因此,熟悉这些语言的开发人员在接受ECMSAScript更加宽松的语法时,一定会有一种轻松自在的感觉. 区分大 ...
- disruptor 入门 一
一.disruptor基本概念 https://www.cnblogs.com/haiq/p/4112689.html 二.disruptor入门程序 导入disruptor包 <depende ...
- 这样学习Servlet,会事半功倍!!
前言 工作已经有一段时间了,如果让我重新学Servlet,我会怎么学呢?下面抛出两个常见的问题,我分开来解答 2020年了,还需要学Servlet吗? Servlet的学习路线(学习重点) 一.202 ...
- Ubuntu 16 编译装python2.7
Ubuntu 16自带 python3 ,有很多库无法使用,决定装 python2.7 试了试,好像 apt-get 装不上. 使用源码,编译安装. wget https://www.python.o ...
- mysql中实现更新数据+1,再次更新数据-1
$sql="update article set comment=comment^1 where a_id=2"; 这条语句你会发现当你更新comment字段时为1,再次更新时为0 ...
- 使用JavaScript策略模式校验表单
表单校验 Web项目中,登录,注册等等功能都需要表单提交,当把用户的数据提交给后台之前,前端一般要做一些力所能及的校验,比如是否填写,填写的长度,密码是否符合规范等等,前端校验可以避免提交不合规范的表 ...