目录

生成对抗网络(Generative Adversarial Networks,GAN)

一、什么是GAN

二、GAN的模型结构

三、实战案例

3.1 使用GAN生成人脸照片

四、深入理解GAN模型

4.1 GAN是一种非监督学习框架

4.2 GAN是一种生成模型

五、GAN的应用场景

5.1 生成图像数据集

5.2 图像到图像的转换

5.3 照片编辑

5.4 提高照片分辨率,让照片更清晰

5.5 照片修复


生成对抗网络(Generative Adversarial NetworksGAN

一、什么是GAN

GANs全称生成对抗网络。是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构。

顾名思义是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的。下面举例来解释一下GAN的基本思想。

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的「运动」,警察们开始恢复城市中的巡逻,很快,一批「学艺不精」的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。

为了避免被捕,小偷们努力表现得不那么「可疑」,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种「交流」与「切磋」,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了「火眼金睛」,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

现在大家对于GAN的思想应该有了感性的认识了,下面开始进一步窥探GAN的结构和思想。

二、GAN的模型结构

相比于传统的神经网络模型,GAN是一种全新的非监督式的架构(如下图所示)。GAN包括了两套独立的网络,两者之间作为互相对抗的目标,第一套网络是我们需要训练的分类器(下图中的D),用来分辨是否是真实数据还是虚假数据;第二套网络是生成器(下图中的G),生成类似于真实样本的随机样本,并将其作为假样本。

详细说明:

D作为一个图片分类器,对于一系列图片区分不同的动物。生成器G的目标是绘制出非常接近的伪造图片来欺骗D,做法是选取训练数据潜在空间中的元素进行组合,并加入随机噪音,例如在这里可以选取一个猫的图片,然后给猫加上第三只眼睛,以此作为假数据。

在训练过程中,D会接收真数据和G产生的假数据,它的任务是判断图片是属于真数据还是假数据。对于最后输出的结果,可以同时对两方的参数进行调优。如果D判断正确,那就需要调整G的参数从而使得生成的假数据更为逼真;如果D判断错误,则需调节D的参数,避免下次类似判断出错。训练会一直持续到两者进入到一个均衡和谐的状态。

训练后的产物是一个质量较高的自动生成器和一个判断能力较强的分类器。前者可以用于机器创作(自动画出“猫” “狗”),而后者则可以用来机器分类(自动判断“猫” “狗”)。

三、实战案例

3.1 使用GAN生成人脸照片

四、深入理解GAN模型

4.1 GAN是一种非监督学习框架

要全面理解生成对抗网络,首先要理解的概念是监督式学习和非监督式学习。监督式学习是指基于大量带有标签的训练集与测试集的机器学习过程,比如监督式图片分类器需要一系列图片和对应的标签(“猫”,“狗”…),而非监督式学习则不需要这么多额外的工作,它们可以自己从错误中进行学习,并降低未来出错的概率。监督式学习的缺点就是需要大量标签样本,这非常耗时耗力。非监督式学习虽然没有这个问题,但准确率往往更低。自然而然地希望能够通过提升非监督式学习的性能,从而减少对监督式学习的依赖。GAN可以说是对于非监督式学习的一种提升。

4.2 GAN是一种生成模型

如下图所示生成图片模型的概念示意图。这类模型能够通过输入的样本产生可能的输出。举个例子,一个生成模型可以通过视频的某一帧预测出下一帧的输出。另一个例子是搜索引擎,在你输入的同时,搜索引擎已经在推断你可能搜索的内容了。

五、GAN的应用场景

5.1 生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GANs 可以自动的生成一些数据集,提供低成本的训练数据。

5.2 图像到图像的转换

简单说就是把一种形式的图像转换成另外一种形式的图像,就好像加滤镜一样神奇。例如:

  • 把草稿转换成照片
  • 把卫星照片转换为Google地图的图片
  • 把照片转换成油画
  • 把白天转换成黑夜

5.3 照片编辑

使用GANs可以生成特定的照片,例如更换头发颜色、更改面部表情、甚至是改变性别。

5.4 提高照片分辨率,让照片更清晰

给GANs 一张照片,他就能生成一张分辨率更高的照片,使得这个照片更加清晰。

5.5 照片修复

Deepak Pathak等人于2016年发表了题为《文本编码器:通过图片修复学习特征》的论文。论文特别介绍了如何使用GAN的文本编码器进行图片修复或填充空缺,即填补图片中某块缺失的部分。

Yijun Li等人于2017年发表了题为《人脸图像生成性填充》的论文。文中同样介绍了如何使用GAN对损坏的人脸图像进行修复和重建。

生成对抗网络(Generative Adversarial Networks,GAN)相关推荐

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

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

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

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

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

    1. 前言 2. 参考资料 3. 研究背景 4. GAN的框架 4.1 对抗框架(Adeversarial Nets) *关于"无监督学习"的说明 4.2 Minimax two- ...

  4. 生成对抗网络Generative Adversarial Nets(译)

    仅供参考,如有翻译不到位的地方敬请指出. 论文地址:Generative Adversarial Nets  论文翻译:XlyPb(http://blog.csdn.net/wspba/article ...

  5. 生成对抗网络(Generative Adversial Network,GAN)原理简介

    生成对抗网络(GAN)是深度学习中一类比较大的家族,主要功能是实现图像.音乐或文本等生成(或者说是创作),生成对抗网络的主要思想是:通过生成器(generator)与判别器(discriminator ...

  6. 深度学习之生成对抗网络(4)GAN变种

    深度学习之生成对抗网络(4)GAN变种 1. DCGAN 2. InfoGAN 3. CycleGAN 4. WGAN 5. Equal GAN 6. Self-Attention GAN 7. Bi ...

  7. 深度学习之生成对抗网络(6)GAN训练难题

    深度学习之生成对抗网络(6)GAN训练难题 1. 超参数敏感 2. 模式崩塌  尽管从理论层面分析了GAN网络能够学习到数据的真实分布,但是在工程实现中,常常出现GAN网络训练困难的问题,主要体现在G ...

  8. 深度学习之生成对抗网络(2)GAN原理

    深度学习之生成对抗网络(2)GAN原理 1. 网络结构 生成网络G(z)\text{G}(\boldsymbol z)G(z) 判别网络D(x)\text{D}(\boldsymbol x)D(x) ...

  9. 学习笔记|生成对抗网络(Generative Adversarial Networks,GAN)——让机器学习具有创造力

    文章目录 1.生成对抗网络概述 1.1 对"生成"的理解 1.2 对"对抗"的理解 2. 生成对抗网络的理论基础 1.生成对抗网络概述 有时候我们希望网络具有一 ...

  10. 生成对抗网络(一)GAN

    一.简介 最近在研究深度学习相关的知识,看了CNN.RNN.DNN等经典的神经网络,然后研究了一下生成模型,也就是今天要讲的生成对抗网络(GAN),打算出一个系列,毕竟关于生成对抗网络的论文太多了,g ...

最新文章

  1. 文本处理三驾马车 • grep • sed • awk
  2. python开多少进程合适_python多进程基础
  3. [YTU]_2633( P3 数钱是件愉快的事)
  4. 软件工程 - 团队博客第二阶段成绩
  5. qt.targets(66,3):元素<Import>中的“Project”特性的值无效
  6. shiro启动之后页面访问不了_java:shiro入门——4
  7. DockerCompose构建Springboot项目
  8. 使用Druid数据库连接池整合MyBatis Plus时,出现Error attempting to get column 'startTime' from result set. 类似错误
  9. tomcat之一:指定tomcat运行时JDK版本
  10. JavaSE(二):Java语法(5)——Java数据类型转换
  11. NFC reader ( ISO 15693 ) NFC相关技术详解(附源代码)
  12. 配置Jenkins及下载相关插件
  13. Java 学习 多态练习 1. 设计一个接口 接口叫做Mortal,其中有一个方法叫做die 在主方法中首先实例化出一个Hero对象:盖伦然后实例化出3个对象,分别是ADHero,APHero
  14. 陶哲轩实分析 5.2 节习题试解
  15. easyui php分页,jQuery EasyUI 教程-Pagination(分页)
  16. 百度富文本编辑器引入问题
  17. 北大AI公开课13讲全链接+最强干货盘点:视频+笔记+文字实录
  18. WebRTC Native M96音频基础知识介绍--使用Opus
  19. Map集合中的常用函数(java)
  20. wampserver在线但localhost打不开 解决方法

热门文章

  1. 文通观点:ocr sdk的用处大盘点
  2. 从优站精选上学习Bootstrap案例总结(一)
  3. css3图片无缝滚动
  4. 如何利用谷歌邮箱别名功能获取无限 Gmail 邮箱
  5. jQuery Accordion
  6. 基于UDP协议的局域网网络聊天工具
  7. java 压缩加密_java中文件如何加密压缩?
  8. 计算机系统结构试题及答案,2019年10月自考计算机系统结构02325真题及答案
  9. ES6:export default 和 export 区别
  10. 低功率广域网(LPWAN)技术解析