文章目录

  • 什么是GAN
  • 纳什均衡
  • GAN的学习过程
  • GAN的局限性
  • 如何改善GAN的局限性

什么是GAN

Generative Adversarial Networks,生成式对抗网络,Ian Goodfellow 在2014 年提出的一种生成式模型
基本思想来自博弈论的二人零和博弈(纳什均衡), 由一个生成器和一个判别器构成,通过对抗学习来训练

  • 生成器的目的是尽量去学习真实的数据分布
  • 判别器的目的是尽量正确判别输入数据是来自真实数据还是来自生成器
  • 生成器和判别器就是一个矛和盾互相PK的过程
  • 为了取得游戏胜利,这两个游戏参与者需要不断优化, 各自提高自己的生成能力和判别能力,这个学习优化过程就是寻找二者之间的一个纳什均衡

    G代表生成器,D代表判别器,Z是输入源,称为Noise source,就是一个随机编码。给出一个random code(即Z)由生成器G生成假数据X’,假数据X’和真实数据X喂给判别器D,由D判别出哪个是real,哪个是fake,这个就是gan的基本原理

纳什均衡

我们以囚徒困境的例子来解释纳什均衡的含义

A和B属于零和游戏,需要在A和B的决策中进行Trade Off(权衡),由此看出,抵赖对两个人来说都是最优的结果,这个就是纳什均衡。

亚当·斯密的“看不见的手”,在市场经济中,每一个人都从利己的目的出发,不断调和与迭代,最终全社会达到利他的效果

GAN的学习过程

GAN的学习过程其实就是把D和G达成一个均衡,这是我们的目标,因此不仅要训练G,也要训练D

为什么D和G是对抗的?
G是生成器,它生成的数据是虚假的,它目标是让生成的数据骗过D。D是判别器,它的目标是要把虚假的数据给找出来,因此D和G是对抗的


对于 GAN 的学习过程 ,需要训练模型D来最大化判别数据来源于真实数据或者伪数据分布 ,同时,我们需要训练模型 G来最小化 loss。

我们该采用怎样的优化方法,对生成器G和判别器D进行优化呢?

  • Step1,固定生成器 G=>优化判别器 D,让D的判别准确率最大化
  • Step2,固定判别器 D => 优化生成器 G,让D的判别准确率最小化

训练 GAN 时,在同一轮参数更新中,通常对 D 的参数更新 k 次,再对 G的参数更新 1 次,这样做的目的是让D学的更快点,因为我们最终要的是G,为此需要把D这个教练先变得越来越好,由此才能训练出更好的G

Generator与Discriminator的工作原理

  • Generator,在输入一个随机编码(random code)z之后,它将输出一幅由神经网络自动生成的、假的图片G(z)
  • Discriminator,接受G输出的图像作为输入,然后判断这幅图像的真假,真的输出1,假的输出0
  • G生成的图像会越来越逼真,D也越来越会判断图片的真假,最后我们就不要D了,直接用G来生成图像


我们就是要在最大化D的能力的前提下,最小化D对G的判断能力 ,所以称之为 最小最大值问题


损失函实际上是一个交叉熵,判别器的目的是尽可能的令D(x)接近1(对于真图像x的处理评分要高),令D(G(z))接近0(对于假图像G(z)的处理评分要尽量降低),所以D主要是最大化上面的损失函数(让D的辨别能力更强),G恰恰相反,他主要是最小化上述损失函数(让生成的假图像G(z)变得更真实)。

为了增强D的能力,我们分别考虑输入真的图像和假的图像的情况

D的目标是什么?G的目标是什么?

  • D的目标是:D(G(z))处理的是假图像G(z) => 评分D(G(z))要尽量降低,对于真图像x的处理 => 评分要高,这样D的辨别能力才会更强
  • G的目标是:让生成的假图像G(z)变得更真实、更逼真,让D难以辨别

GAN的局限性

用户输入random code由生成器G参数 fake image即G(Z),传统的GAN中会出现如下局限性:

  1. 在传统的GAN里,由于没有用户控制能力,输入一个随机噪声,就会输出一幅随机图像(可能输出猫在左边或是猫在右边的图像)

这里user input 是指输入的random code,output是G生成的G(Z),还要从现实世界中取一张或者画一张真实图像,与output一起输入判别器

  1. 低分辨率(Low resolution)和低质量(Low quality)问题

    生成的图片看起来不错,但放大看,会发现细节相当模糊

如何改善GAN的局限性

如改善GAN的局限性可以从以下两个方面入手:

  • 提高GAN的用户控制能力
  • 提高GAN生成图片的分辨率和质量

从以上两个方面提出新的算法模型:

  1. pix2pix,有条件的使用用户输入,使用成对的数据(paired data)进行训练。比如,输入的是猫在左边,你就不能生成猫在右边的图。Pix2pix的缺点:在训练过程中,需要人为给它标出数据的对应关系,比如 现在的输入条件是猫在左边,人要给它画一张或找一张猫在左边的图像,才会让G更好的学习,以产生猫在右边的图像,这对数据源的要求会很高

  2. CycleGAN,使用不成对的数据(unpaired data)就能训练。
    以马为例,马训练马是成对的数据,用马生成斑马,是不成对数据。由于现实生活中成对的样本比较少,对于没有成对样本的情况,使用CycleGAN,CycleGAN有两个生成器,马->斑马,斑马->马,我们最终想要的是马->斑马,利用理论上开始的马和马->斑马->马是一样的,同时优化马->斑马,斑马->马两个生成器,最终使用马->斑马。
    CycleGAN本质是优化生成器的一个思想,拿文本翻译来说,你把一段英文翻译成中文,再把中文翻译回英文,假如翻译回来的英文和一开始的英文天差地别,那么这个两次翻译的结果肯定是很差的;反之,如果能够让翻译回来的英文和原本的一样,就相当于是改进了两次翻译的效果,CycleGAN利用这种方式来优化生成器。

  3. pix2pixHD,生成高分辨率、高质量的图像

