对抗生成网络(Generative Adversarial Net)
原文地址:http://blog.csdn.net/stdcoutzyx/article/details/53151038
引入
Discriminative Model的繁荣发展
最近,深度学习在很多领域的突破性进展想必不用我多说了。但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的地方貌似都是discriminative的模型。
所谓的discriminative可以简单的认为是分类问题,比如给一张图片,判断这张图片上有什么动物;再比如给定一段语音,判断这段语音所对应的文字。
在discriminative的模型上,有很多行之有效的方法,如反向传播,dropout,piecewise linear units等技术。
Generative Model
其实,这篇论文很早之前就看了,但我对生成模型在AI里的地位一直不能特别直观的感受。最近才慢慢的理解。
从细节上来看,生成模型可以做一些无中生有的事情。比如图片的高清化,遮住图片的一部分去修复,再或者画了一幅人脸的肖像轮廓,将其渲染成栩栩如生的照片等等。
借东风
但是现在,生成模型还没有体会到深度学习的利好,在Discriminative模型上,成果如雨后春笋,但在生成模型上,却并非如此。原因如下:
那么,是不是生成模型就借不了深度学习发展的东风了呢?我只能说,有的时候,不得不曲线救国。
对抗网络
基本思想
不断的调整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会有唯一的最优解。真实描述如下:
定理一
直接带入pg=pdata可得-log4,当入pg!=pdata时,得到
命题二
实验
早期的训练中,D可以很轻松的分辨出来G和M中不同的样本,从而会饱和,所以用logD(G(z))来代替log(1-D(G(z)),这样可以为早期的学习提供更加好的梯度。
实验就是去拟合Guassian Parzen Windown,具体细节略过。结果如下:
优势和劣势
- Markov链不需要了,只需要后向传播就可以了。
- 生成网络不需要直接用样本来更新了,这是一个可能存在的优势。
- 对抗网络的表达能力更强劲,而基于Markov链的模型需要分布比较模糊才能在不同的模式间混合。
参考
对抗生成网络(Generative Adversarial Net)相关推荐
- 与判别网络对抗的生成网络 (Generative Adversarial Nets)
Generative Adversarial Nets (GAN) 主线为 Ian J. Goodfellow 的论文 ("Generative Adversarial Nets" ...
- 生成对抗网络 – Generative Adversarial Networks | GAN
生成对抗网络 – Generative Adversarial Networks | GAN 生成对抗网络 – GAN 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频.我们手 ...
- 生成对抗网络(Generative Adversarial Networks)
参考 生成对抗网络(Generative Adversarial Networks) - 云+社区 - 腾讯云 目录 一.生成对抗网络原理 1.模型的起源 2.模型的结构和损失函数 二.对GAN的改 ...
- 一文读懂对抗生成网络的3种模型
https://www.toutiao.com/i6635851641293636109/ 2018-12-17 14:53:28 基于对抗生成网络技术的在线工具edges2cats, 可以为简笔画涂 ...
- 图像生成对抗生成网络gan_GAN生成汽车图像
图像生成对抗生成网络gan Hello there! This is my story of making a GAN that would generate images of cars, with ...
- 对抗生成网络原理和作用
我们通过一个demo(gan.py )来讲解对抗生成网络的原理和作用 1.创建真实数据 2.使用GAN训练噪声数据 3.通过1200次的训练使得生成的数据的分布跟真实数据的分布差不多 4.通过debu ...
- GAN 对抗生成网络代码实现
作报告写了ppt,这里po上 更完整的介绍关注专栏生成对抗网络Generative Adversarial Network 本篇的同名博客[生成对抗网络GAN入门指南](3)GAN的工程实践及基础代码 ...
- 图像生成对抗生成网络gan_生成对抗网络(GAN)的直观介绍
图像生成对抗生成网络gan by Thalles Silva 由Thalles Silva 暖身 (Warm up) Let's say there's a very cool party going ...
- 对抗生成网络学习(十五)——starGAN实现人脸属性修改(tensorflow实现)
一.背景 最近事情比较多,一个多月没写CSDN了,最近打算做一做satrGAN. starGAN是Yunjey Choi等人于17年11月提出的一个模型[1].该模型可以实现人脸的属性修改,原理上来说 ...
- pytorch 图像分割的交并比_PyTorch专栏(二十二): 深度卷积对抗生成网络
作者 | News 编辑 | 奇予纪 出品 | 磐创AI团队出品 简介 本教程通过一个例子来对 DCGANs 进行介绍.我们将会训练一个生成对抗网络(GAN)用于在展示了许多真正的名人的图片后产生新的 ...
最新文章
- android merge的作用,Android学习手记-merge
- mysql小计_使用SQL实现小计,合计以及排序_MySQL
- c语言学习自我评价,学习自我评价4篇
- c++ 舞伴配对问题_R绘图:配对样本差异表达作图ggpubr
- 一首歌,一种情感,一种心情
- php安装包解压后,ps下载后怎么解压安装
- php socket_create卡顿,phpsocket_createundefined的异常解决方法
- 服务器维护需要log日志,什么是服务器日志?服务器日志要怎么看?
- 《C程序设计语言》 第三章 控制流
- Android7.0预置带so的apk
- 影响腾讯 20 年的产品方法论
- ModelSim SE 6.5破解
- CVPR2021 | TrivialAugment:不用调优的SOTA数据增强策略
- 快速学习nodejs系列:四、nodejs特性1--单线程
- 韦东山嵌入式linux驱动开发,学习嵌入式Linux开发——韦东山升级版全系列嵌入式视频之总线设备驱动模型代码分析...
- 0x68111002_黑苹果10.12.2驱动R9 270显卡成功一例
- Ubuntu 升级显卡驱动
- 《袁老师访谈录》第十一期|宗福季教授/香港科大(广州)信息枢纽署理院长【问诊未来·院长系列:拥抱数字化转型】...
- 陆奇最新演讲高清PPT下载;AI 绘画20+工具体验汇总;我愿称MOSS为全球开源界最强;思否AIGC黑客马拉松北京站 | ShowMeAI日报
- 二维码制作(QRCode)