伟大的GAN(生成对抗网络)
- 前言:以下所有内容是学习过程中产生的,不一定具有Ture可信度,仅供初学者学习参考,如果有不对的地方,敬请指正再批评;所有参考资料均来源于互联网和论文(做了整理,不算抄袭吧)。
- 摘要:主要从警察与造假币者的通俗例子讲解生成对抗网络的基本原理,生成器与判别器的概念,怎么样叫对抗过程?引出在图像生成中所用的生成对抗网络是怎么样的?论文中的原始GAN Loss函数的详细解释,它为什么就写成那么巧妙的样子?怎么训练GAN呢?会存在哪些问题呢?我们怎么知道GAN就训练好了呢?这些问题的答案都会在背后的数学逻辑中全部体现。
- 一、GAN的基本原理
- 二、GAN的Loss函数分析
- 三、GAN的训练
- 四、GAN的稳定状态及其数学推导
- 五、两种原始GAN形式存在的问题
- 六、总结
前言:以下所有内容是学习过程中产生的,不一定具有Ture可信度,仅供初学者学习参考,如果有不对的地方,敬请指正再批评;所有参考资料均来源于互联网和论文(做了整理,不算抄袭吧)。
摘要:主要从警察与造假币者的通俗例子讲解生成对抗网络的基本原理,生成器与判别器的概念,怎么样叫对抗过程?引出在图像生成中所用的生成对抗网络是怎么样的?论文中的原始GAN Loss函数的详细解释,它为什么就写成那么巧妙的样子?怎么训练GAN呢?会存在哪些问题呢?我们怎么知道GAN就训练好了呢?这些问题的答案都会在背后的数学逻辑中全部体现。
一、GAN的基本原理
1.经典的警察与造假币者
- 造假币者按照真实钱币的样子来造假,警察要分辨遇到的钱币是真还是假(造假币者就是生成器G,警察就是判别器D)
- 最初的时候,造假者造假能力不强,警察很容易判别出来;当被警察容易识别出来的时候,造假者就会继续修炼自己的技艺;于此同时,警察也要积累经验提高自己的判别能力;不断的造假,不断的判别,不断的提高自己的能力(这就是一个对抗过程)
- 最后的结果,造假者可以创造出以假乱真的钱币,警察难以区分(造假者已经是一个很好的可以刻画钱币的人)
2.图像生成中的生成对抗网络
生成器:试图生成逼真的图像来欺骗判别器
判别器:试图完美区分真实和虚假的图像
(图片来源于网络课程,名字忘了)
- 其中的生成器和判别器可以看成两个神经网络,全连接和卷积网络等都行,就是平常所见的神经网络;我们输入随机噪声给生成器网络,随机噪声一般是高斯分布或者均匀分布的,你也可以理解成反正输入一个多维向量给生成器网络就行;输入经过生成器网络以后就会被变成一个更高维的向量,也就是我们的生成器输出了一张生成图片,你可以想象成把图片的每个像素点看做向量的每个维度元素,一张图片那么多像素点,不就是个高维向量嘛;把生成器生成的图片输入到判别器网络,也会同时输入真实的图片给判别器,判别器就会对图片进行打分,也就是判别真假,它的目标是尽可能给真实的图片高分,给生成器网络生成的虚假图片低分;这就是图像生成中的生成器与判别器的概念。
- 上图是一个对抗训练的过程。从左向右看,在刚开始也就是v1的时候生成器生成的这些二次元图像是模糊的乱糟糟的,判别器就很容易判断出真实图像与虚假图像了;这时候生成器知道了判别器对自己生成的图像判断很差,那可不行,我需要生成更好的图像去骗过判别器,需要进化,就慢慢进化到了v2,v2能生成比v1更好的图像了;判别器可能判断难度增加了,因为生成器生成的图像跟真实图像越来越像了,它是可以知道自己的判断能力的,不能被生成器欺骗,它也需要进化,尽可能的去区分真实图像和生成器生成的虚假图像…这个过程一直持续下去,相互进化,相互对抗。直到判别器在生成图像与真实图像之间没法判断,换个说法就是判断一张图像是真实图像