1 文章简要说明
本篇文章Ian J. Goodfellow提出GAN的开山之作。内容非常的经典,为了避免初学者对文中的公式推导理解不透彻,因此写下此篇博客。本文中的书本截图来自于诸葛越博士的《百面机器学习》。
GAN简单来说就是输入一组随机初始值,使其能够在目标维度内产生一组映射,如果这组映射的分布规律与我们打标签的真实数据的分布保持一致,那么我们就认为GAN网络生成了我们需要的以假乱真的结果。
上图中,黑线为真实数据分布,绿色为生成数据分布,蓝色线为判别器。可以看到当真实标签数据和生成的数据分布曲线重合时,判别器无法将而这区分开来。
2 前提知识储备:KL距离和JS散度
KL散度、JS散度、Wasserstein距离
补充说明:
1、这篇文章是GAN开篇之作,使用的仅仅是是KL和JS散度。但是当刚开始真实数据分布和生成的数据分布几乎没有重叠,也就是不相关时,KL等于无穷大,JS等于log2,二者都几乎是固定值,梯度为0,无法进行训练。
2、于是有人提出了WD(Wasserstein距离)或者叫做EMD(earth move 距离),可以克服JS的缺点。
上图为判别器的损失函数:使假的数据的期望值比较小,使真实的期望值比较大,使判别器的梯度值接近1,假的x的取值使靠插值得到的。
3、针对WD,最好|f(x1)-f(x2)|=<|x1-x2|,针对此又有人提出了WGAN-Gradient Penalty。