到底什么是生成对抗式网络GAN 基于生成式对抗网络

   2023-02-09 学习力689
核心提示:转载文章网址:https://www.msra.cn/zh-cn/news/features/gan-20170511,如有侵权,请告知,我立即删除转载的文章。男:哎,你看我给你拍的好不好?女:这是什么鬼,你不能学学XXX的构图吗?男:哦……男:这次你看我拍的行不行?女:你看看你的后期,再看看Y

转载文章网址:https://www.msra.cn/zh-cn/news/features/gan-20170511,如有侵权,请告知,我立即删除转载的文章。

男:哎,你看我给你拍的好不好?

女:这是什么鬼,你不能学学XXX的构图吗?

男:哦

……

男:这次你看我拍的行不行?

女:你看看你的后期,再看看YYY的后期吧,呵呵

男:哦

……

男:这次好点了吧?

女:呵呵,我看你这辈子是学不会摄影了

……

男:这次呢?

女:嗯,我拿去当头像了

上面这段对话讲述了一位“男朋友摄影师”的成长历程。很多人可能会问:这个故事和生成式对抗网络(GAN)有什么关系?其实,只要你能理解这段故事,就可以了解生成式对抗网络的工作原理。

首先,先介绍一下生成模型(generative model),它在机器学习的历史上一直占有举足轻重的地位。当我们拥有大量的数据,例如图像、语音、文本等,如果生成模型可以帮助我们模拟这些高维数据的分布,那么对很多应用将大有裨益。

针对数据量缺乏的场景,生成模型则可以帮助生成数据,提高数据数量,从而利用半监督学习提升学习效率。语言模型(language model)是生成模型被广泛使用的例子之一,通过合理建模,语言模型不仅可以帮助生成语言通顺的句子,还在机器翻译、聊天对话等研究领域有着广泛的辅助应用。

那么,如果有数据集S={x1,…xn},如何建立一个关于这个类型数据的生成模型呢?最简单的方法就是:假设这些数据的分布P{X}服从g(x;θ),在观测数据上通过最大化似然函数得到θ的值,即最大似然法:

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

 

GAN的工作原理是这样的

文章开头描述的场景中有两个参与者,一个是摄影师(男生),一个是摄影师的女朋友(女生)。男生一直试图拍出像众多优秀摄影师一样的好照片,而女生一直以挑剔的眼光找出“自己男朋友”拍的照片和“别人家的男朋友”拍的照片的区别。于是两者的交流过程类似于:男生拍一些照片 ->女生分辨男生拍的照片和自己喜欢的照片的区别->男生根据反馈改进自己的技术,拍新的照片->女生根据新的照片继续提出改进意见->……,这个过程直到均衡出现:即女生不能再分辨出“自己男朋友”拍的照片和“别人家的男朋友”拍的照片的区别。

我们将视线回看到生成模型,以图像生成模型举例。假设我们有一个图片生成模型(generator),它的目标是生成一张真实的图片。与此同时我们有一个图像判别模型(discriminator),它的目标是能够正确判别一张图片是生成出来的还是真实存在的。那么如果我们把刚才的场景映射成图片生成模型和判别模型之间的博弈,就变成了如下模式:生成模型生成一些图片->判别模型学习区分生成的图片和真实图片->生成模型根据判别模型改进自己,生成新的图片->····

这个场景直至生成模型与判别模型无法提高自己——即判别模型无法判断一张图片是生成出来的还是真实的而结束,此时生成模型就会成为一个完美的模型。这种相互学习的过程听起来是不是很有趣?

上述这种博弈式的训练过程,如果采用神经网络作为模型类型,则被称为生成式对抗网络(GAN)用数学语言描述整个博弈过程的话,就是:假设我们的生成模型是g(z),其中z是一个随机噪声,而g将这个随机噪声转化为数据类型x,仍拿图片问题举例,这里g的输出就是一张图片。D是一个判别模型,对任何输入x,D(x)的输出是0-1范围内的一个实数,用来判断这个图片是一个真实图片的概率是多大。令Pr和Pg分别代表真实图像的分布与生成图像的分布,我们判别模型的目标函数如下:

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

类似的生成模型的目标是让判别模型无法区分真实图片与生成图片,那么整个的优化目标函数如下:

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

这个最大最小化目标函数如何进行优化呢?最直观的处理办法就是分别对D和g进行交互迭代,固定g,优化D,一段时间后,固定D再优化g,直到过程收敛。

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

一个简单的例子如下图所示:假设在训练开始时,真实样本分布、生成样本分布以及判别模型分别是图中的黑线、绿线和蓝线。可以看出,在训练开始时,判别模型是无法很好地区分真实样本和生成样本的。接下来当我们固定生成模型,而优化判别模型时,优化结果如第二幅图所示,可以看出,这个时候判别模型已经可以较好的区分生成数据和真实数据了。第三步是固定判别模型,改进生成模型,试图让判别模型无法区分生成图片与真实图片,在这个过程中,可以看出由模型生成的图片分布与真实图片分布更加接近,这样的迭代不断进行,直到最终收敛,生成分布和真实分布重合。

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