未来还会持续更新:

  • Conditional GAN
  • pix2pix
  • CycleGAN
  • GauGAN

谢谢支持!

深入理解GAN对抗生成网络相关推荐

  1. GAN——对抗生成网络

    GAN的基本思想 作为现在最火的深度学习模型之一,GAN全称对抗生成网络,顾名思义是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的.它使用两个神经网络,将一个神经网络与另一个神经网络进行对抗. ...

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

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

  3. GAN对抗生成网络学习笔记(三)DCGAN原理

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.DCGAN简介 1.1 DCGAN的特点 二.几个重要概念 2.1 下采样(SubSampled) 2.2 上采样 ...

  4. GAN对抗生成网络原始论文理解笔记

    文章目录 论文:Generative Adversarial Nets 符号意义 生成器(Generator) 判别器(Discriminator) 生成器和判别器的关系 GAN的训练流程简述 论文中 ...

  5. Tensorflow GAN对抗生成网络实战

    这一节的回顾主要针对使用JS散度得DCGAN和基于GP理论和Wasserstein Distance理论的WGAN首先是DCGAN 我们的训练数据集是一堆这种二次元的动漫头像的图片,那么我们就是要训练 ...

  6. 悉尼大学陶大程:遗传对抗生成网络有效解决GAN两大痛点

    来源:新智元 本文共7372字,建议阅读10分钟. 本文为你整理了9月20日的AI WORLD 2018 世界人工智能峰会上陶大程教授的演讲内容. [ 导读 ]悉尼大学教授.澳大利亚科学院院士.优必选 ...

  7. 深度学习对抗生成网络--GAN

    导读:GAN的风暴席卷了整个深度学习圈子,任何任务似乎套上GAN的壳子,立马就变得高大上了起来.那么,GAN究竟是什么呢? 相关资料下载 加助教小姐姐的威信即可免费获取: 1. GAN的基本思想 GA ...

  8. 对抗生成网络GAN(优化目标篇)

    对抗生成网络GAN(优化目标篇) 快要面试,故对GAN进行稍许复习 目的 对抗式生成网络GAN提出的目的是估计样本的密度函数pr(x;θ)p_r(x;\theta)pr​(x;θ),且并不显式的估计密 ...

  9. 对抗生成网络(GAN)学习笔记

    生成模型与判别模型 判别模型:由数据直接学习决策函数Y=f(X)或条件概率分布P(Y|X)作为预测模型,即判别模型.判别方法关心的是对于给定的输入X,应该预测什么样的输出Y. 生成模型:由数据学习联合 ...

  10. 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow)

    图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow) 文章目录 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网 ...

最新文章

  1. 比AlphaGo Zero更强的AlphaZero来了!8小时解决一切棋类! PENG Bo
  2. Angular2入门--架构概览
  3. angularjs与server交互
  4. Spark中的键值对操作-scala
  5. 阿星Plus:基于abp vNext开源一个博客网站
  6. MVC中使用ajax传递json数组
  7. 【Pytorch神经网络实战案例】20 基于Cora数据集实现图卷积神经网络论文分类
  8. 计算机综合基础作业,《计算机网络基础》综合作业(参考答案).doc
  9. 新时代、新挑战、新机遇
  10. js的ctrl+s保存功能
  11. 哀悼日网站全站变灰代码,最简单的还是ng这种方式...
  12. 经典人生感悟 看看你少了那一条
  13. 安装官方原版win10系统
  14. 星绞计算机电缆,永安市铠装计算机电缆DJYJP3V22截面图
  15. aso优化师是什么_aso是什么意思 aso优化师是啥
  16. 数据库设计----概念结构设计(概念模型、E—R模型、概念结构设计)
  17. 如何复制网页上不能复制的文字
  18. Windows操作系统的日志分析
  19. 网优5g前景_5G网络优化师前景怎么样?
  20. 0504|1823. 找出游戏的获胜者

热门文章

  1. android studio闹钟小程序,闹钟应用程序Android Studio
  2. 农业农村部:发现生猪、野猪异常死亡应立即报告
  3. python机构换手率_46只业绩翻倍+机构重仓芯片潜力股(名单)一览,换手率大于10...
  4. 安装sql 无法重启计算机,win10系统安装sQL server 2008显示重新启动计算机失败的步骤介绍...
  5. PHP与MySQL交互实现网页登录注册功能(步骤超详细!!!)
  6. 1对1实时视频/语音通讯原理概述
  7. windows安全中心(windows defender)对下载内容报毒解决方案
  8. sar adc的常用指标(一)
  9. html - 空格符号 - 字符实体 - 预留字
  10. 计算机科学对自然观的影响,浅谈自然辩证法对计算机科学研究的意义