先给出记录的原论文笔记。
- 生成式对抗网络 GAN (Generative adversarial networks):由一个生成器(generator)和一个判别器(discriminator)构成. 生成器捕捉真实数据样本的潜在分布(latent distribution), 并生成伪造的数据样本; 判别器是一个二分类器, 判别输入是真实数据还是生成的样本. 生成器和判别器在作者原文中使用得是多层感知机(multilayer perceptron).
- 训练的过程:判别器的目的是区分一个样本是来自模型分布(生成器产生)还是数据真实分布;生成器的目的是尽量模拟得到真实数据的分布,从而产生的数据可以让判别器误判为真实数据。原文已经说明这个模型的训练用后向传播完成,不需要用到马尔科夫链和近似推理。
符号定义:
目标函数:
原文中用k步优化D之后一步优化G,其中k设置为1.
- 训练过程如图:
这里,z是噪声数据,从z中采样作为x,形成绿色的高耸的部分,原始数据Xdata是不变的。
蓝色虚线是分类器(sigmoid),黑色虚线是原始数据,绿色实线是生成数据。
最初的时候D可以很好的区分开真实数据和生成数据,看图(b),对于蓝色虚线而言,单纯的绿色部分可以很明确的划分为0,黑色虚线的部分可以很明确的划分成1,二者相交的部分划分不是很明确。
这张图形象的说明了一下G和D的优化方向。优化D的时候需要很好的画出黑色虚线,使它能够区分开真实数据和生成数据。优化G的时候,生成数据更加接近原始数据的样子,使得D难以区分数据真假。如此反复直到最后再也画不出区分的黑色虚线。
优化算法:
注:这里的动量(momentum)梯度下降是较为平凡的一种梯度优化方法。