生成对抗性网络简介

这篇博客将介绍生成对抗性网络(GAN)、各种GAN变体以及解决现实世界问题的有趣的应用程序。虽然这篇文章中的大多数例子都是关于将GANs用于艺术和设计,但同样的技术可以很容易地适应并应用于许多其他领域:医学、农业和气候变化。GANs功能强大且多才多艺。

Generative Adversarial Networks (GANs) 生成对抗性网络

这是GAN系列教程的第一篇文章:

  1. 生成对抗性网络简介(本博客)
  2. 入门:时尚MNIST的DCGAN
  3. GAN训练挑战:彩色图像的DCGAN

1. 原理

1. GANs如何工作

GANs是一种生成模型,它观察许多样本分布,并生成更多相同分布的样本。其他生成模型包括变分自动编码器(VAE variational autoencoders )和自回归模型( Autoregressive models)。

2. GAN架构

在基本的GAN架构中有两个网络:生成器模型和鉴别器模型。 GANs的名字中有“对抗性”一词,因为这两个网络是同时训练的,并且相互竞争,就像在国际象棋等零和游戏中一样。

生成器(generator )模型生成新的图像。生成器的目标是生成看起来如此真实的图像,从而愚弄鉴别器。在用于图像合成的最简单的GAN架构中,输入通常是随机噪声,其输出是生成的图像。

鉴别器(discriminator )只是一个二进制图像分类器,它的工作是分类图像是真的还是假的。在更复杂的GANs中,可以用图像或文本来调节鉴别器,以进行图像到图像的翻译或文本到图像的生成(Image-to-Image translation or Text-to-Image generation))。

综合来看,GAN的基本架构是这样的:生成器生成假图像;将真实图像(训练数据集)和伪图像分别分批输入鉴别器。然后,鉴别器告诉图像是真的还是假的。

3. 培训GAN

Minimax游戏:G对D
大多数深度学习模型(例如图像分类)都是基于优化:找到成本函数的低值。GANs是不同的,因为两个网络:生成器和鉴别器,每个网络都有自己的成本,目标相反:
生成器试图欺骗鉴别器,使其将假图像视为真实图像
鉴别器试图正确地对真实图像和伪造图像进行分类
下面的极小极大博弈数学函数说明了训练过程中的这种对抗性动态。如果你不理解数学,不要太担心,我将在未来的DCGAN文章中对G损失和D损失进行编码时更详细地解释。

在训练过程中,生成器和鉴别器都会随着时间的推移而改进。生成器越来越善于生成与训练数据相似的图像,而鉴别器则越来越善于区分真实图像和伪造图像。
训练GAN是为了在以下情况下在游戏中找到平衡(equilibrium):
生成器生成的数据看起来与训练数据几乎相同。
鉴别器不再能够区分假图像和真实图像之间的区别。

4. 艺术家与评论家

模仿杰作是学习艺术的好方法-“艺术家如何在世界著名博物馆复制杰作”。作为一名模仿杰作的人类艺术家,我会找到我喜欢的艺术品作为灵感,并尽可能多地复制它:轮廓、颜色、构图和笔触,等等。然后一位评论家看了一眼这本书,告诉它看起来是否像真正的杰作。

GANs的培训与该过程类似,可以把生成器看作艺术家,把鉴别器看作评论家。不过,请注意人类艺术家和机器艺术家之间的类比差异:生成器无法访问或查看它试图复制的杰作。相反,它只依靠鉴别器的反馈来改善它生成的图像。

5. 评估指标

一个好的GAN模型应该具有良好的图像质量——例如不模糊并且类似于训练图像;多样性:生成了各种各样的图像,这些图像近似于训练数据集的分布。

为了评估GAN模型,可以在训练期间或通过与生成器模型的推理来直观地检查生成的图像。如果你想定量评估GAN,这里有两个流行的评估指标:

  • Inception Score 捕捉生成图像的质量和多样性
  • Fréchet Inception Distance 比较真实图像和伪造图像,而不仅仅是孤立地评估生成的图像

6. GAN变体

