大数据 频道

一篇文章读懂“GAN”——生成式对抗网络

  【IT168 技术】机器学习是一个不断发展的领域,因此对于很多人来说,时刻跟踪这一领域的最新进展是很难的。GAN(生成式对抗网络)是最近引起广泛关注的新兴领域之一,为了让大家能够更好地跟上技术发展的脚步,我们安排了一个简短的GAN速成文章:

  ·它们适用于哪些生成模型

  ·过去的时间里它们发生了什么样的变化

  ·它们可应用于哪里

  ·GAN带来的挑战

  ·这个新兴的技术领域未来如何

  下面我们就开始吧。

  生成模型

  使用生成模型,目的是对给定数据集的分布进行建模。对于我们今天讨论的生成模型,该数据集通常是一组图像,但也可能是其他类型的数据,例如音频样本或时间序列数据。

  获取此分布模型的方法有两种:隐式或显式。

  那么两者之间有什么区别?

  有了显式的生成模型,您就可以掌握概率密度。我们可以直接对该分布中的所有变量建模。而对于隐式生成模型,您必须进行抽样以了解我们的模型分布。

  当我们评估生成模型时,一种实现方法是使用图像。因此,我们可以从模型分布中取样,然后目视检查样本,以查看它们与原始数据的匹配程度。样本图像离训练图像越近,说明我们的模型越好。

  生成模型的类型

  在深度学习中,当我们谈论生成模型时,通常是指下列四种模型之一:

  ·自回归(Autoregressive)

  ·可逆的(Reversible)

  ·变分自动编码器(Variational Autoencoders)

  ·生成式对抗网络(Generative Adversarial Networks)

  自回归模型:使用自回归模型,您可以根据之前生成的像素来生成每个像素,从而生成图像。也就是说,当使用自回归模型生成图像时,会逐像素生成图像。这是一个自回归模型的例子。

  可逆模型:可逆模型的概念是采用GAN,但要使生成器过程可逆。这意味着我们可以通过可逆模型(从噪声到图像以及从图像到噪声)同时传递图像和噪声。这是可逆模型的一个例子。

  变分自动编码器:自动编码器由一对相连的网络组成:编码器和解码器。变分自动编码器的特点是具有连续的潜在空间。这样可以轻松进行采样和插入,这在使用VAE探索特定方向上已有数据的变化时特别有用。这是一个变体自动编码器的例子。

  生成式对抗网络

  简要介绍完其他生成模型之后,现在我们开始讲解GAN或生成对抗网络。

