如何提高生成器G样本质量的新方法



最近,生成模型的快速发展引起了广泛的关注,尤其是由Goodfellow等人发明的生成对抗网络(GANs),其所建立的学习框架就像老顽童的“左右互搏术”,由生成器G和判别器D组成,两者在博弈过程中扮演着不同角色。

对于给定训练数据Dt,生成器G的目的就是创建与训练数据Dt具有相同概率分布的样本。判别器D属于常见的二分类器,主要负责两个工作。 首先,它要判别输入究竟是来自真实的数据分布(Dt)还是生成器;此外,判别器通过反传梯度指导生成器G创造更逼真的样本,这也是生成器G优化其模型参数的唯一途径。在博弈过程中,生成器G将随机噪声作为输入并生成样本图像Gsample,要使判别器D以为这是来自真实训练集Dt的判断概率最大化。

训练期间,判别器D的一半时间将训练集Dt的图像作为输入,另一半时间将生成器得到的图像Gsample作为输入。训练判别器D要能最大化分类正确的概率,能够区分来自训练集的真实图像和来自生成器的假样本。最后,希望博弈最终能达到平衡——纳什均衡。

所以,生成器G要能使得生成的概率分布和真实数据分布尽量接近,这样判别器D就无法区分真实或假冒的样本。

在过去的几年中,GANs已经被用于许多不同的应用,包括:生成合成数据,图像素描,半监督学习,超分辨率和文本到图像生成。然而,大部分关于GANs的工作都集中在开发稳定的训练技术上。的确,我们都知道GANs在训练期间是不稳定的,并且对超参数的选择十分敏感。本文将简要介绍目前GANs前沿技术,关于如何提高生成器G样本质量的新方法。

卷积生成对抗网络

深度卷积生成对抗网络(DCGAN)为GANs能够成功用于图像生成迈进了一大步。它属于ConvNets家族的一员,利用一些结构约束使得GANs的训练更稳定。在DCGAN中,生成器G由一系列转置卷积算子组成,对于输入的随机噪声向量z,通过逐渐增加和减少特征的空间维度,对其进行变换。

如何提高生成器G样本质量的新方法

使用DCNNs进行无监督表示学习的网络结构示意图

DCGAN引入了一系列网络结构来帮助GAN训练更稳定,它使用带步幅的卷积而不是池化层。此外,它对生成器和判别器都使用BatchNorm,生成器中使用的是ReLU和Tanh激活函数,而判别器中使用Leaky ReLU激活函数。下面,我们来具体看一下:

BatchNorm是为了将层输入的特征进行规范化,使其具备零均值和单位方差的特性。BatchNorm对于网络训练是至关重要的,它可以让层数更深的模型工作正常而不会发生模式崩塌。模式崩塌是指生成器G创建的样本具有非常低的多样性,换句话说就是生成器G对于不同的输入信号都返回相同的样本。此外,BatchNorm有助于处理由于参数初始化不良引起的问题。

此外,DCGAN在判别器网络中使用Leaky ReLU激活函数。与常规ReLU函数不同,Leaky ReLU不会把所有的负值都置零,而是除以一个比例,这样就能传递一些很小的负的梯度信号,从而使判别器中更多的非零梯度进入生成器。

如何提高生成器G样本质量的新方法

ReLU函数(左),Leaky ReLU(右),与ReLU不同,Leaky ReLU函数对于x轴左侧的负值导数不为零。

DCGAN这样的网络结构目前仍被广泛应用,但大部分的工作都集中在如何使GAN训练更加稳定。

1. 基于自注意力的生成对抗网络

自注意力生成对抗网络(Self-Attention for Generative Adversarial Networks,SAGAN)是这种类型的网络之一。近来,基于注意力的方法已经被成功用于机器翻译等问题上。 自注意力GANs具有特殊的网络结构,使得生成器G能够建模长程依赖关系,核心思想是使生成器G能够生成具有全局细节信息的样本。

如果我们看一下DCGAN模型会发现常规的GANs模型主要基于卷积,使用局部感受野(卷积核)来学习表征。 卷积具有很多非常好的属性,比如参数共享和平移不变性。

典型的深度卷积网络(Deep ConvNets)通过层级递进的方式来学习表征。 用于图像分类的常规ConvNets前几层中只会学到边缘和角点等简单的特征。然而ConvNets却能够使用这些简单的表征来学习到更为复杂的表征。 简而言之,ConvNets的表征学习是基于简单的特征表示,很难学习到长程依赖关系。

实际上,它可能只适用于低分辨率特征向量。问题在于,在这种粒度下,信号的损失量难以对长程细节进行建模。下面我们看一些样本图像:

如何提高生成器G样本质量的新方法

使用DCNNs进行无监督表示学习的生成样本示意图




上一篇:魔兽世界怀旧服黑莲花哪里多 黑莲花采集分布位
下一篇:如何把存储器做到CPU里?我们向大脑找答案