GAN 小论文,做了哪些工作,详细公式推一下,对 GAN 的具体应用有了解吗?
GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于真实训练样本。更直白的讲,将generator想象成假币制造商,而discriminator是警察。generator目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于真实训练样本一样。生成对抗网络的一个简单解释如下:假设有两个模型,一个是生成模型(Generative Model,下文简写为G),一个是判别模型(Discriminative Model,下文简写为D),判别模型(D)的任务就是判断一个实例是真实的还是由模型生成的,生成模型(G)的任务是生成一个实例来骗过判别模型(D),两个模型互相对抗,发展下去就会达到一个平衡,生成模型生成的实例与真实的没有区别,判别模型无法区分自然的还是模型生成的。以赝品商人为例,赝品商人(生成模型)制作出假的毕加索画作来欺骗行家(判别模型D),赝品商人一直提升他的高仿水平来区分行家,行家也一直学习真的假的毕加索画作来提升自己的辨识能力,两个人一直博弈,最后赝品商人高仿的毕加索画作达到了以假乱真的水平,行家最后也很难区分正品和赝品了。
对于自己的论文,详细介绍一下,自己做了什么工作,有哪些提高和改进。并把自己的实验成果介绍一下。
GAN同时要训练一个生成网络(Generator)和一个判别网络,前者输入一个noise变量z,输出一个伪图片数据G(z;θg)G(z;θg),后者输入一个图片(real image)以及伪图片(fake image)数据x,输出一个表示该输入是自然图片或者伪造图片的二分类置信度D(x;θd)D(x;θd),理想情况下,判别器D需要尽可能准确的判断输入数据到底是一个真实的图片还是某种伪造的图片,而生成器G又需要尽最大可能去欺骗D,让D把自己产生的伪造图片全部判断成真实的图片。
根据上述训练过程的描述,我们可以定义一个损失函数:
其中xi,zi 分别是真实的图片数据以及noise变量。
而优化目标则是:
不过需要注意的一点是,实际训练过程中并不是直接在上述优化目标上对θd,θg计算梯度,而是分成几个步骤:训练判别器即更新θd:循环k次,每次准备一组real image数据x=x1,x2,⋯,xm和一组fake image数据z=z1,z2,⋯,zm,计算
然后梯度上升法更新;训练生成器即更新
:准备一组fake image数据z=z1,z2,⋯,zm,计算