摘要
在过去一两年中,生成式模型 Generative Adversarial Networks(GAN)的新兴为生成式任务带来了不小的进展。尽管 GAN 在被提出时存在训练不稳定等诸多问题,但后来的研究者们分别从模型、训练技巧和理论等方面对它做了改进。本文旨在梳理这些相关工作。
尽管大部分时候,有监督学习比无监督的能获得更好的训练效果。但真实世界中,有监督学习需要的数据标注(label)是相对少的。所以研究者们从未放弃去探索更好的无监督学习策略,希望能从海量的无标注数据中学到对于这个真实世界的表示(representation)甚至知识,从而去更好地理解我们的真实世界。
评价无监督学习好坏的方式有很多,其中生成任务就是最直接的一个。只有当我们能生成/创造我们的真实世界,才能说明我们是完完全全理解了它。然而,生成任务所依赖的生成式模型(generative models)往往会遇到两大困难。首先是我们需要大量的先验知识去对真实世界进行建模,其中包括选择什么样的先验、什么样的分布等等。而建模的好坏直接影响着我们的生成模型的表现。另一个困难是,真实世界的数据往往很复杂,我们要用来拟合模型的计算量往往非常庞大,甚至难以承受。
而在过去一两年中,有一个让人兴奋的新模型,则很好地避开了这两大困难。这个模型叫做 Generative Adversarial Networks(GAN),由 [1] 提出。在原始的 GAN paper [1] 中,作者是用博弈论来阐释了 GAN 框架背后的思想。每一个 GAN 框架,都包含着一对模型 —— 一个生成模型(G)和一个判别模型(D)。因为 D 的存在,才使得 GAN 中的 G 不再需要对于真实数据的先验知识和复杂建模,也能学习去逼近真实数据,最终让其生成的数据达到以假乱真的地步 —— D 也无法分别 —— 从而 G 和 D 达到了某种纳什均衡。[1] 的作者曾在他们的 slides 中,给出过一个比喻:在 GAN 中,生成模型(G)和判别模型(D)是小偷与警察的关系。G 生成的数据,目标是要骗过身为警察的判别模型(D)。也就是说,G 作为小偷,要尽可能地提高自己的偷窃手段,而 D 作为警察也要尽可能地提高自己的业务水平防止被欺骗。所以,GAN 框架下的学习过程就变成了一种生成模型 (G) 和判别模型 (D) 之间的竞争过程 —— 随机从真实样本和由生成模型 (G) 生成出的 “假样本” 中取一个,让判别模型 (D) 去判断是否为真。所以,体现在公式上,就是下面这样一个 minmax 的形式。