小白深度学习入门系列

1. 直观理解深度学习基本概念

2. 白话详解ROC和AUC

3. 什么是交叉熵

4. 神经网络的构成、训练和算法

5. 深度学习的兴起:从NN到DNN

6. 异军突起的激活函数:ReLU

7. CNN,RNN,LSTM都是什么?

8. 什么是Transformer?


生成模型(Generative Model) vs 判别模型(Discriminant Model)

在讨论生成对抗网络之前,我们需要先明确两个概念:生成模型和判别模型。

所谓生成网络,指构建生成模型的神经网络;同理判别网络则是构建判别模型的神经网络。

机器学习/深度学习模型所的一个主要任务就是:根据事物的属性(X)预测事物的标记(Y)。生成模型和判别模型,都能完成这个任务,但具体方法不同。

生成式模型会求取X和不同的Y之间的联合概率:P(Y1,X),P(Y2,X),P(Y2,X),...,  P(Yn,X),然后选取其中与X联合概率最大的那个Yi,将其作为预测结果。

判别式模型来则会求以X为条件的Y的条件概率:P(Y|X),针对特定X直接得出P(Y|X)的结果,如果这个值大于某个阈值,则可以直接将其作为预测结果。

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

那么,什么是生成对抗网络呢?

简单而言,生成对抗网络是一种无监督学习方法,该方法由Goodfellow等人在2014年提出。

这个方法通过两个网络——一个是生成网络,另一个是判别网络——的相互制约来实现训练过程。

生成对抗网络中的生成网络G和判别网络D分别好像是假币团伙和警察——G努力使假币和真币更接近,而D则努力把假币从真币中区分出来。

通过G和D的对抗,最终使得两者的模型准确度都得到提升。

生成对抗网络结构

下图是一个以手写数字生成为目标的原始的GAN网络结构,可以它由Generator生成器和Discriminator判别器组成。

生成器用于从噪音中生成一幅手写数字的图片,而判别器则努力将训练集图片和生成器生成的假图片区分开来。

可以证明,当网络的能力足够的时候,生成器最终会生成和训练集特征相同的图像。具体的训练步骤如下(来自原论文中伪代码):

 for num_of_training_iterations:    for k_steps: #k在这里是超参数,代表每个迭代对判别器做几次优化        从训练集中随机选取m幅图像        随机选取(生成)m个噪声图片        更新判别器参数(普通神经网络训练过程,例如交叉熵误差函数和随机梯度下降)

    随机选取m个噪声图片    更新生成器参数

其实在GAN的论文中主要是提出了利用生成器和判别器相互制约的思路,而非详细的模型结构。上面的训练方法只是一种示例方法,生成器和判别器也不必是神经网络。

生成对抗网络的优势和劣势

GAN的优势和劣势总结如下:

CONs:

1. 网络自由度太高,训练难度大2. 两个模型是分开更新的,所以带来了两个模型之间的同步问题。如果一个模型训练的过快,会影响另一个模型的训练。

PROs:

1. 只使用反向传播即可完成训练,不使用何马尔可夫链来训练。2. GAN可以和大部分现有的生成网络算法相结合使用,提高性能。

从实际应用中,模型难以训练是困扰很多研究人员最大的问题。不过在提出GAN的论文发布(2014年)以来,大量GAN改进方法被提出,较好的解决了GAN中存在的问题,使得图像生成任务达到了可以商业应用的成熟度。

生成对抗网络主要应用举例

前面说了生成对抗网络。经过几年的研究已经比较成熟,可以进行商业应用。下面就列举了几个比较有名的开源应用案例:

  1. zi2zi:一个变换中文字体的应用,基于pix2pix

  2. iGAN:我管他叫神笔马良,一个adobe和伯克利联合发布的图像增强网络,能从简笔画生成一个真实度很高的图像。

  3. domain-transfer-network: 感觉和CNN中的风格迁移类似,实现的功能类似脸萌,可以从真实头像生成卡通头像

  4. neural-enhance: 将低分辨率图像处理成高分辨率图像,以后各种游戏炒冷饭,电影重制版的成本可以大大降低了。。。。

  5. deepfake: 前一阵引起轩然大波的现象级应用,可以给视频换脸,应用场景很多

类似的应用还有很多,而且也达到了不错的效果。个人感觉GAN真的是一个很有钱途的领域。

“众智汇”愿景

尽职尽才,允公允能 —— 本社群不定期举行线上分享,组织群友分享知识、经验、资源,以达到让我们每个人的职业生涯得到最大程度的发展的目的

