GAN所建立的一个学习框架,实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。通过这两个内部模型之间不断的竞争,从而提高两个模型的生成能力和判别能力。

“生成对抗网络是一种生成模型(Generative Model),其背后基本思想是从训练库里获取很多训练样本,从而学习这些训练案例生成的概率分布。

公式为:

  

其中分为2个模型:

两个模型的训练过程:

而与这个目的相反的是,生成模型G的训练目标,就是要最小化判别模型D的判别准确率。在训练过程中,GAN采用了一种非常直接的交替优化方式,它可以分为两个阶段,第一个阶段是固定判别模型D,然后优化生成模型G,使得判别模型的准确率尽量降低。而另一个阶段是固定生成模型G,来提高判别模型的准确率。

判别器模型:判断是否属于符合真实数据的概率分布

判别器是如何进行训练的:不断向里面输入数据,数据可能包含生成模型中产生的数据,也可能是真实数据中的数据,在下面这张图中,阐述了判别器模型是如何进行训练的,当输入的数据为生成器模型产生的数据时,判别器判别为真实数据时,则证明此判别器训练成功,并且生成器模型也训练成功了。如何提高判定的准确率,当输入的数据为生成器模型的数据时,判别器模型判别为真实数据时,则要进行反向传播,修改判别器模型中的权值,使其产生的熵最小。

生成器模型:生成符合真实的概率分布

生成器模型如何进行训练:

  当生成器模型生成的数据输入到判别器模型时,判别器模型判定为假时,则进行反向传播,修改生成器模型中的权值,如何判断此模型已经训练完成,当输入到判别器的数据判别器无法进行判别为真实数据或者模拟数据时,则证明此模型已经训练完成(此时的判别器模型的准确率已经达到了非常高的准确率)

DCGAN,使用卷积神经网络,实现有效训练,拓展维度。去掉G网络D网络的pooling layer。在G网络D网络中使用Batch Normalization。去掉全连接隐藏层。G网络最后一层用Tanh,其它层用RELU。D网络每层用LeakyRELU。

DCGAN网络模型:G网络,100 z->fc layer->reshape->deconv+batchNorm+RELU(4)->tanh64X64。D网络,版本1,conv+batchNorm+leakyRELU(4)->reshape->fc layer 1->sigmoid。D网络,版本2,conv+batchNorm+leakyRELU(4)->reshape->fc layer 2->softmax。
G网络4层反卷积,D网络4层卷积。G网络D网络反结构。D网络最终输出,一种方法,sigmoid输出0到1间单值作概率;另一种方法softmax输出两个值,真概率、假概率
confitional GAN,半监督学习,加入了限制条件,限制了输出,使其往特定的值输出。

GANS--理解的更多相关文章

  1. 生成对抗网络(GAN)相关链接汇总

    1.基础知识 创始人的介绍: “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上) “GAN之父”Goodfellow与网友互动:关于GAN的11个问题(附视频) 进一 ...

  2. 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表

    https://blog.csdn.net/love666666shen/article/details/75522489 https://blog.csdn.net/yangdelong/artic ...

  3. GANs用于文本生成

    上学期期末老师给了我本杂志让我好好看看里面的Gans网络是如何应用在文本生成上的,文章里面也没有介绍原理性的东西,只是说了加入这个Gans模型后效果有多好,给出了模型架构图和训练时所用的语料例子,也没 ...

  4. GANS 资料

    https://blog.csdn.net/a312863063/article/details/83512870 目 录第一章 初步了解GANs 3 1. 生成模型与判别模型. 3 2. 对抗网络思 ...

  5. 被 GANs 虐千百遍后,我总结出来的 10 条训练经验

    一年前,我决定开始探索生成式对抗网络(GANs).自从我对深度学习产生兴趣以来,我就一直对它们很着迷,主要是因为深度学习能做到很多不可置信的事情.当我想到人工智能的时候,GAN是我脑海中最先出现的一个 ...

  6. 【深度学习与神经网络】深度学习的下一个热点——GANs将改变世界

    本文作者 Nikolai Yakovenko 毕业于哥伦比亚大学,目前是 Google 的工程师,致力于构建人工智能系统,专注于语言处理.文本分类.解析与生成. 生成式对抗网络-简称GANs-将成为深 ...

  7. [论文理解] Good Semi-supervised Learning That Requires a Bad GAN

    Good Semi-supervised Learning That Requires a Bad GAN 恢复博客更新,最近没那么忙了,记录一下学习. Intro 本文是一篇稍微偏理论的半监督学习的 ...

  8. 对PatchGAN的感知域(receptive_field)理解

    for basic discriminator of GANs 判别器用于感知生成器产生的合成图片和ground-truth的差异,并旨在实现区分出fake or real: 同时,判别器的输出也是经 ...

  9. 理解CSS视觉格式化

    前面的话   CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...

  10. 彻底理解AC多模式匹配算法

    (本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...

随机推荐

  1. HTTP调用接口方法

    1.创建接口调用方法类 package cn.com.victorysoft.sjzx.Message; import java.io.BufferedReader; import java.io.I ...

  2. sqlite3简单操作

    最近在操作公司视频设备的tutk转发服务器的时候,用到的数据库是sqlite,在此复习一下 目录 1 建立数据库档案 2 在sqlite3提示列下操作 3 SQL的指令格式 4 建立资料表 5 建立索 ...

  3. .Net开发工程师笔试试题

    第一部分[数据库技能] 附上自己做的答案,提出不足之处 现在有一个SQL Server 2000版本的数据库,里面包含有三个表Info.InfoReply.User,分别表示信息.信息评论和用户表,包 ...

  4. jquery优化轮播图2

    继续优化 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  5. java中集合

    一. List集合:  一次只存储一个元素 1.常用的list集合是ArrayList (1)在创建这个集合的对象时, 需要指定这个集合存储的数据类型! 否则这个集合的数据是不安全的. (2)与数组的 ...

  6. POJ 2069 模拟退火算法

    Super Star Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6422   Accepted: 1591   Spec ...

  7. Parallelism VS Concurrency

     一个电脑/手机 有很多核,每一个核上运行一个任务,叫做 Parallelism. 只有一个核,通过任务调度,也可以实现 Concurrency.

  8. Azure CLI2.0 捕获Linux ARM非托管磁盘虚拟机并创建ARM托管磁盘虚拟机

    1.系统内部取消预配VM,创建了测试文件目录及文件:hlm20180904/ hlm20180904.txt 2.使用CLI2.0创建VM映像 a.登陆CLI2.0 备注:在 Azure 中国区使用 ...

  9. 【C#】自定义新建一个DataTable(3列),循环3维矩形数组往其填充数据

    从中可以了解DataTable的新增行和列;矩形多维数组循环机制;新建了DataTable DataTable dt = new DataTable(); DataColumn dc1 = new D ...

  10. vim中常用的命令

    1.光标的命令 gg 移到第一行位置 G 移到最后一行 o       行首 $       行末 nk 向上移动n行 nj 向下移动n行 nh 向左移动n列 nl 向右移动n列 ctrl+f     ...