自从Ian Goodfellow等人在2014年发表最初的GAN论文以来,已经出现了许多GAN变体。它们倾向于相互建立,要么解决特定的训练问题,要么创建新的GANs架构,以实现对GANs的更精细控制或更好的图像。
以下是其中一些突破性的变体,为未来GAN的进步奠定了基础。无论如何,这并不是所有GAN变体的完整列表。

  • DCGAN(具有深度卷积生成对抗性网络的无监督表示学习)是第一个在其网络架构中使用卷积神经网络(CNN)的GAN提案。目前大多数GAN变体在某种程度上是基于DCGAN的。因此,DCGAN很可能是你的第一个GAN教程,学习GAN的“Hello World”。

  • 创建WGAN(Wasserstein GAN)和WGAN-GP(是为了解决GAN训练挑战,如模式崩溃——当生成器重复生成相同的图像或(训练图像的)一小部分时。WGAN-GP通过使用梯度惩罚而不是权重裁剪来提高训练稳定性,从而改进了WGAN。

  • cGAN(条件性生成对抗性网络)首先引入了基于条件生成图像的概念,该条件可以是图像类标签、图像或文本,就像在更复杂的GAN中一样。Pix2Pix和CycleGAN都是条件GAN,使用图像作为图像到图像转换的条件。

  • Pix2PixHD(具有条件GANs的高分辨率图像合成和语义操作)消除了多个输入条件的影响,并如论文示例所示:控制生成的服装图像的颜色、纹理和形状,用于时尚设计。此外,它可以生成逼真的2k高分辨率图像。

  • SAGAN(自注意生成对抗性网络)提高了图像合成质量:通过将自注意模块(NLP模型中的一个概念)应用于神经网络,使用来自所有特征位置的线索生成细节。谷歌DeepMind扩大了SAGAN的规模,打造了BigGAN。

  • BigGAN(用于高保真自然图像合成的大规模GAN训练)可以创建高分辨率和高保真图像。

  • ProGAN、StyleGAN和StyleGAN2都可以创建高分辨率图像。

  • ProGAN(用于提高质量、稳定性和变异性的GAN的渐进式增长)使网络逐步增长。

  • 由NVIDIA Research推出的StyleGAN(一种用于生成对抗性网络的基于风格的生成器架构)使用了具有自适应实例规范化(AdaIN)的进步增长的ProGAN加图像风格传输,并能够控制生成图像的风格。

  • StyleGAN2(分析和改进StyleGAN的图像质量)通过在归一化、渐进生长和正则化技术等领域进行一些改进,对原始StyleGAN进行了改进。

7. GAN应用

GANs是通用的,可以用于各种应用。

8. 图像合成(Image synthesis)

图像合成可能很有趣,并提供实际用途,例如机器学习(ML)训练中的图像增强或帮助创建艺术品和设计资产。
GANs可以用来创建以前从未存在过的图像,这也许是GANs最出名的地方。 它们可以创造出看不见的新面孔、猫的形象和艺术品,等等。我在下面包含了一些高保真度的图像,这些图像是我从StyleGAN2支持的网站上生成的。转到这些链接,自己做实验,看看你从实验中得到了什么图像。

Zalando Research使用GANs生成基于颜色、形状和纹理的时尚设计(在GANs中解开多个条件输入)。
脸书研究的时尚++超越了创造时尚,而是推荐时尚改变建议:“什么是时尚?”

GANs还可以帮助训练强化剂。例如,NVIDIA的GameGAN模拟游戏环境。

9. 图像到图像的转换(Image-to-image translation)

图像到图像的转换是一项计算机视觉任务,它将输入图像转换到另一个领域(例如,颜色或风格),同时保留原始图像内容。这也许是在艺术和设计中使用GANs最重要的任务之一。
Pix2Pix(具有条件对抗性网络的图像到图像翻译)是一种条件GAN,可能是最著名的图像到图片转换GAN。然而,Pix2Pix的一个主要缺点是它需要成对的训练图像数据集。

在这里插入图片描述

使用条件对抗网络的图像到图像转换
研究了作为通用解决方案的条件对抗网络图像到图像的转换问题。这些网络不仅学习从输入图像映射到输出图像,还要学习损失函数训练此映射。 这使得应用相同的通用方法成为可能,对于传统上需要非常不同的损失公式的问题。 我们证明了这种方法可以有效地合成来自标签贴图、从边缘贴图重建对象以及为图像着色等其他任务。 事实上,自从 pix2pix 软件发布以来 这篇论文,大量网民(其中不乏艺术家)纷纷发帖 他们自己对系统的实验,进一步证明了其广泛的适用性和易于采用,无需调整参数。如这项工作表明可以在不手工设计损失的情况下获得合理的结果函数之一。

GAN中多个条件输入的纠缠
在本文中,我们提出了一种在生成对抗性网络(GANs)中解开多输入条件影响的方法。特别是展示了为计算机辅助时装设计控制生成的服装图像的颜色、纹理和形状的方法。为了解开输入属性的影响,我们定制了具有一致性损失函数的条件GAN。 在实验中一次调整一个输入,并表明可以引导网络生成新颖逼真的服装图像。此外还介绍了一个服装设计过程,该过程估计现有服装的输入属性,并使用生成器对其进行修改。

CycleGAN基于Pix2Pix构建,只需要未配对的图像,在现实世界中更容易获得。它可以将苹果的图像转换为橙子,白天转换为夜晚,马的图像转换成斑马…好吧。这些可能不是现实世界中的用例;从那时起,为艺术和设计开发了许多其他图像对图像的Gan。

现在你可以把你的自拍翻译成漫画、绘画、卡通或任何其他你能想象到的风格。例如使用白盒卡通GAN(White-box CartoonGAN)将我的自拍变成卡通版。

着色不仅可以应用于黑白照片,还可以应用于艺术品或设计资产。在艺术品制作或UI/UX设计过程中,我们从轮廓或轮廓开始,然后上色。自动着色可以为艺术家和设计师提供灵感。

10. 文本到图像(Text-to-Image)

我们已经看到了很多由GANs翻译的图像到图像的例子。还可以使用单词作为生成图像的条件,这比使用类标签作为条件更灵活、更直观。
近年来,NLP与计算机视觉的结合已成为一个热门的研究领域。以下是几个例子:用于高分辨率图像合成的StyleCLIP和Taming Transformers(StyleCLIP and Taming Transformers for High-Resolution Image Synthesis)。
在这里插入图片描述

展示了如何 (i)使用CNN来学习上下文丰富的图像词汇成分,进而 (ii) 利用变压器有效地对其建模 高分辨率图像中的构图。 我们的方法很容易应用于 条件合成任务,其中既有非空间信息,如对象 类和空间信息(如分割)可以控制 生成的图像。特别是,我们展示了关于 使用变压器对百万像素图像进行语义引导合成并获得 类条件 ImageNet 上自回归模型的最新情况。

11. 超越图像

GANs不仅可以用于图像,还可以用于音乐和视频。例如,Magenta项目中的GANSynth可以制作音乐。这里有一个有趣的GAN视频动作转移示例,名为“Everyone Dance Now”(YouTube | Paper)。我一直很喜欢看这段迷人的视频,视频中专业舞者的舞蹈动作被转移到业余爱好者身上。

12. 其他GAN应用

以下是其他一些GAN应用程序:

  1. 图像修复:替换图像中缺失的部分。
    在这里插入图片描述
    在这里插入图片描述

  2. 图像取消剪切或扩展:这可能有助于模拟虚拟现实中的相机参数。

无界:用于图像扩展的生成对抗性网络
图像扩展模型在图像编辑、计算摄影和计算机图形学中有着广泛的应用。虽然文献中对图像修复进行了广泛的研究,但将最先进的修复方法直接应用于图像扩展是一项挑战,因为它们往往会生成语义不一致的模糊或重复像素。我们在生成对抗性网络(GAN)的鉴别器中引入了语义条件,并在具有连贯语义和视觉上令人愉悦的颜色和纹理的图像扩展方面取得了很好的结果。我们还在极限扩展中显示了有希望的结果,例如全景生成。

  1. 超分辨率(SRGAN和ESRGAN):将图像从低分辨率增强到高分辨率。这可能对照片编辑或医学图像增强非常有帮助。

使用生成对抗性网络的照片真实单图像超分辨率
尽管使用更快、更深的卷积神经网络在单图像超分辨率的准确性和速度方面取得了突破,但一个核心问题在很大程度上仍未解决:当在大规模放大因子下进行超分辨率时,如何恢复更精细的纹理细节?基于优化的超分辨率方法的行为主要由目标函数的选择驱动。最近的工作主要集中在最小化均方重建误差上。 由此产生的估计具有高峰值信噪比,但它们往往缺乏高频细节,并且在感觉上不令人满意,因为它们无法匹配在更高分辨率下预期的保真度。在本文中,我们提出了SRGAN,一种用于图像超分辨率(SR)的生成对抗性网络(GAN)。据我们所知,这是第一个能够推断4倍放大因子的照片逼真自然图像的框架。为了实现这一点,我们提出了一个感知损失函数,该函数由对抗性损失和内容损失组成。对抗性损失使用鉴别器网络将我们的解决方案推向自然图像流形,该鉴别器被训练来区分超分辨率图像和原始照片逼真图像。 此外使用了由感知相似性而不是像素空间中的相似性驱动的内容损失。 深度残差网络能够在公共基准上从大量下采样的图像中恢复照片逼真的纹理。一项广泛的平均意见得分(MOS)测试显示,使用SRGAN在感知质量方面有非常显著的提高。与使用任何最先进的方法获得的MOS分数相比,使用SRGAN获得的MOS得分更接近原始高分辨率图像的MOS分数。

以下是一个如何利用GANs应对气候变化的例子。地球智能引擎是FDL(前沿发展实验室)2020项目,使用Pix2PixHD模拟洪水后一个地区的样子。

地球智能引擎是FDL 2020项目,旨在帮助城市规划者更有效、更直观地沟通洪水风险,以支持气候适应性基础设施的发展。
我们通过将生成计算机视觉方法与气候科学模型相结合,创建了第一个物理一致、真实感强的沿海洪水和重新造林可视化引擎。我们通过确保GAN生成图像的物理一致性的新方法,以及使用多个视觉和气候模型的模块化方法来实现这一点。

我们已经看到了来自论文和研究实验室的GAN演示。以及开源项目。这些天,我们开始看到使用GANs的真正商业应用程序。设计师熟悉使用图标中的设计资源8。看看他们的网站,你会注意到GAN的应用程序:从Smart Upscaler、Generated Photos到Face Generator。

参考

猜你喜欢

转载自blog.csdn.net/qq_40985985/article/details/130820101