欢迎扫面下列二维码关注“悦思悦读”公众微信号

什么是生成对抗网络(GAN)| 小白深度学习入门相关推荐

  1. 生成对抗网络-改进方法|深度学习(李宏毅)(二十四)

    视频地址: ①B站:https://www.bilibili.com/video/BV15W411i7uP?p=2 ②油管:https://www.youtube.com/watch?v=KSN4QY ...

  2. 什么生成对抗网络GAN、强化学习

    一.什么是强化学习 强化学习(Reinforcement Learning, RL),指智能体(agent)在与环境的交互过程中通过学习策略达成回报的最大化或解决特定目标. 强化学习的常见模型是标准的 ...

  3. 必读!TOP10生成对抗网络GAN论文(附链接)

    来源:新智元 本文约2200字,建议阅读7分钟. 本文所选论文提供了一个易读的对GAN的介绍,帮助你理解GAN技术的基础. [ 导读 ]生成对抗网络 (GAN) 是深度学习中最有趣.最受欢迎的应用之一 ...

  4. 生成对抗网络gan原理_必读!TOP10生成对抗网络GAN论文(附链接)

    来源:新智元 本文约2200字,建议阅读7分钟. 本文所选论文提供了一个易读的对GAN的介绍,帮助你理解GAN技术的基础. [ 导读 ]生成对抗网络 (GAN) 是深度学习中最有趣.最受欢迎的应用之一 ...

  5. [人工智能-深度学习-59]:生成对抗网络GAN - 基本原理(图解、详解、通俗易懂)

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. [人工智能-深度学习-63]:生成对抗网络GAN - 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  7. 生成对抗网络gan原理_中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解...

    开发者社区技术周刊又和大家见面了,萌妹子主播为您带来第三期"开发者技术联播".让我们一起听听,过去一周有哪些值得我们开发者关注的重要新闻吧. 中国首个芯片大学,南京集成电路大学即将 ...

  8. 生成对抗网络GAN综述

    题目:生成对抗网络GAN综述 系别:工程物理系 姓名:王雨阳 简 介: 生成对抗网络(GAN)是目前深度学习中应用较为广泛的一种网络.在我今后的研究中,可能会用到GAN,并且我也想了解一下GAN,因此 ...

  9. 生成对抗网络(GAN)相比传统训练方法有什么优势?(一)

    作者:元峰 链接:https://www.zhihu.com/question/56171002/answer/148593584 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

最新文章

  1. SpringBoot第二十四篇: springboot整合docker
  2. 下列那个语句在python中是非法的_下列哪个语句在Python中是非法的()A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD...
  3. 构造数组MaxTree、环形单链表的约瑟夫问题等总结
  4. python进阶(小白也能看懂)——装饰器浅谈(一)
  5. 【ICML 2020】REALM: Retrieval-Augmented Language Model PreTraining
  6. SAP Cloud for Customer的自动化测试指南
  7. 下两个网段转发的路由设置_收藏 | 多台路由器,不同网段的设备之间如何互访?...
  8. SonarQube开机自启动
  9. Python day 9(3) 定制类
  10. 3个问题,1套非技术人员的AI方法论 | 哈佛商业评论最新热文
  11. echarts使用_做数据可视化,为什么我们不再直接使用D3.js、Echarts
  12. 社会工程学之《反欺骗的艺术》小结(二)
  13. 实用工具软件远古大神Nir Sofer,数百款短小精悍便携工具,从Win2000到Win10通吃
  14. 工业互联网是什么?发展有多厉害?
  15. cpm,cpc,cps和cpa分别是什么意思
  16. 一会通一会不通 一台设备ping_Linux刚开机能ping通网关,一会就ping不通了
  17. Linux: systemd 启动代码分析
  18. 剑指offeⅤ(Java 持续更新...)
  19. 用正则表达式替换手机号为星号*的写法
  20. 软件工程师的本手、妙手和俗手

热门文章

  1. Elasticsearch查询参数介绍
  2. python基于PHP+MySQL的在线汽车租赁管理系统
  3. 关于angular1与angular2的应用区别
  4. [转]很好的文章,收藏一下
  5. 【Shell脚本】正确认识通过sh、./和source三种方式运行shell脚本的区别并据此定义和使用shell库函数
  6. 微信小程序onShareTimeLine分享朋友圈功能
  7. 我用国庆时间写了一套开源商城
  8. ie 检查java_如何判断当前是否为IE浏览器|检查IE浏览器版本信息方法
  9. python数据分析常见面试题_python常见面试题集
  10. Fiddler 网页采集抓包利器__手机app抓包