GAN的理论推导
1.引言
GAN,全称Generative Adversarial Nets,即对抗生成网络。希望通过对训练集的学习,能够得出一个模型,用于生成类似于训练集中的样本,特别是希望能“创造”出一些在训练集中没有的样本。GAN的过程就是逐步找到这个模型的过程。
训练集样本存在于一个空间中,但训练集样本只是这个空间中的一小部分,例如训练集是一些狗的图片。那如何通过训练集中的狗的照片来生成任意的狗的照片呢?如果希望随意生成“任意”一只狗的图片,最直观的方法就是在“狗的照片”这个空间中“任意”选取一个点,然后就能得到一只狗的图片。如果狗的图片是10*10的,那这个空间就是100维的,如果够的图片是1*3的,那这个空间就是3维的,甚至可以通过可视化手动方式来生成所有的狗。GAN的过程就是通过训练集来找到这个空间。
更一般化的说法“如何找到一个映射,其中X服从均匀分布,Y服从目标分布”,X服从均匀分布则表明可以在分布中“任意”选取点,每个点的概率都是一样的。目标分布Y就是希望得到的分布(这里的分布和上面的空间可以通用)。也就是把一个均匀分布映射为一个指定的分布。如果能得到这样一个映射,就可以将均匀的随机噪声映射为一个特定的分布,因此只要有了噪声,就有了对应分布中的样本。这样,对于上面的狗的空间来说,随便给出一个噪声,就能给出一个狗的图片,如果把所有的噪声都输入进去,就能得到所有的狗的图片。因此,GAN学习到的不是噪声到图片的变换,学习到的是均匀分布到指定分布的变换。而另一种生成模型——自动编码器学习到的就是样本到样本之间的变换,因此,自动编码器可以用于重建样本,但不能用于创建样本。
但找到这个映射的过程是很困难的,下面以将均匀分布映射为正态分布为例来看如何得到这个映射[1]。
问题:如何将均匀分布映射成正态分布?
假设现在已经找到了这个映射,那么和之间的概率应该相等。设X的概率密度函数,则分布X在区间的概率为,Y是正态分布,概率密度函数为,在分布Y在区间的概率为,因此有
分别对两边取积分,则有
其中是标准正态分布的累计分布函数,因此,
注意到累积分布函数是无法用初等