生成式对抗网络GAN与DCGAN

1、GAN简介

GAN全称:Generative Adversarial Networks,生成对抗网络,作者Ian Goodfellow 发表于2014年的一篇论文:Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C] // Advances in neural information processing systems. 2014: 2672-2680。传奇人物一般都有着一个传奇的经历,且往往都是在不知不觉中做出来了颠覆性的工作。Ian Goodfellow发明GAN自然也逃不过这一套路,据其本人亲自证实,他是在酒吧参加朋友的聚会,再讨论生成模型时想到的这个博弈网络架构,不得不说,大佬就是大佬,在酒吧玩乐讨论的都是学术,这也说明科研狗要多去酒吧溜达溜达找找灵感;当然了,脑子里能想到这个模型就已经不简单了,更厉害的是,这哥们儿晚上回去就开始动手编程实现,而且一晚上就搞定了而且调通了,足见编程能力的重要性啊。这也使得他成为了人工智能领域的顶级专家,GANs之父,总结一句话:太强了

GAN 也不是我的研究方向,仅是个人兴趣,所以就对GAN做了简单的了解,并做个小笔记:

GAN,生成对抗网络,灵感主要来自于博弈论的思想,类似于《射雕英雄传》中周伯通发明的左右互搏术,左手和右手打架,最终达到相互促进共同提升的效果。GAN也差不过,GAN是通过两个网络之间的博弈从而使得神经网络不断训练共同优化。这两个网络分别是生成网络Generator和鉴别网络Discriminator。

2、网络框架

为什么说两个网络是相互博弈的?这就要看两个网络的主要功能是啥:

Generator(生成器):生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律

Discriminator(鉴别器:而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。

GAN 主要灵感来源于博弈论中零和博弈思想,即通过生成网络GGenerator)和判别网络DDiscriminator)不断博弈,进而使G学习到数据的分布,最终的平衡点即纳什均衡点

对GAN有个简单的了解之后,接下来看GAN基本框架


由GAN框架图可以看出,GAN的生成器输入为噪声z,然后通过G生成与样本类似的数据分布。鉴别器,既然叫鉴别器就肯定是起到鉴别真实数据和生成数据作用的,所以该网络的输入时真实数据x和模型生成数据z,通过鉴别网络,输出一个输入值属于真实数据的概率,与真实情况对比后将差异反传,更新两个网络参数。具体的损失函数如下:

 

损失函数由两项组成,先简单介绍一下公式中参数的含义:

x:真实数据采样 ;z:输入噪声; G(z):生成器生成数据采样 ;D(x):表示鉴别器输出x属于真实数据的概率;

G的目的:希望自己生成的数据越接近真实越好,即他希望D(G(Z))越大越好,所以对于G来说目标是损失函数变小;

D的目的:希望自己能够准确的鉴别出真实数据和生成的数据,所以对于D来说,D的能力越强,D(X)就越趋近于1,D(G(z))应该越小,对于D来说目标是使得损失函数变大;

于是G和D就在对V(D,G)的不断左右拉扯中得到训练,最终达到类似纳什均衡的状态,这个时候生成网络G的能力足够强,能够产生足以以假乱真的数据,而D此时无法判别G生成的数据是真还是假,即D(G(z))趋于0.5中间值。

3、DCGAN简介

在对GAN有了基本的了解后,通常情况下就需要一个应用实例来加深印象了,所以我选择相对基础且简单的DCGAN作为入门级例题。

DCGAN Deep Convolutional Generator Adversarial Networks, 就是在GAN的基础上加了卷积网络结构,这么做有什么好处呢?当然是利用卷积对图像的强大处理能力。

DCGAN中D,G含义以及损失函数与原始的GAN是一致的,这也是我选他作为我的例题的原因,不同之处在于D,G采用了较为特殊的结构:

D:鉴别网络的结构是卷积神经网络,对输入的图像进行若干层卷积之后得到卷积特征然后将该特征送入logistics函数输出概率;

G:生成网络的输入时一个100维的噪声向量,然后经全连接层将其转换为4*4*1024维的矩阵,然后接下来基层采用反卷积做上采样,并不断减少通道数,最后得到64*64*3的三通道图像。

当然了,DCGAN还有其他细节的改进,比如:

1、D网络模型,使用的是带步长的卷积取代池化层,进行下采样。

2、G网络模型,使用,进行上采样。

3、激活函数为LeakyReLu,使用Batch Normalization标准化等等

具体的论文理解和网络分析网上一抓一大把,就不记了,不过整个模型测试起来还是非常的简单的,DCGAN的github传送门:click here,这里啥都有

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值