13.2.1 GAN的特点

GAN从2015年提出至今,短短4年的时间已经发展成为人工智能学界一个热
门的研究方向,吸引了大批研究人员来研究 GAN。除了学术界的理论研究以
外,许多科技公司已经付诸行动,将GAN应用到实际场景中。其中就包括发明
者古德费洛曾经工作过的“谷歌大脑”和“OpenAI”,以及业界知名的“脸
书”和“推特”等公司,它们都在最近两年投入了大量的精力研究GAN,如何
使它更好地生成图片与视频。
究竟是什么原因让一个新兴技术有如此快的发展呢?又是什么原因让GAN
模型在这么短的时间内吸引了这么多人投身其中,并且广受大公司青睐呢?笔
者认为,主要是由于GAN所具有的三点独特的优势。
(1)相比传统机器学习算法,GAN 模型的表现效果更好。因为 GAN 模型
只用到了反向传播,生成器的参数更新不是直接来自数据样本,而是来自判断
器的反向传播。也就是说在GAN模型的设计中,避免了马尔可?链的复杂计算
过程,直接进行采样和推断,因此极大地提高了GAN的应用效率。
(2)GAN 的设计框架十分灵活,各种类型的损失函数都可以被整合到
GAN 模型当中,也就是说在理论上在GAN框架中可以训练任何一种生成器网
络。面对不同的图像任务,我们可以设计不同类型的损失函数,这些损失函数
都可以在GAN的框架?进行学习和优化。
(3)当一个变量的随机发生概率不可计算时,一些依赖于数据自然解释
性的传统算法就不再适用,但是GAN在这种情况?依然可以适应。主要原因是
GAN模型的两个网络互相促进、互相提升的训练机制,这样可以?近不容易计
算的目标函数。
13.2.2 GAN的应用场景
随着 GAN 理论的不断完善,GAN 逐渐展现出了自己非凡的魅力。它的出
现满足了许多领域的研究和应用需求, 同时为这些领域注入了新的发展动力。
GAN 虽然是以对抗生成的方式在训练两个模型,但归根结?它还是一个生成式
模型,因此最直接的应用还是模拟真实数据分布的训练与生成,可以用于生成
图像、视频甚至自然语句和音乐等内容。
在很多情况下我们难以获取到大量的训练数据供模型使用。由于对抗生
成这种独特的机制,GAN可以解决传统机器学习算法经常面临的数据不足问题
。因此它常应用在许多无监督学习的场景中。随着研究的深入,目前已经有研
究人员成功地将其应用在强化学习领域以提升学习效率。这也是为什么 GAN
如此受欢迎的原因之一,它的灵活性和拓展性能够帮助我们解决很多领域的问
题。如今GAN已经在很多应用领域大放异彩,并且由此衍生了一些非常有想象
力的场景。
1.提高图像分辨率
在众多应用领域中,有一个非常有趣的应用是利用GAN模型提升图像的分
辨率。将一个低分辨率的模糊图像输入模型中,通过某种变换得到一个高分辨
率、带有丰富细节的清?图像,如图13-11所示。

在这个GAN模型中,生成模型将一张模糊的低分辨率图像作为输入,并输
出一张高分辨率的清?图像。而判别模型的任务是判断这张输入图像究竟
是“真实”的高分辨率图像还是由低分辨率图像“转换”而来的高分辨率图
像。这种方式大大简化了提升分辨率的学习过程,因为传统算法要提升图像的
分辨率,需要对一些高频细节进行建模,而GAN可以用判别模型自动训练提升
图像质量。与以往基于深度学习的模型获得的图像结果相比,我们可以看到,
GAN 的结果图像能够提供更丰富的细节。这也是GAN图像生成的一个显著优
点,即能够提供更丰富的数据细节。
2.图像风格转化
还记得本章一开始提到的 Prisma 吗?这个将普通图像转换为艺术化图像
的产品就是使用GAN实现的。一般的GAN生成模型的输入是一个随机向量,输出
是图像,而Prisma的生成器输入是图像,输出是转换后的图像,如图13-12所
示。

