Generative Adversarial Nets读书笔记

  GAN,生成对抗网络,由Goodfellow提出,是一种模拟生成器,可以用来模拟某种数据的分布。GAN是一种非常棒的思想,借鉴了博弈论的内容,生成两个多层感知器G和D。其中,生成器G用来捕获已知数据的分布,判别器D用来判断一个数据是真实的数据还是G生成的数据。
  那么,如何训练呢?就是让这两个感知器去玩一个对抗游戏,对于D来说,就是要尽可能的判断正确,而对于G来说,就是要增加D犯错误的可能性(也就是G生成的数据要尽可能的像真的,才能骗过D)。
  这实际上是一个最大最小游戏(minmax),而且对于数据空间中的任意的G和D来说,存在着全局最优解(作者在论文中进行了证明)。如果计算能力足够,最终G能够完美模拟真实数据(即: pg 会收敛到 pdata),而D对于任意一个数据的判断结果都为1/2。

理论证明

  我们上面说到,GAN实际上是一个two-player minimax game,用公式表示的话,可以表示成如下形式:


  上述公式存在全局最优解:pg = pdata。作者对这个结论进行了证明,证明过程分为两个部分,首先看第一部分(最大部分):
  1、首先,将V(G,D)展开:

  2、对于一个给定的G,当V(G,D)取得最大值:max V(G,D)时,D(X)的取值为:

  3、将上述得到的max V(G,D)定义为C(G),即:

  接下来看第二部分(即,最小部分):

算法流程

  作者在证明了GAN的理论可行性之后,给出了具体的算法流程,如下:


算法流程证明

  为了说明上述的算法是可收敛的,作者进行了理论上的证明,具体如下:


  另外,作者还在论文中给出了一个GAN的训练示意图,可以清楚的看到整个训练的过程:

  论文中有段话说的挺好,虽然感觉有点啰嗦,但是觉得可以帮助理解GAN:

  翻译一下:在实际使用过程中,我们通过生成网络G(z;\theta_{g})来生成我们需要的数据分布pg(也即是:模拟的真实数据分布pdata)。那么在生成pg的过程中,我们实际上没有直接去优化pg,而是优化的网络G中的参数(也即是:网络中的权重和偏置)。虽然使用多层感知器G会在参数空间中引入一些critical points。但是,多层感知器在实践中的优异性能表明它们是非常有效的model,即使它们缺乏一些理论上的支持(这个也是深度学习被很多人反对和诟病的地方)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GAN,全称为Generative Adversarial Nets,直译为生成式对抗网络。它一方面将产生式模型拉...
    MiracleJQ阅读 3,471评论 0 14
  • 2017.04.14 之所以会失望和焦虑,是因为内心的欲求没有得到满足。这个欲求可大可小,于是失望和焦虑的程...
    星伢阅读 259评论 0 0
  • 上一章 前言:人的一生说长则长,长到有着数十年的岁月;说短则短,短到很多刻骨铭心的记忆都是由几个短暂的画面组成。幼...
    米蓝色的天空阅读 254评论 2 6
  • 财务和会计专业的毕业生, 在食堂吃饭,骄傲地穿着具有专业特性的T恤。 我在其后喝着难喝的免费汤, 我也其后读了会儿...
    布布老师吕布凡阅读 202评论 0 1
  • 二十四个远道而来的客人坐在狭长的宴会厅里等待着,每两个人面前放着一张矮桌,锦绣的带软垫的凳子,五十个或者更多的女奴...
    道天生阅读 243评论 0 1