轻松理解GAN的原理

生成对抗网络网络

思想和原理机器学习

先给你们讲一个故事,有一伙犯罪分子想要去制造假钞混进市场使用,从而不法牟利。而银行系统则须要依靠相关技术鉴别出假钞来。不法分子为了让本身利益最大化,须要不断地提升自身的造假能力;而银行系统为了可以准确的识别出假钞也须要不断地提升本身的识别能力。双方的技术在这个竞争的过程当中都获得不断地提升,最后达到一个最佳的水平,也就是一种平衡,是什么呢,就是银行系统识别出假币的几率为50%,坏蛋们造的假币不被发现也是50%。双方都达到最高的要求,这是一种平衡,没有办法再进一步了。函数

下面说正事。作一个科普,在机器学习中含有两种模型,生成式模型(Generative Model)和判别式模型(Discriminative Model)。从几率分布的角度考虑,对于一堆样本数据,每一个样本都有特征Xi和与之对应分类标记yi性能

生成模型:学习获得联合几率分布P(x,y),即特征x和标记y共同出现的几率,而后求条件几率分布,可以学习到数据生成的机制。学习

判别模型:学习获得条件几率分布P(y|x),即在特征x出现的状况下标记y出现的几率。优化

生成式模型主要是用来生成具备和训练样本分布一致的样本(至关于上一段比喻的坏蛋们),判别式模型主要是用来对训练样本进行分类(至关于上一段比喻的银行系统)。判别式模型因其多方面的优点,在以往的研究和应用中占了很大的比例,尤为是在目标识别和分类等方面;而生成式模型则只有不多的研究和发展,并且模型的计算量也很大很复杂,实际上的应用也就比判别式模型要少不少。而本文就是一篇对生成式模型的研究,一经问世就在机器学习界掀起波澜,如此重要的文章,你没法抛弃它!那么,它与传统的生成式模型的区别在哪里呢?spa

生成对抗网络(GAN)中对抗的双方是生成式模型和判别式模型。在GAN中,咱们同时训练这两个模型,就像对抗的时候是两我的在对抗同样。这两个模型分别叫G网络和D网络,G网络是生成式模型,主要是经过学习获取信息分布,使用隐空间的随机变量生成接近于真实的数据(实际上是虚假数据),即便得D网络将生成的数据识别为真实的训练数据(也就是那群坏蛋制做出接近于真钞的假币,以蒙混银行系统);而D网络是判别式模型,主要是经过学习,判断一个样本是由模型分布(fake)仍是由数据分布(real)生成的,尽量地区分开真实的训练数据与生成的虚假数据(也就是银行系统能分清这些是假币,那些是真钞)。G网络和D网络都是可微的,所以可使用BP进行学习。3d

OK,理解上面这些你就能够直接进入GAN的最核心内容了!高能预警!blog

对抗在机器里是怎样实现的呢?图片

 

真实数据x的分布为1维的正态分布p(data),生成器G为一个多层感知机(就是神经网络),它从随机噪声中随机挑选数据z输入,输出为G(z),G的分布为p(g)。判别器D也是一个多层感知机,它的输出D(x)表明着断定判别器的输入x属于真实数据而不是来自于生成器的几率。再回到博弈问题,G的目的是让p(g)和p(data)足够像,那么D就没法未来自于G的数据鉴别出来,即D(G(z))足够大;而D的目的是可以正确的将G(z)鉴别出来,即便D(x)足够大,且D(G(z))足够小,即(D(x)+(1-D(G(z))))足够大。

整理一下。x是真实数据,z是随机噪声,G(z)是虚假数据,经过生成器G产生,服从p(g)分布,D是判别器,D(x)是断定 判别器的输入x是真实数据的几率【也就是你给真钞,银行系统认为钱是真钞】,D(G(z))是断定 判别器的输入G(z)是真实数据的几率【也就是你给假钞,银行系统认为钱是真钞】,(1-D(G(z)))是断定 判别器的输入G(z)是虚假数据的几率【也就是你给假钞,银行系统认为钱是假钞】。这样一来,所谓的对抗,其实就是:G的目的是让D(G(z))足够大,而D的目的是让D(x)足够大,让D(G(z))足够小。

GAN的目标函数:

这个式子的好处在于,固定 G,max  V(G,D) 就表示 PG 和 Pdata 之间的差别,而后要找一个最好的 G,让这个最大值最小,也就是两个分布之间的差别最小。

从判别器D的角度看,它但愿本身能尽量区分真实样本和虚假样本,所以但愿D(x)尽量大,D(G(z))尽量小,即V(D,G)尽量大。从生成器G的角度看,它但愿本身尽量骗过D,也就是但愿D(G(z))尽量大,即V(D,G)尽量小。两个模型相对抗,最后达到全局最优。因而模型就成了优化这个目标函数的问题了。这样的话就只须要经过反向传播来对训练模型就行了,最终达到p(data)=p(g),D(G(z))=1/2。

在对抗训练的过程当中,pg和pdata的分布变化以下:

黑色曲线是真实样本的几率分布函数,绿色曲线是虚假样本的几率分布函数,蓝色曲线是判别器D的输出,它的值越大表示这个样本越有多是真实样本。最下方的平行线是噪声z,它映射到了x。