Prisma正是通过 GAN 模型生成了各种风格各异的图像。如果增加模型的
训练时间,GAN 不仅能认出图片中的阴影,给其涂上不同的颜色,甚至能以印
象派艺术家的风格完成这些生成任务。当生成网络能够生成更有细节感、更强
的光影关系时,没准将来能够用计算机创造一个新的绘画流派。
3.侧脸变正脸
网络上流传一个段子,产品经理觉得设计师选的明星素材正脸不太好,希
望让设计师把正脸旋转成侧脸,然后被设计师臭骂了一顿。如今使用GAN技
术,有望实现根据一张照片合成出不同角度的人脸图像,如图13-13所示。

在GAN中可以借助人脸对齐、姿态转换等辅助手段提高人脸识别的精度,
并且可以根据半边人脸图片生成整张人脸的前向图片,这对提升人脸识别率有
很大的辅助作用。
13.3 生成对抗网络的提升
13.3.1 强强联合的DCGAN
在关于GAN的第一篇论文诞生后的一年时间里,训练GAN是一件非常困难的
事情,因为模型很不稳定,需要进行大量调整才能工作。因此很多工程师都在
想办法优化训练过程。
我们都知道,对于图像处理问题,卷积神经网络的表现肯定比简单的全连
接神经网络更加优秀。因此在 2015 年,来自富兰克林奥林工程学院的艾力
克・拉德福德(Alec Rad?ord)等人联合发表了一篇论文,该论文首次将生成
对抗网络与卷积神经网络技术两者相结合,形成了一个新的DCGAN(Deep
Convolutional GAN)模型,即卷积生成对抗网络。DCGAN是继GAN之后比较好
的改进模型,主要的改进是在网络结构上。如今,它的网络结构已经被广泛使
用,同时DCGAN简化了调参方式,极大地提升了GAN训练的稳定性以及生成结果
的质量。
DCGAN的原理和GAN基本上一样,不同的是,DCGAN将GAN的生成网络和判别
网络都换成了卷积神经网络。DCGAN比GAN更先进的地方是,在基本架构中使用
了“反卷积”层。上一章曾讲述过,传统CNN算法通过卷积将图像的尺寸压
缩,使其变得越来越小,而反卷积是将初始输入的小数据变得越来越大(注
意,这里的反卷积指的并不是CNN的逆向操作,而是一种新的计算方
式)。“反卷积”这个名字是怎么来的呢?实际上,反卷积存在于卷积的反向
传播中,其中反向传播的卷积核矩阵是前向传播的转置,所以又可称其为“运
输卷积”。只不过我们把反向传播的操作拿到了前向传播中来做,就产生了所
谓的“反卷积”一说。值得注意的是,运输卷积只能还原信号的大小,不能还
原其值,因此不是真正的逆操作。
反卷积的原理如图13-14所示。图中?部的深色格子为原图像;白色格子
为对应卷积所增加的“填充格子”,通常全部设置为 0;灰色格子是卷积后生
成的图像。图中的运行方式是,从卷积核右?角与图片?上角重叠开始进行卷
积,每次滑动前进1步,卷积核的中心元素对应卷积后图像的像素点。从图中
可以看到,3×3 的输入图片,经过3×3的卷积核,可产生5×5的卷积结果。

相比传统的CNN,DCGAN为了适应GAN做了两方面的改进:一方面是去掉了
生成器中所有的池化层;另一方面是采用批归一化的方式。去掉池化层后,用
反卷积层进行采样,同时去掉全连接层,使网络变为全卷积层结构。这么做的
目的是减少特征空间的维度。归一化特征向量,从而显著减少多层之间的协调
更新问题。这有助于稳定学习,并且能够处理糟糕的权重初始化问题。不得不
说这两个调整是DCGAN获得成功的关键,设计者非常聪明地将两种原本不相关
的技术结合在一起,这两个“微创新”起到了决定性的作用。
13.3.2 通过BEGAN化繁为简
边界均衡生成对抗网络(Boundary Equilibrium GAN,BEGAN)是2017年
上半年出现的一种GAN改进算法,对于生成器生成的图像质量到?好不好,该
算法提出了一种新的评价方式。这种 GAN 模型即使用很简单的网络,不用批
量标准化数据,不丢弃神经元,不需要反卷积操作,也能实现很好的训练效
果,完全不用担心模型崩溃与训练不平衡的问题。使用BEGAN模型,我们能够
生成几乎以假乱真的图片,如图13-15所示。

