一. GAN的基本思想
生成器将一个输入通过神经网络产生一个概率分布,通常用于具有创造性的任务,即一个输入对应着不同的输出,比如给生成器输入红眼睛的角色,输出是具有红眼睛的不同的动漫角色。
GAN则是由generator 和 discriminator共同组成。discriminator实质是一个二分类器,将生成的对象和真实的对象进行区分。GAN的基本思想是generator通过训练,骗过discriminator,而discriminator又要通过训练区分真实对象和生成对象,两者是互相对抗,在对抗中使得生成的对象越来越接近真实的对象,类似自然界中生物的演化过程。
该算法的基本步骤如下:
1 初始化generator和discriminator
2 每一次迭代
step1 先固定generator,update discriminator
step2 固定discriminator,update generator
二.GAN理论
GAN的训练目标是让生成的概率分布和真实的概率分布尽可能接近,用数学式子表示为
其中,V为
V是关于两个分布的差异,是交叉熵的负值,G固定时,训练D,即训练一个二分类器,训练二分类器是要让交叉熵尽可能最小化,即负交叉熵最大化,目的是为了区分生成对象和真实对象。之后是固定D,训练G,让两个分布的差异尽可能最小。
三.Conditional GAN
如果生成器的输入是有条件,但是discriminator只是区分生成器的输出是否是真实的对象,最终会产生不符合条件的输出。可以对discriminator进行改进,让它除了判断生成器输出是否是真实对象外,在判断一下生成器输出是否符合条件。
四.Cycle GAN
如果对两个不同的领域的图片进行匹配,让其匹配度尽可能高。Cycle GAN的思想是再用一个生成器对图片进行还原,比较还原后的图片与初始的输入,让它们尽可能的接近。
五.Evaluation of Generation
Quality:对于同一个输入,生成的对象如果越集中,则表明生成的对象的质量越好
Diversity:对于不同的输入,生成器输出的多样性
mode collapse:总是产生同一个对象
mode dropping:产生的对象总是属于部分分布,其余部分的分布无法产生
一般Quality越高,Diversity越大,generation的效果越好。