生成对抗网络(GAN, Generative Adversarial Networks)是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:生成网络G和判别网络D,通过这二个互相博弈学习产生相当好的输出,进而使G学到数据分布,使D能够辨别出真实数据。在训练过程中,生成网络G通过接受一个随机的噪声来尽量模仿、学习训练集中的真实数据去“欺骗”D,而D则尽可能的分辨自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。
GAN的基本原理其实非常简单,这里以生成图片为例进行说明。生成网络G和判别网络D它们的功能分别是:
-
G是一个生成式网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
-
D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。其结果是一个可以生成逼真图像的生成器,以及一个训练有素的识别器,可以精确地识别和分类这类内容。