以往的GAN模型及其变种都是以生成器生成的数据分布尽可能接近真实数
据的分布为目标。当生成的数据分布与真实数据分布很接近的时候,就能确定
生成器经过训练可以生成与真实数据分布相同的样本,也就是说已经能够生成
以假乱真的图片。基于这样的出发点,研究人员设计了各种损失函数让生成器
生成的数据分布尽可能接近真实数据分布。通常情况?,两张图片的数据分布
越相近,这两张图片是同一张的概率就越大,也就是说此时生成器已经被训练
出足够的生成能力。
BEGAN算法改变了这种评估概率分布的方法,它不会直接评估生成分布与
真实分布之间的差距,而是评估这两个分布的误差之间的差距,换句话说只要
误差分布相近,也可以认为这两张图片是同一张图片的概率很高。
基于这样的设想,BEGAN模型将一个自编码器作为分类器,通过基于
Wasserstein距离的损失来匹配自编码器的损失分布。保持原有的神经网络结
构,在训练中添加额外的均衡过程以平衡生成器与分类器。
Wasserstein距离又叫Earth-Mover距离(EM距离),用于衡量两个分布之
间的距离。有了这样一个衡量两个分布之间距离的公式,我们就可以计算判别
器中真实数据与生成数据损失分布之间的距离。对于两个正态分布来说,二者
间的Wasserstein 距离计算公式为(假设两个损失分布都服从正态分布)

其中,m 1 、m 2 为两个正态分布均值,c 1 、c 2 为方差。根据GAN对抗性的
原则,判别器的目标是拉大两个分布的距离,也就是最大化W,而生成器的目
标则是要最小化W。
13.3.3 对GAN的更多期待
来自“脸书”人工智能研究院的院长扬·勒丘恩(Yann LeCun)教授曾经
有一个很著名的比喻,他说:“如果人工智能是一块蛋糕,那么强化学习是蛋
糕上的一粒樱桃,有监督学习是外面的一层糖霜,无监督、预测学习则是蛋糕
胚。目前我们只知道如何制作糖霜和樱桃,?不知道如何制作蛋糕胚。”
他认为目前对于人工智能的研究还不够深入。有监督学习,也就是大部分
传统算法都还漂浮在冰山之上的海平面上,虽然我们一直在研究,但始终只是
窥得冰山一角,还有更大一部分冰山在海里面等待我们去探索,这里的冰山指
的就是半监督学习甚至无监督学习,因为这才是真正让计算机学会“学习”的
方式。而生成对抗网络则为窥探海平面以?的冰山提供了富有潜力的解决方
案。尽管目前GAN还有很多不尽如人意的地方,但是当前的研究让人看到了充
满想象力的前景,看到了GAN在无监督学习上的应用和提供有效解决方案的可
能性。
为什么说对GAN充满想象力呢?因为在传统的机器学习算法中,目标函数
和约束条件都是算法固定的优化方向,我们是以人类思考的方式构造出这样一
套理论,构造出“理想函数”的概念。但是GAN的机制打破了传统机器学习的
常规,真正做到让模型自学习。对于这种思维模式的改变,也难怪勒丘恩教授
会盛赞说,“ GAN 为创建无监督学习模型提供了强有力的算法框架,有望帮
助我们为人工智能加入常识。我认为,沿着这条路走?去,开发出更具有智慧
的人工智能是有可能的。”