以上就是生成式对抗网络的基本核心知识,下面我们看几个在实际中应用的例子。

GAN在图像中的应用——DCGAN

为了方便大家更好地理解生成式对抗网络的工作过程,下面介绍一个GAN的使用场景——在图片中的生成模型DCGAN。

在图像生成过程中,如何设计生成模型和判别模型呢?深度学习里,对图像分类建模,刻画图像不同层次,抽象信息表达的最有效的模型是:CNN (convolutional neural network,卷积神经网络)。

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

CNN是深度神经网络的一种,可以通过卷积层(convolutional layer)提取不同层级的信息,如上图所示。CNN模型以图片作为输入,以图片、类别抽象表达作为输出,如:纹理、形状等等,其实这与人类对图像的认知有相似之处,即:我们对一张照片的理解也是多层次逐渐深入的。

那么生成图像的模型应该是什么样子的呢?想想小时候上美术课,我们会先考虑构图,再勾画轮廓,然后再画细节,最后填充颜色,这事实上也是一个多层级的过程,就像是把图像理解的过程反过来,于是,人们为图像生成设计了一种类似反卷积的结构:Deep convolutional NN for GAN(DCGAN)

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

DCGAN采用一个随机噪声向量作为输入,如高斯噪声。输入通过与CNN类似但是相反的结构,将输入放大成二维数据。通过采用这种结构的生成模型和CNN结构的判别模型,DCGAN在图片生成上可以达到相当可观的效果。如下是一些生成的案例照片。

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

GAN在半监督学习中的应用

再来看一个GAN在半监督学习(semi supervised learning)中的例子。假如我们面对一个多分类的任务,手里只有很少有标注的样本,同时有很多没有标注的样本,怎么能够利用GAN的思路合理使用无标签数据,提高分类性能呢?

在2016NIPS大会上,来自OpenAI的作者提供了如下思路:考虑一个K分类任务,有一个判别模型 G可以帮助生成样本,与此同时,有一个判别模型做一个K+1分类任务,其中新加的类是预测样本是否是由生成模型生成的。跟传统GAN不同,这里我们最终需要的是判别模型,而不是生成模型。

简单而言,目标函数针对不同数据,可以分为两部分。对于有标注的样本,目标是希望判别模型能够正确输出标签。而对于没有标注的生成样本,则是由GAN定义的loss。

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

该作者认为这样处理的好处是可以充分利用未标注数据来学习样本分布,从而辅助监督学习的训练过程。实验结果也显示通过这种处理方法训练出来的判别模型,在合理利用未标注数据方面,有着比其他方法更好的效果。

GAN的改进——WGAN

刚才谈到很多GAN的优点、应用和变种,那么GAN真的是完美无缺的吗?

其实使用过GAN的人应该知道,训练GAN有很多头疼的问题。例如:GAN的训练对超参数特别敏感,需要精心设计。GAN中关于生成模型和判别模型的迭代也很有问题,按照通常理解,如果判别模型训练地很好,应该对生成的提高有很大作用,但实际中恰恰相反,如果将判别模型训练地很充分,生成模型甚至会变差。那么问题出在哪里呢?

在ICLR 2017大会上有一篇口头报告论文提出了这个问题产生的机理和解决办法。问题就出在目标函数的设计上。这篇文章的作者证明,GAN的本质其实是优化真实样本分布和生成样本分布之间的差异,并最小化这个差异。特别需要指出的是,优化的目标函数是两个分布上的Jensen-Shannon距离,但这个距离有这样一个问题,如果两个分布的样本空间并不完全重合,这个距离是无法定义的。

作者接着证明了“真实分布与生成分布的样本空间并不完全重合”是一个极大概率事件,并证明在一些假设条件下,可以从理论层面推导出一些实际中遇到的现象。

既然知道了问题的关键所在,那么应该如何解决问题呢?该文章提出了一种解决方案:使用Wasserstein距离代替Jensen-Shannon距离。并依据Wasserstein距离设计了相应的算法,即WGAN。新的算法与原始GAN相比,参数更加不敏感,训练过程更加平滑。

GAN的未来

无论是无监督学习、半监督学习,GAN给我们提供了一个处理问题的崭新思路,就是把博弈论引入到机器学习过程中来。可以预见,GAN本身的算法以及看问题的角度,必将对未来设计算法、以及解决实际问题产生深远的影响。

那么,GAN当前有哪些急需解决的问题呢:

首先,针对图片生成问题而言,一个至关重要的问题是GAN和其他方法比,到底好多少?GAN框架中的各种衍生算法相互比较,谁好谁坏?很可惜的是,现在没有一个客观的公认标准去衡量不同图片生成算法的差异性。其实这本身就是一个难题,因为人会从多角度判断一张图片是否真实,如图片是否清晰、图片物体线条颜色是否正确、图片里是否有一些反直觉的物体等,只有有了合理的衡量标准,才能科学系统地研究并改进GAN的算法。

