GANs学习(GAN、wGAN)
原始GAN
GANs (Generative Adversarial Networks) [1]是2014年 Goodfellow 提出的,一种zero-sum博弈过程:生成器[generator] 和判别器[discriminator]之间的此消彼长
D和G play a two-player minimax game:
minGmaxDV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]
上式可以看出,判别器尽可能将来自真实数据的样本判别为1,将来自生成器的样本判别为0,即:尽可能的从生成数据中区分出真实的数据;生成器,最小化 log(1−D(G(z)) ,也就是说最小化生成数据和真实数据的样本,也可以理解为最大化 log(D(G(z)) ,最大化判别器犯错误的概率。生成器相当于对输入noise进行非线性变换(Noise或者先验一般是 均匀分布或正太分布)
训练时,交替更新Discriminator 和 Generator。论文中的伪代码:
生成器函数采用最小化 log(1−D(G(z)) ,当判别器训练好的时候,生成器函数梯度几乎为0;因而,原文中作者提出使用最大化 log(D(G(z)) 。
Global Optimality pdata=pg
- G fixed, optimal discriminator D :