GAN(Generative Adversarial Network )对抗生成网络

以下图片来自于我的课程开课吧老师PPT,如有侵权请告知!
GAN(Generative Adversarial Network )对抗生成网络_第1张图片
GAN(Generative Adversarial Network 对抗生成网络)
GAN实际是一种方法,表述的是一个过程(这种理解是比较重要的),它不是网络结构。
生成器与决策器(判别器),生成器生成一张图片,决策器去判断他是真还是假,什么时候是最佳呢?其实是要达到一种平衡,生成器给出一张图片,判别器不能判断真假,都是0.5的概率。
这是一个过程,训练决策器可以判别真图片,生成器生成加入高斯噪声的图片,和真实图片同时输入到判别器进行判断,然后再改善生成情况。
GAN(Generative Adversarial Network )对抗生成网络_第2张图片
一个完美的数学公式呈现出来,请死死记住,符号都别错,细化到每个字母。这个太重要了,重要到怎么强调都不过分。
开课吧的老师标了8个序号,第一个序号就是黄颜色的V,这是个什么,这其实就是相当于损失函数Loss,只不过这里使用的是强化学习里价值函数的概念,具体的请看图片解释,也就是说,现在就是生成器和决策器对抗的过程。生成器是一个agent,判别器执行一个动作。
GAN(Generative Adversarial Network )对抗生成网络_第3张图片
这里解释的就是2了,D(x)就是判别器判断的结果,或者概率,确定图片是真的就是1,是假的就是0,并且D(x)最大值只能是1,所以可以看到上方那个绿色图像横坐标,就是D(x)的取值范围。所以当判别器最优的时候,D(x)=1,D(G(z))=0,下面这个函数值为0,所以下面这个务必要记住的函数最大值是0
maxD就是指最棒的判别器GAN(Generative Adversarial Network )对抗生成网络_第4张图片
GAN(Generative Adversarial Network )对抗生成网络_第5张图片
那生成器是想干什么?让D(G(z))=1,就是说我生成一张假图,让判别器判定为真图,这就是生成器的目的,所以如果有一个理想的生成器,可以把判别器玩弄于鼓掌之中,就可以让公式 的5部分趋向于负无穷,所以这就是公式中3的意思。
综合以上可以总结什么是minG和maxD的意思,就是使判别器使vf最大,生成器使vf最小。
这个过程希望达到一种平衡,生成器和判别器谁也不能占谁的便宜,交替进行,对抗生成。
这个过程中经验理解先生成判别器好一点,但是理论上不管这一套。
零和博弈(zero-sum game),又称零和游戏,与非零和博弈相对,是博弈论的一个概念,属非合作博弈。它是指参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”,双方不存在合作的可能。
生成器和判别器之间就是这种关系和过程,也称min-max-game。
GAN(Generative Adversarial Network )对抗生成网络_第6张图片
再看看关于公式的6部分,x代表真实数据,我们是假设它服从某种分布的,此处是p-data分布,这是从概率上来考虑的,高维数据也一定服从某种分布。
训练数据使用的camera-1的数据,为什么测试数据也要使用camera-1的数据,不能输用camera-2的数据,这就是因为在概率上两者数据不属于同一重分布,测试起来没有意义,如果还不好理解的话,此处老师举了一个例子,为什么训练的彩色图片不能用黑白图片测试,因为channel不一样,也可以理解为两者数据服从的分布不一样。
GAN(Generative Adversarial Network )对抗生成网络_第7张图片
再看一下公式的7部分,其实是一样的,只不过这里z是噪声,它符合一个噪声的p-z分布,每个噪声样本都是随机变量,它可能符合我们未知的一种p-z分布(大家不要问为什么,如果需要探求为什么就符合某种分布,这得从概率上解释了,比如为什么某随意分布的样本均值的抽样分布符合正态分布呢?抽样的样本和也符合正态分布呢?这我肯定解释不了,书上这么写的,所有人都这么讲的,我的接受来源是实验模拟,当然有公式推导,有兴趣的同学可以去研究一样,但是咱不是专门研究概率的,不要钻牛角尖,研究错了方向)
GAN(Generative Adversarial Network )对抗生成网络_第8张图片
这个是公式的第8部分,也是最后一部分,首先是连续分布的期望定义,其次就是结合其定义看一下我们公式里这是什么意思,表达的是谁的期望,上面老师手写的应该可以看清,我解释一下是什么意思,首先就是按照定义公式中的864部分写成一种什么形式,然后是875部分写成一种什么形式,这是一种可以计算的形式。求的是logD(x)的期望,因为对抗过程中我们就是计算这个值,对抗过程生成的值很多,怎么用数学工具很好的表示这么多数值呢,或者说对抗过程的情况呢,采用的就是期望,通俗的理解就是整个对抗过程中所有logD(x)的均值,另一个同一个意思,然后通过这两个期望得到我们的vf函数,0就代表判别器最优,负无穷就代表生成器最优。
然后就是化简公式,我们的G(z)是假的图片,就想让它等于X的,X是真的图片,这是我们的目的,所以我们直接替换了,这时,z本来服从p-z分布,此时对整个分布进行了G运算,所以整个分布情况变化了,这种分布通过G的运算变成了p-g分布,这其实就是生成器优化的过程,将假图片生成真图片,自然要和真图片是同一种分布,图上写的p-g,如果生成器最优,最终其实就是p-data,只是老师为了解释过程写的一个过渡。
GAN(Generative Adversarial Network )对抗生成网络_第9张图片
看下这个解释,就是我上面说的内容。好了,现在我们已经完全理解了这个公式,下面就是计算过程。
总结一下就是:判别器要使vf值最大,生成器要使vf值最小。
第一步:让判别器达到最优,就是一个训练过程,使用多分类感知机,CNN等能够判别图像;
第二步:生成器使vf值最小,就是上面所说,G(z)最好的极限就是X,所以用了X代替,然后化简了公式,得到了如下图绿框所示公式,对其进行求导并等于0,得到D的值,带入可以求的绿框表达式最大值,此时得到最优判别器。那么正如上面所述,在生成器进化过程中,是否p-g分布最终等于了p-data分布,就取得了最小值?
现在绿框中的式子表示的是生成器最优的情况,然后就是计算一下两个分布相等的时候,得到的值是不是最小值,下面是老师的证明过程。
将绿框中的式子对D求导(这个我也不是很理解,先略过。我找到原因了,后面给链接),并=0,求得D的值(红色字体部分),然后带入vf表达式,右侧绿色字体部分,我们假设的是两个分布相等,可求得
vf=-log4,那么下一步就是验证,-log4是不是价值函数vf的最小值。
GAN(Generative Adversarial Network )对抗生成网络_第10张图片
再看下面这张图片是验证过程,中间有个配参数的过程,当两个分布相等的时候,得到最后一个结果,-log4就是最小值
GAN(Generative Adversarial Network )对抗生成网络_第11张图片
JSD是个啥,为什么大于等于0。请看下图,Dkl和JSD都是描述分布间的离散度的,表示两个分布的离散程度,比如两个点的距离,是可以计算,两个分布的离散程度同样可以度量,之前没接触过,老师说这个是这样的就先记下。
GAN(Generative Adversarial Network )对抗生成网络_第12张图片
所以说问题的答案就出来了,p-g=p-data的时候,是全局最优的情况吗?答案是肯定的,那能取到吗?这是问题2,本节课结束了,下节课再说。
GAN(Generative Adversarial Network )对抗生成网络_第13张图片
对于求导过程,我找到不理解的原因了,也找到可以理解的版本了,但是我还是没理解,这个涉及到其他的数学知识,我还不具备,包括信息论,泛函变分。现在还不适合细究这个,先规划着吧。
链接奉上:https://www.jianshu.com/p/59c3f7945e9f

你可能感兴趣的:(GAN,对抗生成网络,神经网络,风格迁移)