100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 《深度学习》------生成对抗网络(GAN)学习笔记

《深度学习》------生成对抗网络(GAN)学习笔记

时间:2020-07-29 06:41:27

相关推荐

《深度学习》------生成对抗网络(GAN)学习笔记

1.生成对抗网络的(GAN)的原理

GAN的思想:一种二人零和博弈思想(two-player game),博弈双方的利益之和是一个常数。

就像电影《猫鼠游戏》,生成网络G可以被看做是假支票的制造者,他们试图制造假支票并且在不被发现的情况下使用,而辨别网络类似于警察,他们试图检测假支票。这个游戏中的竞争促使两个团队改进他们的方法,直到假冒品和真品都无法区分为止。

生成对抗网路(GAN)分为两个部分:生成网络G(Generator)和判别网络D(Disciminator)

(1)生成网络G:生成器,负责生成假数据

(2)辨别网络D:辨别器,负责输入的数据真假性

网络框架:

更细一点的原理图:

在最理想的状态下:

生成网络生成的是“以假乱真”的假样本G(z)

对抗网络难以判断G(z)生成的样本是否是真实的,因此D(G(z)) = 0.5。最终得到的生成模型G来生成假样本。

2.GAN的训练思路

GAN的训练要同时训练来个网络,训练的方法是:单独交替迭代训练即在训练生成网络的时候,固定住对抗网络,然后再去训练生成网络;在训练对抗网络的时候,固定住生成网络,然后再去训练对抗网络。这样做的目的是防止其中一个网络比另一个网络强大太多,因为如果某一个网络太强大,另一个会因能力太差而导致两个网络性能都弱化。这两者就像哲学中的矛盾一样,虽然看似是对立的,但是这两者共同作用的结果是导致事物向前发展的。

因此,两个网络并不是完全意义上的斗争,而是亦敌亦友的关系,他们不得不协同合作以达到共同的目标。在整个训练过程中,辨别器不得不教导生成器如何在生成数据上进行调整,自己同时也在学习如何做一个更好的老师。他们在对抗学习中不断变强,在理想状态下达到一个平衡----D(G(z)) = 0.5(纳什平衡)

2.1辨别器的训练

理想状态下:给它输入一个训练集中的样本和生成器生成的样本,如果输入的是生成的假样本,辨别器就输出0,如果是真实的样本就输出1

step1:搭建用于训练辨别器的网络模型并编译模型。

step2:为真实的样本和生成器得到的假样本打上不同的标签,该标签用于辨别器区分该样本是真实的样本还是假样本。valid为全0的(Bach_Size,1)的矩阵;fake为全1的(Bach_Size,1)的矩阵。

step3:真实样本的输入辨别器,将其输出与fake对比得到损失值

step4:生成器生成的假样本输入辨别器,将其输出与vaild对比得到损失值,最后将两者相加得到辨别器的总损失值。通过不断的训练使其总损失降低。

2.2 生成器训练

理想状态下:生成器必须努力让辨别器认为它生成的假样本,即辨别器得到假样本后输入1。

训练生成器的时候,固定辨别器的参数,首先搭建用于训练生成器的网络模型并编译模型combined。在训练生成的网络G的时候,辨别网络D的参数不发生变化,即只是把loss一直回传,传到生成网络G后更新生成网络的参数即可。

为了训练生成器,辨别器需要告诉生成器如何调整从而使它生成的样本更接近真实的。

辨别器通过反向传播辨别器输出的梯度来调整生成的样本,告诉生成器如何每个特征应调整多少来使整个样本更接近真实。同时,进一步反向传播这些样本梯度成为组成生成器的权重。

2.3 目标函数

原论文中的目标函数:

min⁡Gmax⁡DV(D,G)=Ex∼Pdata(x)[log⁡(D(x))]+Ez∼Pz(z)[log⁡(1−D(G(z)))]\min_G \max_D V(D,G) = E_{x \sim Pdata(x)}[\log(D(x))]+E_{z \sim P_z(z)}[\log(1-D(G(z)))] Gmin​Dmax​V(D,G)=Ex∼Pdata(x)​[log(D(x))]+Ez∼Pz​(z)​[log(1−D(G(z)))]

这个式子包含了两个网络的训练过程,即先优化辨别网络D,然后再来优化生成网络G。

想要辨别网络的性能尽可能大,即 log⁡(D(x))\log(D(x))log(D(x)) 最大,当辨别网络输入的是真实的样本时,理想情况为 log⁡(D(x))=0\log(D(x)) = 0log(D(x))=0 ,log⁡(1−D(G(z)))=0\log(1-D(G(z)))=0log(1−D(G(z)))=0

同时也要使生成网络的性能尽可能大,让遍布网络无法区别生成的样本和真实的样本,即 log⁡(1−D(G(z)))\log(1-D(G(z)))log(1−D(G(z))) 最小,理想情况为 log⁡(1−D(G(z)))≈−∞\log(1-D(G(z))) \approx -\inftylog(1−D(G(z)))≈−∞

在目标函数中,当辨别器DDD和生成器GGG都无法再进步的时候,就达到了一个平衡,纳什平衡。

想了解 纳什 的推荐电影《美丽心灵》

论文中GAN网络训练的算法:

参考:

1./qq_40784418/article/details/105777608

2./on2way/article/details/72773771?utm_source=app&app_version=5.0.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

3./u014038273/article/details/78783419

4.GAN初始论文解读

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。