咱们能够看到,一开始虽然G(z)和x是在同一个特征空间里的,但它们分布的差别很大,这时,虽然鉴别真实样本和虚假样本的模型D性能也不强,但它很容易就能把二者区分开来,而随着训练的推动,虚假样本的分布逐渐与真实样本重合,D虽然也在不断更新,但也已经力不从心了。最后,黑线和绿线几乎重合,模型达到了最优状态,这时对于任意样本,D的输出都是 0.5。

最优化问题表达

定义最优化问题的方法由两部分组成。首先咱们须要定义一个判别器 D 以判别样本是否是从Pdata(x)分布中取出来的,所以有:

其中 E 指代取指望。这一项是根据「正类」(即辨别出 x 属于真实数据 data)的对数损失函数而构建的。最大化这一项至关于令判别器 D 在 x 服从于 data 的几率密度时能准确地预测 D(x)=1

另一项是企图欺骗判别器的生成器 G。该项根据「负类」的对数损失函数而构建,即:

咱们定义目标函数为:

对于D而言要尽可能使公式最大化(识别能力强),而对于G又想使之最小(生成的数据接近实际数据)。整个训练是一个迭代过程。其实极小极大化博弈能够分开理解,即在给定G 的状况下先maxV(D,G)而取D,而后固定D,并minV(D,G)而获得G。其中,给定G,maxV(D,G)评估了Pg和Pdata之间的差别或距离。

最后,咱们能够将最优化问题表达为:

太难理解?那咱们换个说法,咱们的目标函数就是对于生成器G,目标函数为(梯度降低):

而对于判别器D,目标函数为(梯度上升):

咱们直接给出结论,由于证实的过程太长了……

咱们以前的推论是,咱们要让PG=Pdata,这样咱们生成的数据才可以以假乱真。

咱们回到这里。在极小极大博弈的第一步中,给定生成器G,maxV(D,G)而得出最优判别器D。其中,maxV(D,G)评估了PG和Pdata之间的差别或距离。由于在原论文中价值函数可写为在 x 上的积分,即将数学指望展开为积分形式:

在数据给定,G 给定的前提下, Pdata(x) 与 PG(x) 均可以看做是常数,咱们能够分别用 a,b 来表示他们,这样咱们就能够获得以下的式子:

因而可知在G已给的状况下,D的最优解为

如今咱们须要找个 G,来最小化

咱们以前已经说过,咱们优化的目标是PG=Pdata,那么在知足这个条件的时候,这意味着判别器已经彻底困惑了,它彻底分辨不出 Pdata 和 PG 的区别,即判断样原本自 Pdata 和 PG 的几率都为 1/2,此时G是最优的

 

这样咱们就比较清楚地得知训练过程了:

在训练的时候没法先训练好D,再去训练G,因此咱们是D和G同时进行训练。咱们能够在起初有一个G0 ,,先固定G0训练D0 找到 :

而后固定D0 开始训练G0,使G0升级到G1,训练的过程均可以使用gradient descent,以此类推,训练 D1,G2,D2,G3,...但这样在实际状况中效果并很差,

咱们来说讲为何很差。首先已经确认了,训练的步骤是先固定G,再训练D,使最大化V(G,D),意味着最大化G和D的差别,就是生成数据和真实数据的差别最大,在图像里就是找到小红点(图里的G不是横坐标,横坐标是D。根据D的变化,V(G,D)在变化,懂吗?下面的G只是表示此时固定的是G一、G二、G3)。训练几回D以后(由于一次不必定能找到小红点,须要多训练几回,固然多训练几回也不必定能找到,但尽可能能maxV(G,D)),咱们固定D,再训练G,使得minmaxV(G,D),意味着最小化G和D的差别,这个G的更新会引发曲线的变化。

但这里会有一个问题,咱们能够看到此时已经固定了D,咱们好不容易训练出G1,应该是但愿V(G,D)能够比G0时更小,但从G0梯度降低到G1,若是step太大,会致使图中的状况,在固定G1以后训练D,D1会和D0差的比较远,这样有可能V(G,D)反而变大了(别忘了,咱们的过程应该是判别器的判别能力愈来愈低才对,你这一弄反而让V(G,D)高了,V(G,D)表明真实数据和生成数据的差别啊喂(#`O′),银行系统辨别假钞的能力愈来愈高咱们还怎么生成数据啊!)。可是咱们只要控制住G的变化程度,这个问题就能够避免,好比我就使G训练一次,这样曲线的变化就不会太大,这样能保证每次训练,D一直在max附近,G一直在min化。

因此咱们每训练k个步骤的D网络,再训练1个步骤的G网络。只要G变化足够慢,就能够保证D保持在其最佳解的附近。

因此咱们其实是先固定G,再训练D,就是maxV(G,D),训练(这里用梯度上升)K步以后,尽可能找到max,而后固定D,训练(这里用梯度降低)1步G,就是min maxV(G,D),再固定G,训练K步D...

应用:图像生成(好比给你100个汽车图片,他会自动给你生成汽车图片,仿制得有模有样),数据加强(模糊的图或生图进行美化)

相关文章
相关标签/搜索