GANs学习(GAN、wGAN)
GANs学习(GAN、wGAN)
原始GAN
GANs (Generative Adversarial Networks) [1]是2014年 Goodfellow 提出的,一种zero-sum博弈过程:生成器[generator] 和判别器[discriminator]之间的此消彼长
D和G play a two-player minimax game:
上式可以看出,判别器尽可能将来自真实数据的样本判别为1,将来自生成器的样本判别为0,即:尽可能的从生成数据中区分出真实的数据;生成器,最小化
训练时,交替更新Discriminator 和 Generator。论文中的伪代码:
生成器函数采用最小化
Global Optimality pdata=pg
- G fixed, optimal discriminator D :
V(G,D)=∫xpdata(x)log(D(x))dx+∫zpz(z)log(1−D(G(z)))dz=∫xpdata(x)log(D(x))+pg(x)log(1−D(x))dx
两边求导,可得最优的Discriminator D is:D∗G(x)=pdata(x)pdata(x)+pg(x)
ThusC(G)=Ex∼pdata(x)log(pdata(x)pdata(x)+pg(x))+Ex∼pg(x)log(pg(x)pdata(x)+pg(x)) -
D fixed, optimal generator G:
Theorem 1. The global minimum of the virtual training criterion C(G) is achieved if and only ifpg=pdata . At that point, C(G) achieves the value −log 4。
证明:
已知pg=pdata , 那么D∗G=12 。 C(G) =log12+log12=−log4 。C(G)=V(D∗G ,D)减去它得到:C(G)=−log(4)+KL(pdata||pdata+pg2)+KL(pg||pdata+pg2)=−log(4)+2×JSD(pdata||pg)
两个分布之间的Jensen–Shannon 距离总是非负的,且当pdata=pg 时JSD为0。因而C(G)的全局最小值为C∗=−log(4) 。wGAN
原始GAN存在着训练困难、生成样本缺乏多样性、生成器和判别器loss函数无法指示训练过程等问题,Wasserstein GAN通过简单的改变,实现了巨大的突破。主要改变有以下几点:
1. 判别器最后一层去掉sigmoid(这是由Wasserstein 距离决定的);
2. 生成器和判别器的loss不取log
3. 每次更新判别器的参数之后,把他们的绝对值限制到不超过一个常数c
4. 不要用基于动量的优化算法(Adam etc.),推荐RMSProp, 简单的SGD也可以
论文中的伪代码:
Wasserstein距离又叫 Earth-Mover(EM)距离,“推土机”距离。
直观上可以理解为:在
Wasserstein距离相比KL散度、JS散度的优势在于,即使两个分布没有重叠,Wasserstein距离任然能够反应他们的远近。
[1] Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.
[2]Arjovsky M, Chintala S, Bottou L. Wasserstein generative adversarial networks[C]//International Conference on Machine Learning. 2017: 214-223.