​GAN应用集中在图像生成,NLP、Robt Learning也有拓展。类似于NLP中的Actor-Critic。 https://arxiv.org/pdf/1610.01945.pdf 。

Generative Adversarial Nets。构建两个网络,一个G生成网络,一个D区分网络。训练,G网络loss log(1-D(G(z))),D网络loss -(log(D(x))+log(1-D(G(z))),不是Cross Entropy。数据输入,G网络输入noise。D输入混合G输出数据及样本数据。

G网络训练,D(G(z))趋近于1,G loss最小。D网络训练 2分类,分清真实数据和生成数据,真实数据D输出趋近1,生成数据输出D(G(z))趋近0。

目标,生成数据分布和实际分布相同。D开始训练,分类能力有限,有波动,初步区分实际数据和生成数据。D训练较好,明显区分生成数据,生成数据概率下降。G网络提升,影响D分布。G网络不动,训练D,训练最优,Dg*(x)=pdata(x)/(pdata(x)+pg(x)) 。pg(x)趋近pdata(x),Dg*(x)趋近0.5,G网络、D网络处于平衡状态。网络训练最终收敛到pg(x)=pdata(x)。

G、D同步训练,G训练一次,D训练k次。D训练同量输入生成数据和样本数据计算loss(不是cross entropy分开计算)。cross entropy使D(G(z))为0,导致没有梯度,无法更新G。GAN D(G(z))最终收敛到0.5。G网络用RELU、sigmoid,D网络用Maxout和dropout。-log(D(G(z)))代替log(1-D(G(z))),训练开始加大梯度信息,整个GAN不是完美零和博弈。

GAN可以任意采样,可以使用任意可微模型(任意神经网络)。GAN生成图像更Sharp,work更好,值得推广。不好训练。confitional GAN,半监督学习。

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输出两个值,真概率、假概率。
https://github.com/carpedm20/DCGAN-tensorflow
https://github.com/sugyan/tf-dcgan

GAN训练后网络特征表达。DCGAN+SVM做fifar-10分类实验。D网络每层卷积通过4x4 grid max pooling 获取特征,连起来得28672向量,SVM,效果比K-means好。DCGAN用在SVHN门牌训练,效果不错。D网络无监督学习到有效特征信息。
G改变z向量,生成不同的图片。z向量线性加减,输出新图像。z向量对应特别特征。G网络无监督学习特征表达。
BEGAN生成超级逼真图像。

CGAN(Conditional Generative Adversarial Nets)。数字字段生成,输入数字,输出对应字体。G网络输入 z连接输入y。D网络输入 x连接y。minGmaxDV(D,G)=Ex~pdata[logD(x|y)]+Ez~pz(z)[log(1-D(G(z|y)))]。
GAN无监督变有监督,输入分类,输出图像。
MNIST字体生成,图像多标签。MNIST字体生成,输入数字,输出对应字体。数字one hot处理,5 对应one hot [0,0,0,0,0,1,0,0,0,0]。和100维z向量串联输入。训练调整z向量,改变输出,解决多种输出问题。输出不同形状字体。

InfoGAN,无监督CGAN。信息论,mutual information互信息。G网络输入z+c变量。c与G网络输出x 互信息最大化。神经网络训练c与输出关系。mutual information定义: I(c,G(z,c))=Ec~p(c),x~G(z,c)[logQ(c|X)]+H(c)。H为c的entropy熵,log(c)*c,Q网络基于X输出c。基于I,GAN训练目标:minGmaxDV(D,G)=λI(c,G(z,c))。网络改变:D网络输入只有x,不加c。Q网络D网络共享同一网络,最后一层独立输出。

参考资料:
https://zhuanlan.zhihu.com/p/27012520

欢迎付费咨询(150元每小时),我的微信:qingxingfengzi

我创建GAN日报群,以每天各报各的进度为主。把正在研究GAN的人聚在一起,互相鼓励,一起前进。加我微信拉群,请注明:加入GAN日报群。

学习笔记GAN003:GAN、DCGAN、CGAN、InfoGAN的更多相关文章

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

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

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

    图像识别和自然语言处理是目前应用极为广泛的AI技术,这些技术不管是速度还是准确度都已经达到了相当的高度,具体应用例如智能手机的人脸解锁.内置的语音助手.这些技术的实现和发展都离不开神经网络,可是传统的 ...

  3. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  4. tensorflow学习笔记——自编码器及多层感知器

    1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...

  5. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  6. Mybatis学习笔记导航

    Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  9. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

随机推荐

  1. 读Zepto源码之Deferred模块

    Deferred 模块也不是必备的模块,但是 ajax 模块中,要用到 promise 风格,必需引入 Deferred 模块.Deferred 也用到了上一篇文章<读Zepto源码之Callb ...

  2. 项目中ApplicationContext

    applicationContext说白了就是对beanFactory的扩展,也就是一个spring容器,而且applicationContext是单例的,项目中主要包含一个webApplicatio ...

  3. 支付宝分库分表中间件--zdal简介

    中间件, 如果仅仅作为一名用户的话, 主要关注一下如何使用即可, 大多数情况下也就是配置. 下面简单的介绍一下支付宝的分库分表中间件--->zdal在web项目中的配置. 1, 在网上查阅相关资 ...

  4. 微信小程序实现“鲜肉APP”首页效果

    项目地址http://git.oschina.net/djcx/WeiXinXiaoChengXu/tree/master 如果您觉得不错,记得给一个star 由于微信小程序目前是当下趋势,正好昨天弄 ...

  5. SMS Error code: +CMS

    Error  Description CMS ERROR: 1 Unassigned number CMS ERROR: 8 Operator determined barring CMS ERROR ...

  6. Word2016“此功能看似已中断 并需要修复”问题解决办法

    Word2016"此功能看似已中断 并需要修复"问题解决办法 修复步骤: 1. 按Windows 键+R键,输入"regedit"打开注册表. 2.找到以下键值 ...

  7. 有时在UIWindow上添加遮罩层不成功的原因

    程序启动后,初始化window,初始化controller,加载试图,这三个方法的顺序是嵌套的 类似于: - (id) initWindow {[self initController];} 而我在i ...

  8. C++中堆和栈的完全解析(转)

    内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序, ...

  9. Java 特殊字符的String.split的分割(. \ * | \\)

    特殊字符 分割的时候使用: 关于点的问题是用 : String.split("[.]");   String..split("\\.") ; 关于竖线的问题用 ...

  10. numpy数组、向量、矩阵运算

    可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...