©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
在 2018 年的文章里 f-GAN 简介:GAN 模型的生产车间笔者介绍了 f-GAN,并评价其为 GAN 模型的“生产车间”,顾名思义,这是指它能按照固定的流程构造出很多不同形式的 GAN 模型来。
前几天在 arXiv 上看到了新出的一篇论文 Designing GANs: A Likelihood Ratio Approach(后面简称 Designing GANs 或原论文),发现它在做跟 f-GAN 同样的事情,但走的是一条截然不同的路(不过最后其实是殊途同归),整篇论文颇有意思,遂在此分享一番。
论文链接:https://arxiv.org/abs/2002.00865
f-GAN回顾
从 f-GAN 简介:GAN 模型的生产车间中我们可以知道,f-GAN 的首要步骤是找到满足如下条件的函数 f:
f 是非负实数到实数的映射(
);
f(1)=0 ;
f 是凸函数。
找到这样的函数后,就可以构造一个概率 f 散度出来,然后用一种称为“凸共轭”的技术将 f 散度转化为另一种形式(带 max 的形式,一般称为对偶形式),然后去 min 这个散度,就得到一个 min-max 过程,这便诞生了一种 GAN 模型。
顺便说一下,f-GAN 代表了一系列 GAN 模型,但不包含 WGAN,不过 WGAN的推导其实也遵循着类似的步骤,只不过它用到的概率度量是 Wasserstein 距离,并且 Wasserstein 距离转化为对偶形式的方法不一样,具体细节可以参考从 Wasserstein 距离、对偶理论到 WGAN。
f-GAN 在逻辑上并没有问题,但是根据它提供的步骤,我们总是需要先找到一个 f 散度,然后再转化为对偶形式。问题就是:既然我们只需要它的对偶形式,为什么不直接在对偶空间里边分析呢?
这个疑问笔者之前在文章不用 L 约束又不会梯度消失的 GAN,了解一下?,只不过在当时只是讨论了在对偶空间中概率散度的证明,并没有给出概率散度的构建方法,而 Designing GANs 正是补充了这一点。
Designing GANs
在这一节里,我们会探讨 Designing GANs 里边的思路和方法。不同于原论文中比较冗余的教科书式推导,本文将会通过逐步反推的过程来导出 Designing GANs 的结果,笔者认为这样更容易理解一些。有意思的是,理解整个推导过程事实上只需要非常基础的微积分知识。
Total Variation
这里以一个称为 Total Variation 的概率散度为例子,让我们初步体会一下在对偶空间里边分析推导概率散度的要点。
首先,我们有:
所以对于概率分布 p(x), q(x),我们也有:
两边积分得(我们先不纠结积分和 max 的交换性):
这里的 ∫|p(x)−q(x)|dx 就称为两个概率分布的 Total Variation,所以我们就通过这样的过程导出了 Total Variation 的对偶形式。如果固定 p(x),让 q(x) 逼近 p (x),那么就可以最小化 Total Var