原文地址:http://blog.csdn.net/stdcoutzyx/article/details/53151038

引入

Discriminative Model的繁荣发展

最近,深度学习在很多领域的突破性进展想必不用我多说了。但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的地方貌似都是discriminative的模型。

所谓的discriminative可以简单的认为是分类问题,比如给一张图片,判断这张图片上有什么动物;再比如给定一段语音,判断这段语音所对应的文字。

在discriminative的模型上,有很多行之有效的方法,如反向传播,dropout,piecewise linear units等技术。

Generative Model

其实,这篇论文很早之前就看了,但我对生成模型在AI里的地位一直不能特别直观的感受。最近才慢慢的理解。

从细节上来看,生成模型可以做一些无中生有的事情。比如图片的高清化,遮住图片的一部分去修复,再或者画了一幅人脸的肖像轮廓,将其渲染成栩栩如生的照片等等。

再提高一层,生成模型的终极是创造,通过发现数据里的规律来生产一些东西,这就和真正的人工智能对应起来了。想想一个人,他可以通过看,听,闻去感知这世界,这是所谓的Discriminative,他也可以说,画,想一些新的事情,这就是创造。所以,生成模型我认为是AI在识别任务发展相当成熟之后的AI发展的又一个阶段。

借东风

但是现在,生成模型还没有体会到深度学习的利好,在Discriminative模型上,成果如雨后春笋,但在生成模型上,却并非如此。原因如下:

那么,是不是生成模型就借不了深度学习发展的东风了呢?我只能说,有的时候,不得不曲线救国。

对抗网络

基本思想

假设有一种概率分布M,它相对于我们是一个黑盒子。为了了解这个黑盒子中的东西是什么,我们构建了两个东西G和D,G是另一种我们完全知道的概率分布,D用来区分一个事件是由黑盒子中那个不知道的东西产生的还是由我们自己设的G产生的。

不断的调整G和D,直到D不能把事件区分出来为止。在调整过程中,需要:

当D无法区分出事件的来源的时候,可以认为,G和M是一样的。从而,我们就了解到了黑盒子中的东西。

简单的例子说明

 

且看上面四张图a,b,c,d. 黑色的点状线代表M所产生的一些数据,红色的线代表我们自己模拟的分布G,蓝色的线代表着分类模型D。

a图表示初始状态,b图表示,保持G不动,优化D,直到分类的准确率最高。 
c图表示保持D不动,优化G,直到混淆程度最高。d图表示,多次迭代后,终于使得G能够完全你和M产生的数据,从而认为,G就是M。

形式化

将上述例子所描述的过程公式化,得到如上公式。公式中D(x)表示x属于分布M的概率,因而,优化D的时候就是让V(D,G)最大,优化G的时候就是让V(D,G)最小。

其中,x~pdata(x) 表示x取自真正的分布。 
z~pz(z) 表示z取自我们模拟的分布。G表示生成模型,D表示分类模型。

上述即是G和D的训练过程。其中在每次迭代中,梯度下降K次来训练D,然后梯度下降一次来训练G,之所以这样做,是因为D的训练是一个非常耗时的操作,且在有限的集合上,训练次数过多容易过拟合。

证明

这篇论文中的思想就如上所述,但是有意思的是还有两个证明来从理论上论证了对抗网络的合理性。

命题一

第一个证明是,当G固定的时候,D会有唯一的最优解。真实描述如下:

证明如下:

得证!

定理一

根据证明一,可以对V(G,D)中最大化D的步骤进行变换。

从而得到定理

直接带入pg=pdata可得-log4,当入pg!=pdata时,得到

命题二

命题二原文如下:

这个定理的证明需要用到凸函数的某个似乎是很明显的定理,即,通过凸函数的上确界的次导数可以找到函数在最大值时的导数。这个理论应用到G和D中就是在G不变时,D是拥有唯一的最优值的凸函数,因而可以得到。 但因为我对凸优化理论尚不熟悉,所以没有理解透彻这个地方。

实验

