63

利用NAS寻找最佳GAN:AutoGAN架构搜索方案专为GAN打造

 4 years ago
source link: https://www.tuicool.com/articles/eaaayuV
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

神经架构搜索(NAS)已经在图像分类和分割任务中显示出一定的成功。而作为利用神经架构搜索生成生成对抗网络(GAN)的方法,AutoGAN 相比于现有的 SOTA GAN 模型具有很大的优势。本文首先介绍了 GAN 的工作原理以及目前的手工设计方法,然后展示了 AutoGAN 如何利用神经架构搜索来自动寻找最佳的 GAN 架构。

自从生成对抗网络(GAN)在 NIPS 2014 大会上首次发表以来,它就一直是深度学习领域的热门话题。

其中一个特别的原因是:GAN 能够基于很少的现有内容创造全新的内容。正是这种创造力使 GAN 一族变得如此强大。GAN 已被证明能够将这种创造力应用于诸多不同的实际应用中:

  • 生成穿特定服饰者的图像。

    非常适合在虚拟平台上将服装在线展示给客户;

  • 艺术品创作;

  • 电影和视频游戏的重制和质量改进;

  • 加强对暗物质等非常复杂的高深物理课题的研究。

GAN 的应用案例不胜枚举。

因为 GAN 极具实用价值,因此投入了大量资源,以弄清楚它们的工作机制以及如何设出计最佳的 GAN 网络。最后,经过几年的发展和探索,AutoML 和神经架构搜索(NAS)进入了 GAN 领域。

GAN 工作原理

生成对抗网络(GAN)属于「生成」模型范畴。这意味着它们能够生成全新的「有效」数据。我们所说的有效数据是指,网络的输出应该是我们期望得到的数据。

为了说明这一点,举个例子,我们希望生成一些用于训练图像分类网络的新图像。当然,对于这类应用,我们希望自身的训练数据尽可能逼真,甚至与其他图像分类训练数据集的风格极其相似。

下图显示了 GAN 生成的一组图像的示例。它们看起来非常逼真!如果不告诉我们这是计算机生成的,则很可能信以为真!

bqIZvqq.jpg!web

ProGAN 的输出示例。 图源: https://arxiv.org/pdf/1710.10196.pdf 

为了做到这一点,GAN 构建了两个独立且对抗的网络:生成器和判别器。当仅输入一个噪声图像阵列时,生成器经过训练可以创建逼真的图像。判别器经过训练可以对图像是否真实进行判别。

GAN 的真正能力源于它们遵循的对抗训练风格。生成器网络的权重是根据判别器的损失来学习的。因此,生成器以这样的方式进行训练:对于它生成的图像,很难判断是否真实。与此同时,图像越真实,判别器越能判别图像真伪,无论它们在肉眼看来有多相似。

因此,GAN 构建了一种反馈回路,其中生成器帮助训练判别器,判别器帮助训练生成器,两者相互促进。下图 GAN 的结构图说明了这一点:

ruIBRzu.png!web

生成对抗网络的结构图。

注意,生成器只是一个输出图像的 CNN,而判别器只是一个输出类概率的 CNN 分类网络,非常简单。由于这种简单性,大多数 GAN 架构实际上只是其他 SOTA 深度网络的副本。生成器可以采用类似调整后 U-Net 的形式,而判别器通常采用 ResNet、DenseNet 或类似的体系结构。

这样做的好处是可以简化部分问题。研究人员可以简单地借鉴先前已验证的网络设计,并将重点放在 GAN 的算法设计和训练机制上。

而局限性就是:如果当前的网络设计不是最适合 GAN 的呢?GAN 可以自行运行,但是专门为 GAN 设计的改进网络结构可以进一步改善 GAN 性能。

使用 AutoGAN 寻找最佳 GAN

神经架构搜索(NAS)是另一个热门的深度学习主题。NAS 是一种搜索最佳网络架构的算法。

大多数 NAS 算法都通过下列方式工作:

  1. 首先定义一组可能用于我们网络的「构建块」;

  2. 然后使用循环神经网络(RNN)控制器对这些构建块进行采样,将它们组合在一起,创建一种端到端架构;

  3. 在特定数据集上训练和评估新构建的网络;

  4. 根据评估,调整 RNN 选择的构建块,即 RNN 将选择一个新集合,保留有助于提升准确率的块和配置,不能提升准确率的块和配置替换掉或直接删除;

  5. 重复步骤 3 到 4 多次,直到找到最佳架构。

这种类型的 NAS 已成功应用于图像分类和语义分割任务中。

QBFvQ3V.jpg!web

NAS 算法。 图源: https://arxiv.org/pdf/1707.07012.pdf

AutoGAN 也遵循完全相同的学习方案,并且特别注重构建生成器网络,因为它在寻找最佳分类网络(用作判别器)方面做了更多的工作。

正如作者在论文中所指出的,训练 GAN 本身就会由于设计原因而导致训练结果不稳定,而精细的网络构建对于流程的顺利进行至关重要。考虑到这一点,AutoGANs 的搜索空间要比 NAS 的有限得多。AutoGAN 的生成器搜索空间不能从许多不同类型和大小的卷积块中采样并跳跃连接,而是设置为:

  • 二进制值跳跃,指示当前单元是否从前一个单元获取附加跳跃连接;

  • 基本卷积块,决定是否包括前激活或后激活;

  • 归一化类型的选择:

    批归一化、实例归一化、无归一化;

  • 要使用的上采样类型:

    双线性上采样、最近邻上采样或 2 步幅反卷积;

  • 是否使用单元内的附加跳跃连接。

zAZBFfb.jpg!web

AutoGAN 生成器网络的搜索空间。 图源: https://arxiv.org/pdf/1908.03835v1.pdf

有了这个更易控制的搜索空间,应用 NAS 来寻找最佳的生成器架构变得更加简单和稳定,因为 NAS 的搜索范围和复杂程度要小很多。

使训练更有效的另一种技术是使用多级架构搜索(Multi-Level Architecture Search,MLAS)而不是常规的层次架构搜索(SLAS)。使用常规 SLAS,将使用单个 RNN 控制器一次构建整个 NAS 网络。但是使用 MLAS,网络实际上是逐步建立的。

MLAS 以自下而上的方式搜索,分别为每个单元执行架构搜索。因此,每个单元将采取各自的 RNN 控制器进行搜索。从某种意义上说,这也简化了搜索过程,因为 NAS 一次只关注网络的一个特定部分,而不是复杂的整体。

yIb6ZnI.png!web

AutoGAN 的 RNN 控制器。 图源: https://arxiv.org/pdf/1908.03835v1.pdf 

凭借其精密的新训练设置和细粒度、集中的单元搜索空间,AutoGAN 能够实现 SOTA 结果。具体来说,它为基于人类判断生成高视觉质量的新图像设置了新的标准。

原文链接: https://towardsdatascience.com/automatically-finding-the-best-neural-network-for-your-gan-c0b97a5949f2


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK