GAN
生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络最最直接的应用是数据的生成,而数据质量的好坏则是评判GAN成功与否的关键。
针对数据量缺乏的场景,生成模型则可以帮助生成数据,提高数据数量,从而利用半监督学习提升学习效率。
GAN受博弈论中的零和博弈启发,将数据(以图片为例)的生成问题视作判别器和生成器这两个网络的对抗和博弈。生成器从给定噪声中(一般是指均匀分布或者正态分布)产生生成的图片,而判别器分辨生成器输出的生成样本与真实样本。前者G网络试图产生更接近真实样本的样本,相应地,后者D网络试图更完美地分辨真实数据与生成数据。这样,两个网络在对抗中进步,在进步后继续对抗,由G网络生成的样本也就越来越完美,越来越逼近真实的样本,达到生成模型的功能。
设真实数据为x,随机噪声为z,生成网络为G,判别网络为D,那么GAN网络的loss(交叉熵)可以表示为:
其中Pr(x)代表真实样本分布,Pz(z)代表生成样本的分布。D(x)的输出是0-1范围内的一个实数,用来判断这个图片是一个真实图片的概率是多大。通过这样一个极大极小(Max-min)博弈,循环交替地分别优化G和D来训练所需要的生成式网络与判别式网络,直到到达纳什均衡点。所谓循环交替优化,也就是固定G,优化D,一段时间后,固定D再优化G,不断重复上述过程,直到损失函数收敛。
DCGAN
2014年提出的最原始的GAN模型在D网络和G网络的网络结构上是通过以多层全连接网络为主体的多层感知机(MLP) 实现的,然而其调参难度较大,训练失败相当常见,生成图片质量也相当不佳(尤其对于复杂的数据集)。
由于卷积神经网络比MLP有更强的拟合与表达能力,并在判别式模型中取得了很大的成果。因此,研究者将CNN引入生成器和判别器,称作深度卷积对抗神经网络(Deep Convolutional GAN),如下图所示。本质上,DCGAN是在GAN的基础上提出了一种训练架构,并对其做了训练指导,比如用卷积层取代了大部分全连接层,去掉池化层,采用Batch Normalization技术,将判别模型的发展成果引入到了生成模型中。模型结构如下。
DCGAN使用的上采样的操作叫做转置卷积,我们可以通过上采样生成指定大小的图片。