其次,GAN是着眼于对所有生成模型的学习,并不局限于图像生成一个应用层面。那么GAN如何运用于其他问题,如机器翻译、对话生成、语音生成等?这些都是有趣、富有挑战的事情。其实还有更有趣的事情,如GAN能不能生成真实场景作为模拟器,帮助训练自动驾驶?GAN能否生成逼真的虚拟视觉给人们提供全新的游戏体验?

也许盗梦空间离我们很近,也许盗梦空间的创造者就是你。

参考文献:

1.Wasserstein GAN,https://arxiv.org/abs/1701.07875

2.Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,https://arxiv.org/abs/1511.06434

3.Improved techniques for training gans,https://arxiv.org/abs/1606.03498

4."Generative Adversarial Networks," NIPS 2016 tutorial by Ian Goodfellow,

http://www.iangoodfellow.com/slides/2016-12-04-NIPS.pdf

 
反对 0举报 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 生成对抗网络--Generative Adversarial Networks (GAN)
    生成对抗网络--Generative Adversarial Network
    @目录一、简介二、原理三、网络结构四、实例:自动生成数字0-9五、训练GAN的技巧六、源码打赏●lan Goodfellow 2014年提出●非监督式学习任务●使用两个深度神经网络: Generator (生成器), Discriminator(判别器)二、原理举一个制造假钞的例子:生成器:制造假
    03-08
  • 0901-生成对抗网络GAN的原理简介 生成对抗网络 gan
    0901-生成对抗网络GAN的原理简介 生成对抗网络
    目录一、GAN 概述二、GAN 的网络结构三、通过一个举例具体化 GAN四、GAN 的设计细节pytorch完整教程目录:https://www.cnblogs.com/nickchen121/p/14662511.html一、GAN 概述GAN(生成对抗网络,Generative Adversarial Networks) 的产生来源于一个灵机一动
    03-08
  • 强化学习在生成对抗网络文本生成中扮演的角色(
    5. 一些细节 + 一些延伸上文所述的,只是 RL + GAN 进行文本生成的基本原理,大家知道,GAN在实际运行过程中任然存在诸多不确定因素,为了尽可能优化 GAN 文本生成的效果,而后发掘更多GAN在NLP领域的潜力,还有一些值得一提的细节。5.1. Reward Baseline:奖
    03-08
  • 科普 | ​生成对抗网络(GAN)的发展史
    科普 | ​生成对抗网络(GAN)的发展史
    来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起了一场革命。这场革命产生了一些重大的技术突破。Ian Goodfellow等人在“Generative Adversarial Networks”中提出了生成对抗网络。
    03-08
  • 生成对抗网络(GAN)的理论与应用完整入门介绍
    生成对抗网络(GAN)的理论与应用完整入门介绍
    本文包含以下内容:1.为什么生成模型值得研究2.生成模型的分类3.GAN相对于其他生成模型相比有什么优势4.GAN基本模型5.改进的GANs6.GAN有哪些应用7.GAN的前沿研究 一、为什么生成模型值得研究主要基于以下几个原因:1.  从生成模型中训练和采样数据能很好的
    03-08
  • 七个不容易被发现的生成对抗网络(GAN)用例
    七个不容易被发现的生成对抗网络(GAN)用例
    像许多追随AI发展的人一样,我无法忽略生成建模的最新进展,尤其是图像生成中生成对抗网络(GAN)的巨大成功。看看下面这些样本:它们与真实照片几乎没有区别! 从2014年到2018年,面部生成的进展也非常显着。这些结果让我感到兴奋,但我内心总是怀疑它们是
    03-08
  • 生成对抗网络GAN详细推导 生成对抗网络详解
    生成对抗网络GAN详细推导 生成对抗网络详解
    转自:https://blog.csdn.net/ch18328071580/article/details/966900161、什么是GAN?生成对抗网络简称GAN,是由两个网络组成的,一个生成器网络和一个判别器网络。这两个网络可以是神经网络(从卷积神经网络、循环神经网络到自编码器)。我们之前学习过的机
    03-08
  • 生成式对抗网络(GAN)学习笔记
    生成式对抗网络(GAN)学习笔记
    图像识别和自然语言处理是目前应用极为广泛的AI技术,这些技术不管是速度还是准确度都已经达到了相当的高度,具体应用例如智能手机的人脸解锁、内置的语音助手。这些技术的实现和发展都离不开神经网络,可是传统的神经网络只能解决关于辨识的问题,并不能够为
    02-10
  • GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络
    GAN相关:PAN(Perceptual Adversarial Network
    GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络Perceptual Adversarial Networks for Image-to-Image TransformationChaoyue Wang et alintro首先介绍pixel-wise的图像任务。指出用传统的l1和l2 norm来进行计算会带来一些问题,比如丢失高频
    02-09
  • 对抗样本(论文解读五):Perceptual-Sensitive GAN for Generating Adversarial Patches
    对抗样本(论文解读五):Perceptual-Sensitive GA
    准备写一个论文学习专栏,先以对抗样本相关为主,后期可能会涉及到目标检测相关领域。内容不是纯翻译,包括自己的一些注解和总结,论文的结构、组织及相关描述,以及一些英语句子和相关工作的摘抄(可以用于相关领域论文的写作及扩展)。平时只是阅读论文,有很
    02-09
点击排行