生成对抗网络(GAN)由2个重要的部分构成:

生成器G(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器

判别器D(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

生成对抗网络的工作过程:

第一阶段:固定判别器D,训练生成器G

初始化判别器D,让一个生成器G不断生成“假数据”,然后给这个判别器D去判断。

一开始,生成器G还很弱,所以很容易被判断出是假的。

但是随着不断的训练,生成器G技能不断提升,最终骗过了判别器D。

此时,判别器D基本属于瞎猜的状态,判断是否为假数据的概率为50%。

第二阶段:固定生成器G,训练判别器D

当通过了第一阶段,继续训练生成器G就没有意义了。这个时候需要固定生成器G,然后开始训练判别器D。

判别器D通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。

到了这个时候,生成器G已经无法骗过判别器D。

循环阶段一和阶段二

通过不断的循环,生成器G和判别器D的能力都越来越强。

最终我们得到了一个效果非常好的生成器G,我们就可以用它来生成我们想要的图片了。

通过图与公式说明GAN的工作原理

图中,黑色点线是真实数据,绿色点线是生成数据,生成器G的作用,蓝色点线是判别公式,判别器D的作用:

  

其中pdata(x)的值可看作是1(真实数据分布),pg(x)-->(绿色点线)看作是生成数据分布,它在循环中即将接近1,所以当判别器无法判断生成器的时候上面的公式D*(x)的值就为0.5。

x与z的关系就是真实数据与生成数据的映射关系。

Generative Adversarial Nets原文中作者给出了损失函数公式:

可以这样理解这个公式:

  判别器要以最大可能判别出是生成数据,生成器生成的数据与真实数据的差距尽可能的小。也就是在循环的过程中同时增强判别器判别能力与提高生成器的生成更接近真实数据的能力。

判别器模型D:

生成器模型G:

  D1(x)为真实数据判别值,它的期望为1,取对数的话值就变为0了,D2(G(z))为生成数据判别值,判别器期望判断出它是生成数据,所以期望它为0。而对生成器模型来说,是期望判别器判别不出来它是生成的数据,所以对于生成器来说它期望D2(G(z))的值为1。

生成对抗网络的优缺点

优点:

  1. 不需要大量label数据loss来源于D判定
  2. 产生大量生成数据用于训练,接近无监督学习
  3. 可以和深度神经网络结合

缺点:

  1. 数据直接生成,没有推导过程
  2. 生成器,判别器需要配合共同训练难度较大
  3. 容易出现训练失败

下面摘自一篇博文http://xiaoqiang.me/?p=4592,希望自己在以后的工作中能够方便自己查阅

如果你对 GANs 算法感兴趣,可以在 「GANs动物园」里查看几乎所有的算法。我们为大家从众多算法中挑选了10个比较有代表性的算法,

算法

论文

代码

GAN

论文地址

代码地址

DCGAN

论文地址

代码地址

CGAN

论文地址

代码地址

CycleGAN

论文地址

代码地址

CoGAN

论文地址

代码地址

ProGAN

论文地址

代码地址

WGAN

论文地址

代码地址

SAGAN

论文地址

代码地址

BigGAN

论文地址

代码地址

深度学习-生成对抗网络GAN笔记的更多相关文章

  1. 人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]本文衔接上一个随笔:人工智能中小样本问题相关的系列模型演变及学习 ...

  2. GAN实战笔记——第四章深度卷积生成对抗网络(DCGAN)

    深度卷积生成对抗网络(DCGAN) 我们在第3章实现了一个GAN,其生成器和判别器是具有单个隐藏层的简单前馈神经网络.尽管很简单,但GAN的生成器充分训练后得到的手写数字图像的真实性有些还是很具说服力 ...

  3. 用MXNet实现mnist的生成对抗网络(GAN)

    用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...

  4. TensorFlow从1到2(十二)生成对抗网络GAN和图片自动生成

    生成对抗网络的概念 上一篇中介绍的VAE自动编码器具备了一定程度的创造特征,能够"无中生有"的由一组随机数向量生成手写字符的图片. 这个"创造能力"我们在模型中 ...

  5. 生成对抗网络GAN介绍

    GAN原理 生成对抗网络GAN由生成器和判别器两部分组成: 判别器是常规的神经网络分类器,一半时间判别器接收来自训练数据中的真实图像,另一半时间收到来自生成器中的虚假图像.训练判别器使得对于真实图像, ...

  6. 深度学习框架PyTorch一书的学习-第七章-生成对抗网络(GAN)

    参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter7-GAN生成动漫头像 GAN解决了非监督学习中的著名问题:给定一批样本,训 ...

  7. 科普 | ​生成对抗网络(GAN)的发展史

    来源:https://en.wikipedia.org/wiki/Edmond_de_Belamy 五年前,Generative Adversarial Networks(GANs)在深度学习领域掀起 ...

  8. 生成对抗网络(GAN)

    基本思想 GAN全称生成对抗网络,是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的. 譬如:我要升职加薪,你领导力还不行,我现在领导力有了要升职加薪,你执行力还不行,我现在执行力有了要升职加薪 ...

  9. 原始的生成对抗网络GAN

    论文地址:https://arxiv.org/pdf/1406.2661.pdf 1.简介: GAN的两个模型 判别模型:就是图中右半部分的网络,直观来看就是一个简单的神经网络结构,输入就是一副图像, ...

随机推荐

  1. GEE windows 环境配置

    参照GEE开发大神的一篇文章GEE学习笔记 三十五:windows下配置本地开发环境 - 无形的风的文章 - 知乎. 按他的顺序下来还是出了点问题,再整理一下自己遇到的问题. 1.安装Google的 ...

  2. shell 换行与不换行

    test.sh: echo -e "hello w\norld!"echo -e "hello w\c"echo "orld!" 输出 bo ...

  3. 帝国cms伪静态设置方法

    众所周知,动态页面不利于收录和排名.伪静态可以完美的解决这问题,配合百度云加速CDN,可以让动态页面有静态页面一样快的访问速度. 今天开拓族给大家带来帝国CMS伪静态的详细设置方法. 1.栏目设置为动 ...

  4. ubuntu下Vim安装失败

    sudo apt-get install vim Reading package lists... Done Building dependency tree Reading state inform ...

  5. 微信小程序图片宽度100%,高度自适应

    实现图片自适应,按照一般情况只需设置: img { width: 100%; height: auto; } 但是微信小程序里是特例,需要image标签上设置属性mode=widthFix,就是hei ...

  6. java.lang.Exception: No tests found matching

    java.lang.Exception: No tests found matching 需要导入junit.jar 和 hamcrest.jar

  7. EV录屏 --- 免费无水印,集视频录制与直播功能于一身的桌面录屏软件, 支持录屏涂鸦、实时按键显示、视频体积压缩等实用功能

    https://www.ieway.cn/index.html 免费无水印,集视频录制与直播功能于一身的桌面录屏软件,支持录屏涂鸦.实时按键显示.视频体积压缩等实用功能 EVCapture 3.9.7 ...

  8. python while 1 然后pass会发生什么?

    下面的代码,会使32核linux服务器志强e5的cpu使用率达到3200%,然后别的什么程序都跑不了. 如果windows,cpu使用率会达到100%.这是计算方式有点区别. 个人计算机,除非你是8路 ...

  9. 自动生成LR脚本且运行

    背景:作为一个测试,特别是性能测试,尤其在活动的测试,时间紧,有很多要测的,我们的LR11因为浏览器兼容问题全录制不了脚本了,用浏览器加代理或手机加代理录制,我感觉好麻烦 ,所以就想如果能用脚本把所有 ...

  10. vue-cli3项目关闭烦人的代码检测

    参考博客:https://blog.csdn.net/e1172090224/article/details/99636767 vue.config.js module.exports = { lin ...