概念

生成对抗网络(GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。判别模型比较好理解,就像分类一样,有一个判别界限,通过这个判别界限去区分样本。从概率角度分析就是获得样本x属于类别y的概率,是一个条件概率P(y|x).而生成模型是需要在整个条件内去产生数据的分布,就像高斯分布一样,他需要去拟合整个分布,从概率角度分析就是样本x在整个分布中的产生的概率,即联合概率P(xy)。

思想

GAN的设计思想简单的说就是让生成模型和判别模型“相爱相杀”。判别模型的任务是分析判断给定的数据,生成模型的任务是去创造一个干扰数据企图欺骗判别模型。开始的时候这两个模型都是没有经过训练的,这两个模型一起对抗训练,互相成长。从而达到两个模型的能力越来越强,最终达到稳态的效果。

算法

以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:
G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。
最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。
这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。
以及在模型收敛时,生成数据具有和真实数据相同的分布(保证了模型效果)。
GAN公式:

公式中x表示真实图片,z表示输入G网络的噪声,G(z)表示G网络生成的图片,D(·)表示D网络判断图片是否真实的概率。

实例

以手写字体(MINST)为例   项目地址https://gitee.com/nine_sun/GAN_MINST

训练

迭代1次:

迭代10次:

迭代50次:

迭代100次:

迭代500次:

生成

总结

GAN在图像生成、数字增强等一系列领域都有显著的成果,其主要亮点在于它使得现有问题从有监督学习慢慢过渡到无监督学习,也可以说是自我监督学习。这种方式才是生活中普遍存在的。不过GAN也不是那么完美,如需要数据量过大:GAN的推导,完全依赖基于大量样本数据的反复判断。这对于样本数据的数量和覆盖广度都有严苛要求。而且对运算能力的要求也比较高。在相对垂直、小众的应用领域里,GAN还是比较难以施展手脚。还有就是GAN用什么标准判断、以何种理论体系来引发判断,一直以来还都缺乏支撑。准确地说,GAN是一个有充足样本和指导思想之后的解决方案,但目前解决方案有了,前提条件很多还不具备。在缺乏理论有效指导的情况下,GAN很难得出复杂的样本推导结果,而且错误率十分地高。并且进入无监督学习领域也存在着大量门槛。

相关学习资源

http://www.tmtpost.com/2609145.html

http://blog.csdn.net/zouxy09/article/details/8195017

https://baike.baidu.com/item/Gan/22181905#viewPageContent

人工智障学习笔记——深度学习(4)生成对抗网络相关推荐

  1. Keras深度学习实战(22)——生成对抗网络详解与实现

    Keras深度学习实战(22)--生成对抗网络详解与实现 0. 前言 1. 生成对抗网络原理 2. 模型分析 3. 利用生成对抗网络生成手写数字图像 小结 系列链接 0. 前言 生成对抗网络 (Gen ...

  2. 深度学习 | GAN,什么是生成对抗网络

    文章目录 GAN学习笔记 前言 1. GAN原理 2. GAN实例 3. DCGAN原理 4. DCGAN实例 5. WGAN原理 GAN学习笔记 前言 2014年,arXiv上面刊载了一篇关于生成对 ...

  3. 深度学习故障诊断之-使用条件生成对抗网络CGAN生成泵流量信号

    开始填坑 MATLAB统计机器学习,深度学习,计算机视觉 - 哥廷根数学学派的文章 - 知乎 MATLAB统计机器学习,深度学习,计算机视觉 - 知乎 之前写过在使用深度学习对机械系统或电气系统进行故 ...

  4. 【深度学习实战】从零开始深度学习(五):生成对抗网络——深度学习中的非监督学习问题

    参考资料: <PyTorch深度学习>(人民邮电出版社)第7章 生成网络 PyTorch官方文档 廖星宇著<深度学习入门之Pytorch>第6章 生成对抗网络 其他参考的网络资 ...

  5. 基于深度卷积的生成对抗网络

    生成对抗网络(GAN) GAN分为两部分,生成器和鉴别器 生成器 接受要用于伪造的数据(数据可以是准备好的,用于伪造成真实数据风格的素材,也可以像图中一样,是杂乱随机的数据点) 理想情况下,它能够输出 ...

  6. 人工智障学习笔记——深度学习(2)卷积神经网络

    上一章最后提到了多层神经网络(deep neural network,DNN),也叫多层感知机(Multi-Layer perceptron,MLP). 当下流行的DNN主要分为应对具有空间性分布数据 ...

  7. 人工智障学习笔记——深度学习(1)神经网络

    一.神经网络 我们所说的深度学习,其最基础最底层的模型称之为"神经网络"(neural network),因为我们希望机器能够像我们人类大脑的神经网络处理事件一样去解决问题,最终达 ...

  8. Matlab深度学习笔记——深度学习工具箱说明

    本文是Rasmus Berg Palm发布在Github上的Deep-learning toolbox的说明文件,作者对这个工具箱进行了详细的介绍(原文链接:https://github.com/ra ...

  9. 学习笔记--深度学习入门--基于Pyrhon的理论与实现--[日]斋藤康毅 -- 持续更新中

    关于这本 "神作" 的简介 这本书上市不到 2 年,就已经印刷 10 万册了.日本人口数量不大,但是却有这么多人读过这本书,况且它不是一本写真集,是实实在在的技术书,让人觉得很不可 ...

最新文章

  1. 小米发力AI场景下的“快应用”,投百亿资源扶持开发者
  2. CSS background 之设置图片为背景技巧
  3. git提交忽略权限问题
  4. 聊聊storm的AggregateProcessor的execute及finishBatch方法
  5. python爬取慕课视频-python爬虫:爬取网站视频
  6. 【Linux系统编程】IO多路复用之poll
  7. Java Agent
  8. 牛客网Wannafly挑战赛15 B车辆安排(模拟)AND C 出队(规律)
  9. 计算一列中某个值的个数
  10. ubuntu18.04纯命令行安装chrome
  11. LeetCode(1046)——最后一块石头的重量(JavaScript)
  12. 读书笔记 — Java高并发程序设计 — 第二章 — 基础(上)
  13. 模糊综合评价模型 ——第四部分,三级模糊综合评价模型应用:例题5,陶瓷厂六种产品销量的评判
  14. 汽车行业与 Telematics
  15. 大数据新闻推送你怎么看_如何看待大数据精准推送,使人的视界越来越窄?
  16. tnl 的 masterServer, client server 架构学习笔记
  17. 获取富文本中的图片链接
  18. 软件设计模式—命令模式
  19. 点击化学(Click chemistry) 叠氮-PEG4-NHS/Biotin-PEG-N3/Azid/DBCO-EPG-NHS/DBCO-NH2
  20. 苹果xsmax怎么开机_苹果11和苹果XSMax怎么选?还以为差别不大,对比后才知道差别大了!...

热门文章

  1. matlab 查看dll的函数参数类型,MATLAB调用dll文件中的库函数时的变量类型匹配问题?...
  2. 批量标准化BN方法简介【避免了梯度消失和梯度爆炸、加速网络的收敛、优化网络结构】
  3. 3-2numpy数组的合并的拆分
  4. php报错致命错误203,Centos7 下安装PHP7 phpredis扩展报错解决办法 致命错误:ext/standard/php_smart_str.h...
  5. python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明
  6. Hudson持续集成工具v3.3.3
  7. python实现进程通信_Python通过4种方式实现进程数据通信
  8. graphpad数据小数点_GraphPad Prism 统计指南 | 关于异常值(Outlier),你真的了解吗?...
  9. 校园综合服务平台小程序
  10. careyshop-商城框架系统