(图像来自于Brock 2018

  首先,让我们查看一些由GAN生成的图像,以了解过去五年中已取得的进展。上面的这些图像是无条件生成的ImageNet样本,该样本来自名为BigGAN的模型,该模型由Andrew Brock在2019年国际学习代表大会(ICLR)上提出。

  这些图像样本之所以引人注目,主要有两个原因:清晰度和类别的多样性。一个动物、一个蘑菇、食物、一道风景,这些都是一起生成的,而且分辨率都很高。

  但并不总是这样。

(图片来自Goodfellow et al 2014

  这是最初的GAN论文中的图片,作者为Ian Goodfellow等人。2014年该论文发表时,一跃成为非常先进的图像生成技术。但是与BigGAN的样本相比,可以说是天壤之别。从上图所示的这些样本中可以看到,图像分辨率很低,并且容貌尚未完全解析。

(图像案例来自 Karras et al. 2019)

  现在让我们快进大概4年,到Nvidia的StyleGAN论文发布,这些生成的人物图像看起来已经非常真实。从2014年的模糊图像开始,GAN所生成的面孔在短短4年内就与真人几乎无法区分。

  GAN概述

  像上面我们所介绍的其他模型一样,GAN是生成模型的一种形式。但是,与我们讨论的其他模型不同,GAN是隐式生成模型。这意味着如果我们想查看模型的分布情况,就必须对其进行抽样。

  那么GAN如何工作?

  GAN有两个网络:生成器(生成组件)和鉴别器(对抗组件)。

  鉴别器经过训练可以识别生成的示例,并将其与实际示例区分开。我们通过采用一组真实的示例和一组生成的示例,并让鉴别器尝试对真实示例进行分类,以此来训练辨别器。通过训练,我们希望鉴别器能够识别样本是来自于真实的分布还是生成的分布。

  与鉴别器相对应的是生成器,它可以吸收随机噪声,并学会将随机噪声转换为看起来逼真的样本,逼真到足以欺骗鉴别器。

  随着时间的流逝,这种情况会发生,因为生成器在生成看起来像真实示例的样本方面变得越来越好,而鉴别器甚至会随机猜测样本是真实的还是生成的。我们可以将其想象成一个两人的极大极小博弈,而鉴别器进行随机猜测的这个点就是它的纳什均衡。

  训练GAN生成器

  生成器将如何学习将随机噪声转换为可以通过鉴别器的图像?

  生成器获取样本(通常来自高斯分布),并通过神经网络对其进行转换以创建样本。同样,我们的目标是让这个示例看起来尽可能真实。

  最初,这些转换是完全没有意义的。把随机噪声通过发生器,另一边得到的结果就会很像随机噪声。

(说明噪声向图像的转换过程。噪音来自Adobe Stock,面容来自Karras et al. 2018)

  现在,当您生成一个灰度点的图像并将其传递给鉴别器时,大多数情况下鉴别器会将其识别为一个并不真实的例子。使用反向传播,您将获得一个通过生成器发送的信号,该信号告诉生成器中的各层,根据刚发送给鉴别器的样本的不良性能来更新其权重。

  经过这些调整后,更多的随机噪声会通过生成器创建一个新图像发送给鉴别器。这次,鉴别器可能会被我们的样本所欺骗了,因为——这主要是由于训练初期的随机性——图像中的某些特征类似于真实数据集。然后,生成器得到一个信号,表明最后一个样本表现良好,并再次相应地更新其权重。

  通过许多次迭代并生成大量图像,生成器权重将根据它们在欺骗鉴别器方面的表现而继续更新。如果训练顺利,生成器可以获取随机噪声并将其转换为逼真的图像。

  生成器和鉴别器都可以使用此过程完全不受监督地进行训练,并且由于损失函数产生的动态特性,可以创建大量样本。

  GAN中的损失函数

  在GAN中,生成器和鉴别器都有各自的损失函数。尽管这两种不同的损失函数允许我们通过GAN进行无监督学习,但它们也给训练带来了一些挑战。

  鉴别器的代价是希望将真实样本正确标识为真实样本,并且希望将生成的样本正确标识为已生成(等式1)。

(等式1)

  您可以在此等式的左侧看到,第一项表示将真实样本标识为真实,而右边项表示将生成的样本标识为生成。

  有趣的是,生成器的成本只是该函数的负数(等式2)。

(等式2)

  您可以在这里看到一个常数,其中方程式是指鉴别器将真实示例识别为真实示例,因为生成器与过程中的这一部分没有直接关系。但是人们发现,如果像上面的方程式那样使用生成器的损失函数,损失就会饱和。因此,我们要做的就是稍微改变一下公式(公式3)。

(等式3)

  使用此版本的损失函数,如果生成器创建可被鉴别器很轻松地识别为生成,那么生成器将获得非常强的信号。通过使用第二个等式,它不再完全是一个由两人组成的极大极小博弈,而是使训练按照我们希望的那样进行,而且训练比以前更加稳定。

  GAN的应用

  现在我们已经掌握了GAN训练的知识,让我们深入讲解一些关于应用程序的知识。

  GANs最早的应用之一来自Goodfellow的原始论文,该论文显示了MNIST数字1和5之间的插值。这是一种表示学习,因为通过训练生成器和鉴别器,我们可以学习原始数据集的潜在表示。

(图片来自Karras et al.2019

  你可以在上面的StyleGAN论文和其他GAN论文的图片中看到同样的应用。

  在这个特定示例中,我们看到的是采用源A的样式并将其应用于源B的结构。在左上角,我们将眼镜应用于不同的图像,或者让左边的人们看起来像小孩子。

(图像示例来自Zhu et al. 2017Isola et al. 2016

  GAN的另一个应用是图像翻译——在某些情况下,它是图像风格转换的一种更通用的方法。

  在左边(Zhu),我们看到CycleGAN正在进行一些图像增强,而在右边,Pix2Pix论文(Isola)中,我们正在将图像从一种风格转换为另一种风格。

  所以我们有左侧的街景视图的分割图像,以及右侧的实景图像。然后是卫星图像和类似的地图的图像。

  使用Pix2Pix模型训练这种风格的转换,您可以实现从卫星图到地图,以及从地图到卫星图的变换。因此,如果您要对一组图像进行样式转换,这些模型是最有效的。

  GAN的挑战

  但是,GAN的所有进步并非没有挑战。

  从理论上讲,GAN就像这个有序的两人极大极小博弈一样,逐渐达到其纳什均衡。我们让噪声通过生成器,生成器学会欺骗鉴别器,然后从理论上讲,鉴别器不再善于检测差异并开始随机猜测。

  作为该博弈的运作方式,GAN面临三个主要挑战:

  ·模式崩溃

  ·过分讲究的训练

  ·GAN的评估

  模式崩溃

(模式崩溃的图像,来自Goodfellow 2016

  对于模式崩溃,模型只学习多模式数据集的一个或几个模式。我们训练GAN的数据通常有非常多的模式,这使得模式崩溃存在一定的问题。

  过分讲究的训练

  然后是训练的问题。之前,我们提到了生成器和鉴别器的成本函数。由于此模型中有两个不同的成本函数,因此在平衡这两者方面您可能遇到更多的挑战。

  评估GAN

  在评估GAN时,有几个问题需要考虑。

  首先,来自生成器的好样本并不一定意味着您已经很好地了解了分布。

  其次,估算可能性是很难的,也就很难衡量对分布学习的好坏。这就引出了第三个问题:很难知道从分布中到底学习到了多少。

  最后,评估GAN是一个活跃的研究领域,目前并没有通用的评估方法。许多论文提出了新的评估指标,但在后来的出版物中并没有受到关注。

  GAN的未来

  在本篇概述中,我们主要介绍了GAN在生成图像方面的应用,但这并不是GAN的唯一应用——无论是今天已经看到的,还是未来即将出现的。

  GAN也正在飞跃发展,例如为语音模拟生成音频,开发新药品,为建筑物设计平面图,为结构生成组件,创建图形设计布局,生成表格数据等等。

  随着这类机器学习模型在不同行业和应用中的不断发展,人们对GAN的概念越来越满意,他们将继续寻找更多的领域来利用这一技术。因此,从2014年到今天、到未来,在我们用尽这种对抗网络所带来的所有机遇之前,GAN仍有很长的路要走。

  原文作者:Andrew Martin

1
相关文章