GAN学习笔记:MMGAN:Manifold-Matching Generative Adversarial Network
一、主要思想
MMGAN的一个重要思想在于:数据可以分为两个不同的manifold:真实数据和生成数据。
那么,训练G的目标就是尽可能地match这两个manifold。
在MMGAN中,不妨用球形来表示manifold,这样,可以使用指数平滑来得到球的中心和半径,此外,针对mode collapse的问题,MMGAN也进行了相关的工作来提升数据的diversity,接下来会具体介绍。
二、Manifold-Matching
我们提到了,训练G的目标是让两个manifold尽可能match。
现在,我们不妨用球形来表示一个manifold,即
其中c为中心,l为半径,φ为space mapping函数。
这里,为了讨论方便,我们可以取一个最简单的φ,φ(x)=x。
进而我们可以得出,对于一个数据集S,拟合效果最好的球形满足以下式子:
至此,就可以定义一个G的损失函数了:
这里My为真实数据的manifold,Mx为生成数据的manifold,训练G的目标就是让损失函数最小化,即让两个manifold尽可能match。
在Reproducing Kernel Hilbert Space中,这里可以取线性的kernel。
则损失函数在这里可以表示为:
三、应对mode collapse
要避免*生的数据太过相似,这里对损失函数做如下调整,用As来表示数据之间的关联性,定义
其中:A为一个参照,A中的数据之间完全独立,可以看出,As要越接近A越好。
补充一下Frobenius范数的定义。
接下来,就可以调整损失函数了:
四、训练算法
这里的Equation(1)指的就是最原始的训练D的方法,而Equation(12)指的是第三部分结尾处调整过的Loss函数。
指数平滑的系数一般会取到0.8以上。