人工智能知识全面讲解:生成对抗网络的应用相关推荐

  1. 沐神点赞!同济子豪兄精读AI经典论文,包括图像分类、目标检测、生成对抗网络、轻量化卷积神经网络等领域...

    读研/读博的你,是不是符合: 毕设/研一/博一科研小白刚进课题组,不知道如何写开题报告和综述? 前沿顶会.期刊论文.综述文献浩如烟海,不知道学习路径,无从下手? 导师放养,既不懂也不管,师兄各忙各的, ...

  2. 【通知】《生成对抗网络GAN原理与实践》代码开源,勘误汇总!

    有三上个月出版了新书<生成对抗网络GAN:原理与实践>,Generative Adversarial Networks(中文名生成对抗网络,简称GAN)自从被提出来后,其发展就非常迅猛,几 ...

  3. 终于有人把生成对抗网络(GAN)讲明白了

    导读:简而言之,机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术,而本文的主角--生成对抗网络则是深度学习中的一种分类. 作者:史丹青 来源:大数据DT(ID:hzdashuju) ...

  4. 【CV秋季划】生成对抗网络GAN有哪些研究和应用,如何循序渐进地学习好(2022年言有三一对一辅导)?...

    GAN自从被提出来后,技术发展就非常迅猛,已经被落地于众多的方向,其应用涉及图像与视频生成,数据仿真与增强,各种各样的图像风格化任务,人脸与人体图像编辑,图像质量提升. 那我们究竟如何去长期学好相关的 ...

  5. 生成对抗网络(GAN)应用于图像分类

    近年来,深度学习技术被广泛应用于各类数据处理任务中,比如图像.语音和文本.而生成对抗网络(GAN)和强化学习(RL)已经成为了深度学习框架中的两颗"明珠".强化学习主要用于决策问题 ...

  6. 【机器学习】生成对抗网络(GAN)

    本文为机器学习的学习总结,讲解生成对抗网络(GAN).欢迎在评论区与我交流

  7. 人工智能知识全面讲解:初识生成对抗网络

    13.1.1 猫和老鼠的游戏 在2016年7月,一款国外的照片处理软件火遍了全世界,同时也引爆了国 人的朋友圈.这款产品就是Prisma.Prisma可以按照你提供的图片内容和指定 的风格,生成一副指 ...

  8. [Python人工智能] 二十九.什么是生成对抗网络GAN?基础原理和代码普及(1)

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了Keras实现经典的深度学习文本分类算法,包括LSTM.BiLSTM.BiLSTM+Attention和CN ...

  9. [人工智能-深度学习-59]:生成对抗网络GAN - 基本原理(图解、详解、通俗易懂)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

最新文章

  1. django 中实现文件下载的3种方式
  2. Github Pages 搭建网站
  3. [leetcode] 21.合并两个有序链表
  4. 表格数据画图神器-pandas画图操作
  5. Introduction to Real-Time Kernels
  6. AI CC2017安装后,安装目录里找不到amtlib.dll文件的问题
  7. 二元logistic模型案例_二元Logistic模型(上)
  8. Apache2 Linux 的安装与介绍
  9. 电脑alt+tap切换屏幕卡顿解决
  10. 案例1:文件系统ACLs
  11. 谷歌AI论文BERT双向编码器表征模型:机器阅读理解NLP基准11种最优(公号回复“谷歌BERT论文”下载彩标PDF论文)
  12. ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
  13. itextpdf 5.5.6版本生成pdf文件 字体设置三种方式
  14. 华为云 —— 购买与登录弹性云服务器ECS
  15. 安卓开发——ProgressBar反向进度条(进度条从右向左走)
  16. 读者-写者问题代码(带注释)个人学习笔记
  17. 无线交换机故障分析排查
  18. android 汽车版本,安卓系统不断推陈出新 为何安卓车机仍固守2.3版本?
  19. 【布隆过滤器】世界上大概有1 亿种小蛋糕,客户康宝要求这辈子不吃重复的小蛋糕。
  20. 小米手机退出app后收不到极光推送消息

热门文章

  1. yoast seo_Yoast SEO vs All in a SEO Pack –最好的WordPress SEO插件是哪个?
  2. 一个公司有m名推销员,他们都推销n种不同的产品。其中m>=l;m<=100,n>=l,n<=10。每天,每个推销员都要为售出的每一种产品交上来一个卡片。
  3. npm login报错:npm notice Beginning October 4, 2021, all connections to the npm registry.......
  4. 康拓普:大屏、VR、网页…..数据可视化有哪些应用场景?
  5. starrocker关联hive外表
  6. SQL语句中,有了别名不能再用原名,需要使用别名
  7. Android应用内换肤
  8. secret学习笔记
  9. 什么是第三方支付公司?
  10. Cloudera Manager —— 端到端的企业数据中心管理工具