1 引言

生成对抗网络由Goodfellow在2014年提出。GAN由生成器和判别器组成。生成器的功能是输入一个样本将其输出成一个逼真的样子,判别器来判断输入的样本是真的还是伪造的。

判别网络的目的:就是能判别出来属于的一张图它是来自真实样本集还是假样本集。例如输入的是真样本,网络输出就接近1,输出的是假样本,网络输出接近0。

生成网络的目的:生成网络是造样本,它的目的就是使得自己造样本的能力尽可能强,强到什么程度呢,判别网络没法判断我是真样本还是假样本。

2 GAN原理

GAN强大之处在于可以自动的学习原始真实样本集的数据分布

传统机器学习方法,会定义一个什么模型让数据去学习,假设我们知道原始数据属于高斯分布,只是不知道高斯分布的参数,这个时候我们会定义高斯分布,然后利用数据去学习高斯分布的参数得到最终的模型。

然而从随机噪声到图片应该服从什么分布,我们不知道,然而GAN机制可以学习到,也就是说GAN通过生成器,不断逼近真实分布,学习到了真实样本集的数据分布。

2.1 生成器训练

GAN的优化最终想要的效果是生成器(generator)的输出给判别器(discriminator)时很难判断是真实的还是伪造的。
从概率统计来讲,就是实现分布散度的趋同。

	**也就是最小化生成数据分布和真实数据分布之间的差异。**

2 李宏毅生成对抗网络学习———GAN原理
生成器的训练就是找到最小化Div

2.2 训练样本分布的解决

那么首先就是如何定义真实数据和噪声数据的分布?

只有能表示分布,才能计算二者之间的散度。

	**解决方法是通过采样的方式**

无法确切知道到底如何表示,但对于一定batch的采样可以代替真实分布。

接下来就是如何定义二者之间的散度。

3散度的定义

3.1 判别器的训练

首先定义了判别器D的目标函数,使得目标函数值越大,说明判别器越强大,越能区分开真假数据。

2 李宏毅生成对抗网络学习———GAN原理

此函数的意义类似训练一个二值逻辑回归分类器:当从真实数据中采样时(服从真实分布),值为1;
当从生成数据中采样时(服从生成分布),值为0.

训练目标就是,使得目标函数值越大。
2 李宏毅生成对抗网络学习———GAN原理

3.2 判别器的目标函数最大等价与分布散度值

通过一系列证明,最大化判别器的目标函数值,就是散度。
2 李宏毅生成对抗网络学习———GAN原理

这样,最初的问题2 李宏毅生成对抗网络学习———GAN原理
就转换为了:
2 李宏毅生成对抗网络学习———GAN原理

3.3 训练过程

因此可以通过,训练判别器,生成器的不断迭代实现最小化二者散度。
2 李宏毅生成对抗网络学习———GAN原理

4 具体算法