早期的训练中,D可以很轻松的分辨出来G和M中不同的样本,从而会饱和,所以用logD(G(z))来代替log(1-D(G(z)),这样可以为早期的学习提供更加好的梯度。

实验就是去拟合Guassian Parzen Windown,具体细节略过。结果如下:

优势和劣势

优势:

劣势:

各种生成模型的对比如下:

参考

对抗生成网络(Generative Adversarial Net)相关推荐

  1. 与判别网络对抗的生成网络 (Generative Adversarial Nets)

    Generative Adversarial Nets (GAN) 主线为 Ian J. Goodfellow 的论文 ("Generative Adversarial Nets" ...

  2. 生成对抗网络 – Generative Adversarial Networks | GAN

    生成对抗网络 – Generative Adversarial Networks | GAN 生成对抗网络 – GAN 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频.我们手 ...

  3. 生成对抗网络(Generative Adversarial Networks)

    参考  生成对抗网络(Generative Adversarial Networks) - 云+社区 - 腾讯云 目录 一.生成对抗网络原理 1.模型的起源 2.模型的结构和损失函数 二.对GAN的改 ...

  4. 一文读懂对抗生成网络的3种模型

    https://www.toutiao.com/i6635851641293636109/ 2018-12-17 14:53:28 基于对抗生成网络技术的在线工具edges2cats, 可以为简笔画涂 ...

  5. 图像生成对抗生成网络gan_GAN生成汽车图像

    图像生成对抗生成网络gan Hello there! This is my story of making a GAN that would generate images of cars, with ...

  6. 对抗生成网络原理和作用

    我们通过一个demo(gan.py )来讲解对抗生成网络的原理和作用 1.创建真实数据 2.使用GAN训练噪声数据 3.通过1200次的训练使得生成的数据的分布跟真实数据的分布差不多 4.通过debu ...

  7. GAN 对抗生成网络代码实现

    作报告写了ppt,这里po上 更完整的介绍关注专栏生成对抗网络Generative Adversarial Network 本篇的同名博客[生成对抗网络GAN入门指南](3)GAN的工程实践及基础代码 ...

  8. 图像生成对抗生成网络gan_生成对抗网络(GAN)的直观介绍

    图像生成对抗生成网络gan by Thalles Silva 由Thalles Silva 暖身 (Warm up) Let's say there's a very cool party going ...

  9. 对抗生成网络学习(十五)——starGAN实现人脸属性修改(tensorflow实现)

    一.背景 最近事情比较多,一个多月没写CSDN了,最近打算做一做satrGAN. starGAN是Yunjey Choi等人于17年11月提出的一个模型[1].该模型可以实现人脸的属性修改,原理上来说 ...

  10. pytorch 图像分割的交并比_PyTorch专栏(二十二): 深度卷积对抗生成网络

    作者 | News 编辑 | 奇予纪 出品 | 磐创AI团队出品 简介 本教程通过一个例子来对 DCGANs 进行介绍.我们将会训练一个生成对抗网络(GAN)用于在展示了许多真正的名人的图片后产生新的 ...

最新文章

  1. android merge的作用,Android学习手记-merge
  2. mysql小计_使用SQL实现小计,合计以及排序_MySQL
  3. c语言学习自我评价,学习自我评价4篇
  4. c++ 舞伴配对问题_R绘图:配对样本差异表达作图ggpubr
  5. 一首歌,一种情感,一种心情
  6. php安装包解压后,ps下载后怎么解压安装
  7. php socket_create卡顿,phpsocket_createundefined的异常解决方法
  8. 服务器维护需要log日志,什么是服务器日志?服务器日志要怎么看?
  9. 《C程序设计语言》 第三章 控制流
  10. Android7.0预置带so的apk
  11. 影响腾讯 20 年的产品方法论
  12. ModelSim SE 6.5破解
  13. CVPR2021 | TrivialAugment:不用调优的SOTA数据增强策略
  14. 快速学习nodejs系列:四、nodejs特性1--单线程
  15. 韦东山嵌入式linux驱动开发,学习嵌入式Linux开发——韦东山升级版全系列嵌入式视频之总线设备驱动模型代码分析...
  16. 0x68111002_黑苹果10.12.2驱动R9 270显卡成功一例
  17. Ubuntu 升级显卡驱动
  18. 《袁老师访谈录》第十一期|宗福季教授/香港科大(广州)信息枢纽署理院长【问诊未来·院长系列:拥抱数字化转型】...
  19. 陆奇最新演讲高清PPT下载;AI 绘画20+工具体验汇总;我愿称MOSS为全球开源界最强;思否AIGC黑客马拉松北京站 | ShowMeAI日报
  20. 二维码制作(QRCode)

热门文章

  1. [Liferay6.2]Liferay Dynamic Query API示例
  2. 探讨一种 Java 实现分组的方法
  3. React 与 React-Native 使用同一个 meteor 后台
  4. Springboot 统一maper 和逆向工程
  5. python初学小结三:文件、集合、函数、变量等
  6. ASP.Net 服务器应用程序不可用 解决方法
  7. javascript闭包(转)
  8. [置顶] C#中给Label控件设置BackgroundImage属性
  9. 删除数组中重复的数字
  10. openssh常用命令记录