Generative Adversarial Nets
前言
GAN同时训练两个模型:
(1)生成模型G,其主要是用来捕获给定数据的分布特征,依此生成类似的数据样本。
(2)判别模型D,用来判别数据到底是来自原始数据还是由生成模型G生成的伪造数据。
G和D的训练类似一个假币制造者G和验钞者D的对抗游戏。G要制造足够假的假币,D要以最大概率识别出G制造的假币。推理证明这个模型最终的结果就是G生成了一个很像原始分布的数据(即假币足够逼真),而D的判别概率稳定在 1/2 1 / 2 (即直观上看,和瞎猜是不是假币没什么区别)。
最原始的GAN生成器和判别器都是用的多层感知机,就是现在CNN里面常提到的全连接层。
介绍
判别模型(discriminative model)学习分辨样本到底是来自生成的样本还是原始数据。而生成模型(generative model)充当一个伪造者,制造假的样本数据。判别模型判断得越准,生成模型也会根据对手的进步不断提升自己的造假水平。最终两者到达一个平衡点,那就是生成的样本足够逼真,判别模型只能以一半的概率判断是否是假的。
为了得到生成器G在给定数据集 x x 上的分布 ,我们首先要定义一个噪声变量 pz(z) p z ( z ) ,这个变量很关键,因为它就是生成器G的输入,通过多层感知机转化为了伪造样本 G(z;θg) G ( z ; θ g ) ,这里的 θ