关于GAN的理论,可以把GAN模型按照正则化、非正则化模型分成两大类。
非正则化包括经典GAN模型以及大部分变种,如f-GAN,Least Square GAN,EBGAN等等。这些模型的共同特点是不对要生成的样本的分布做任何先验假设,尝试去解决一般性的数据样本生成问题。然而,由于缺少正则化的先验条件,其模型的泛化性是存疑的。
换句话来说,泛化性说的是:所有模型都是需要先用有限的训练样本来训练的,那么由这些有限样本训练得到的模型可不可以从这些有限训练样本中生成出新的样本,而非简单地记着训练集?
目前看来,无论从理论上还是实践上,非正则化的模型都无法证明他们的泛化能力。
这时候,如果我们给要生成的数据加入一些先验的条件,比如这些“数据的分布密度在空间中变化速度是有限”的这样的条件,是不是就可以解决泛化性的问题。这就是构建正则化GAN的动机。
目前看来,正则化模型的从理论上是成功的,已经从理论上证明了他们的泛化性能。这些模型包括Loss-Sensitive GAN, WGAN等。他们都是基于Lipschitz正则条件。对严格证明感兴趣的朋友可以参看论文 Loss-Sensitive Generative Adversarial Networks on Lipschitz Densities [pdf] 和我们的系列分享
齐国君:条条大路通罗马LS-GAN:把GAN建立在Lipschitz密度上zhuanlan.zhihu.com
齐国君:广义LS-GAN(GLS-GAN) :现在 LS-GAN和WGAN都是这个超模型的特例了zhuanlan.zhihu.com
随之而来的可以进一步研究的问题是:除了Lipschitz正则化条件,还有没有其他的正则化先验条件,可以从理论上保证泛化性?这个问题比较理论,但对深入理解GAN模型可以做什么和不可以做什么具有非常重要的意义。这点就像很多物理定理一样,都有其适用范围。宣称适用一切条件的方法肯定是不存在的。理解算法的适用范围就是 GAN理论要回答的问题。
当然,仅仅从理论上分析GAN模型的泛化性是不够的。我们还需要实验去验证他们。很遗憾的是,目前用来衡量不同GAN模型的实验指标都存在很大的问题。比如Inception Score,它用来衡量生成图片的质量,基于的假设是:高质量的图片,用一个分类网络(inception)对它进行分类后得到的类别应该是明确的。遗憾的是,任何一个分类器都很难覆盖所有可能的图片类别、而它的分类准确度也不可能是完美的。而且,即便有这么一个分类器,高inception score从逻辑上也只是个高质量图片的必要非充分条件。
更重要的是,inception score完全不反应模型的泛化性,即生成正式新图片的能力。所有第二个可以研究的问题是:我们如何设计一个指标去比较不同GAN模型的泛化能力,这点也是至关重要的。
目前,已经有了一些有益的尝试。比如,同样地在Loss-Sensitive Generative Adversarial Networks on Lipschitz
Densities [pdf]这篇论文里,提出了一个MRE(Minimum Reconstruction
Error)的指标来度量泛化性。
它是这样工作的。在一个数据集上,比如CIFAR-10,把它分成训练集、验证集和测试集三个部分。我们在训练集上训练一个GAN模型,在验证集上调试超参数,这样模型在训练过程中就没有用到任何测试样本。那么,如果GAN有泛化性,它就有能力比较好地去生成这些未见到的测试样本。
下面这份图给出了MRE的测试结果。可以看到,正则化的GAN,包括LS-GAN, GLS-GAN, WGAN, WGAN-GP比非正则话的结果DCGAN要好,而且训练过程更加得稳定,不像DCGAN那里存在不稳定地波动。
图:随训练过程,在测试集上MRE的变化。
同时,如下图结果,从数值上看,GLS-GAN (Generalized Loss-Sensitive GAN),比其他GAN模型,不管正则化的还是非正则化的,就要有更小的MRE误差。这点不难理解,因为其他正则化模型都是它的一个特例。
图:在tiny ImageNet上,最终在测试集上的MRE。越小泛化性越高。
换句话来说,也回到理论问题上,目前的正则化都是基于Lipschiz条件的,GLS-GAN是Lipschiz正则化里最大的一个超类。如下图所示。
图:正则化与非正则化GAN模型。
那么有没有其他的,同样基于Lipschiz正则条件的,不包含在GLS-GAN里的模型,也是一个未解答的问题。
显然MRE的思路秉承了一般机器学习问题的评测思路,基于对训练数据、验证数据和测试数据集的划分。
那么,一个新的问题是,有没有更加直接的指标可以不依赖于具体数据集,可以对GAN模型的泛化性进行更加直接地度量?
今天先写到这里,后面有时间接着谈一谈GAN在算法和应用方面的可能方向,特别是小训练样本下的思路。
接着昨天的讨论。
具有泛化能力GAN的一个重要作用是:我们第一次有了一个比较理想的工具,可以用来表示和描述数据流型(manifold)。之前,如果我们想表示流型,一般是借助于一个图模型(Graph)。在图模型里,我们用节点表示数据点,用边表示数据直接的相似性。有了Graph,我们可以定量计算数据点上函数的变化。比如,在分类问题中,我们感兴趣的函数是分类函数,输出的是数据点的标签。有了基于Graph的流型,我们就可以建立一个分类模型:它输出的分类标签在相似样本上具有最小的变化。这个就是一种平滑性的假设,是基于图的半监督方法的核心假设。
图:基于图的流型表示和半监督分类。
尽管这种基于图的半监督方法取得了很大的成功,但是它的缺点也是很明显的。当数据点数量非常巨大的时候,构建这样一个Graph的代价会非常大。为了解决这个问题, Graph为我们提供了一个很好的基础。通过训练得到的生成器G(z),其实就是一个非常好的流型模型。这里z就是流型上的参数坐标,通过不断变化z,我们就可以在高维空间中划出一个流型结构。
有了这样一个流型和它的描述G,我们可以在数据流型上研究各种几何结构。比如切向量空间、曲率,进而去定义在流型上,沿着各个切向量,函数会如何变化等等。好了,这里GAN就和半监督学习联系起来了。以前我们是用Graph这种离散的结果去研究分类函数的变化,并通过最小化这种变化去得到平滑性假设。
现在,有了流型直接的参数化描述G(z),我们就能直接去刻画一个函数(比如分类问题中的分类器)在流型上的变化,进而去建立一个基于这种参数化流型的半监督分类理论,而非去借助基于图的流型模型。
具体来说,半监督图流型中,我们常用到Laplacian矩阵来做训练;现在,有了参数化的流型后,我们就可以直接定义Laplace-Beltrami算子,从而实现半监督的训练。下面是基于这个方法在一些数据集上得到的结果。更多的结果可以参考这篇论文“Global versus Localized Generative Adversarial Networks”[pdf]。
这里,有个比较精细的问题。通常的GAN模型,得到的是一个全局的参数话模型:我们只有一个z变量去参数化整个流型。事实上,在数学上,这种整体的参数化王是不存在的,比如我们无法用一个参数坐标去覆盖整个球面。这时我们往往要借助于通过若干个局部的坐标系去覆盖整个流型。
同时,使用局部坐标系的另一个更加实际的好处是,我们给定一个目标数据点x后,整体坐标系G(z)要求我们必须知道对应的一个参数坐标z;而使用局部坐标系后,我们就直接可以在x附近去建立一个局部坐标系G(x,z)去研究流型周围的几何结构,而不用去解一个逆问题去去它对应的z了。这个极大地方便了我们处理流型上不同数据点。
图:流型的局部化参数表示。(“Global versus Localized Generative Adversarial Networks”[pdf])
沿着这个思路,我们可以利用参数化的局部坐标和它表示的流型来研究一系列问题。
1. 比较理论的研究可以专注于,有了这些局部参数表示,如何去定义出一整套黎曼流型的数学结构,比如局部的曲率,黎曼度量,和如果沿着流型去算测地线和两个数据点之间的测地距离。
2. 从应用的角度,给定了一个图像x,用局部表示G(x,z)可以对这个x在它的局部领域中做各种编辑操作或者控制图像的各种属性。这个可以结合有监督的对局部参数的意义进行训练。
当然,从几何和流型参数化的角度还可以给出对GAN更深入的理解,比如对mode collapse问题。今天先写到这里,后面继续讨论如何从流型collapse 的角度来解释和避免GAN的mode collapse。
当然,从几何和流型参数化的角度还可以给出对GAN更深入的理解,比如对mode collapse问题。在GAN的相关研究中,mode collapse是一个被广泛关注的问题。有很多相关的论文在从不同角度来研究和解决这个问题。
而基于Localized GAN所揭示的几何方法,我们可以从流型局部崩溃的角度来
解释和避免GAN的mode
collapse。具体来说,给定了一个z,当z发生变化的时候,对应的G(z)没有变化,那么在这个局部,GAN就发生了mode collapse,也就是不能产生不断连续变化的样本。这个现象从几何上来看,就是对应的流型在这个局部点处,沿着不同的切向量方向不再有变化。换言之,所有切向量不再彼此相互独立--某些切向量要么消失,要么相互之间变得线性相关,从而导致流型的维度在局部出现缺陷(dimension
deficient)。
为了解决这个问题,最直接的是我们可以给流型的切向量加上一个正交约束(Orthonormal
constraint),从而避免这种局部的维度缺陷。下图是在CelebA 数据集上得到的结果。可以看到,通过对不同的切向量加上正交化的约束,我们可以在不同参数方向上成功地得到不同的变化。
上图:在给定输入图像的局部坐标系下对人脸的不同属性进行编辑。
上图:在给定输入图像的局部坐标系下对人脸的不同属性进行编辑。
值得注意的是,尽管我们是从局部GAN的角度推导和实现了对切向量的正交化约束,这个思路和方法同样适用于传统的整体GAN模型。我们只需要在训练整体GAN模型的同时,在每个训练数据样本或者一个batch的子集上也加上这个约束来求取相应的下降梯度就同样可以训练整体GAN模型;这个方向可以引申出未来的相关工作。
表面看来,这两个问题是不同的,一个是在研究能不能生成新样本,一个是研究生成样本的多样性。
但从道理上来说,有良好泛化性的模型,因为可以较好的逼近真实样本的分布,所以应该不存在生成样本多样性不足的问题的。
但反之则不然:即便没有mode collapse,也不能保证生成器模型的泛化性。所以从这点让来看,泛化性是个更广义的问题。
从某种意义上,泛化性可以看作是因,而mode collapse是它表现出来的现象。
但是不是研究mode collapse 就不重要了呢?这个也不是这样子的。对mode collapse这个典型想象的理解,可以有助于为研究生成器的泛化性提供非常有价值的样本。
比如,在发生mode collapse的地方,该点的密度函数显然会存在一个很高的峰值,在这个峰附近,密度函数的Lipschitz常数会变得很大。这个提示我们,通过对生成密度做Lipschitz正则化,是有利于帮助我们解决mode collapse问题,同时提高生成器的泛化性的。LS-GAN的成功也证实了这点。
而另一方面,我们上面介绍的通过对切向量做正交约束,进而防止流型维度缺陷和mode collapse的方法, 是不是也能为我们打开一扇从几何角度提高生成器泛化性的思路呢?这个可以留待后续的研究来揭示。