自从其在NIPS 2014上首次发布以来,生成对抗网络(GAN)一直是深度学习中的热门话题。
理由是:GAN可以仅基于少量内容来创建新内容。正是这种创造力使它们如此强大。
GAN已被证明能够将这种创造力应用于多种多样且有用的应用程序:
仅举几个例子。
有了这些,大量的资源被投入到GAN研究中,以了解它们如何工作以及如何设计绝对最佳的GAN网络。最终,经过几年的成熟,AutoML和神经体系结构搜索(NAS)进入了GAN领域。
本文分为以下两个部分:
第一部分说明GAN的工作方式以及当前如何手动设计它们。
第二个展示了全新的深度学习研究成果-AutoGAN,该研究应用了Neural Architecture Search来自动找到最佳的GAN架构。
GAN如何工作
生成对抗网络(GAN)归入“生成”模型组。这意味着他们能够产生,即产生全新的“有效”数据。有效数据是指网络的输出应该是我们认为可以接受的目标。
为了说明,考虑一个示例,我们希望生成一些新图像来训练图像分类网络。当然,对于这样的应用程序,我们希望我们的训练数据尽可能真实,在其他图像分类训练数据集的样式上可能非常相似。
下图显示了GAN生成的一组图像的示例。
他们看起来很真实!如果不告诉我们它们是计算机生成的,我们可能会相信有人收集了这些信息!
渐进式GAN的示例输出
为此,GAN建立了两个独立的相对网络:生成器和鉴别器。当仅将嘈杂的图像阵列作为输入时,会对生成器进行训练以创建逼真的图像。
鉴别器经过训练可以对图像是否真实进行分类。
GAN中的真正力量来自于他们遵循的相反的训练方式。
生成器网络的权重是根据鉴别器的损失来学习的。
因此,以某种方式推动生成器进行训练,以使其生成的图像很难辨别它们是否真实。
在这些图像看起来越来越真实的同时,鉴别器在分辨哪些图像是真实图像方面也越来越好,无论它们在肉眼上看起来多么相似。
因此,GAN建立了一种反馈回路,其中生成器帮助训练鉴别器,鉴别器帮助训练生成器。他们俩在一起变得更好。
下图有助于说明这一点:
注意,生成器只是一个以图像为输出的CNN,而鉴别器只是一个以类概率为输出的CNN分类网络,很简单。由于这种简单性,大多数GAN架构只是其他最新的深度网络的副本。生成器可以采用类似U-Net的形式,而鉴别器通常看起来像ResNet,DenseNet或类似的体系结构。
好消息是,这可以简化部分问题。研究科学家可以简单地借用先前已证实的研究中的网络设计,而只需专注于GAN的算法设计和训练机制。
另一方面,这可能会有所限制。如果当前的网络设计不是最适合GAN怎么办?它们自己可以很好地工作,但是也许可以通过为他们量身定制的设计来改进网络结构,从而进一步提高GAN性能。
使用AutoGAN查找最佳GAN
神经架构搜索(NAS)一直是深度学习的另一个热门话题。NAS是一种搜索最佳神经网络架构的算法。
大多数NAS算法以以下方式工作。
这种样式的NAS已成功应用于图像分类和语义分割。
NAS 算法
AutoGAN也遵循相同的学习方案,特别是专注于构建Generator网络,因为在寻找最佳分类网络(针对Discriminator)方面已进行了更多工作。
正如作者在论文中所指出的那样,仅由于其设计,训练GAN本身就不稳定。精心的网络构建对于使流程平稳运行至关重要。考虑到这一点,AutoGAN的搜索空间比NAS的搜索空间要受限制得多。不能从许多不同类型和大小的卷积块中进行采样并跳过连接,而是将AutoGAN的Generator搜索空间设置为:
AutoGAN的Generator网络的搜索空间
有了这个受更多控制的搜索空间,由于NAS的搜索范围和复杂性大大降低,因此应用NAS查找最佳的Generator架构变得更加简单和稳定。
使培训更有效的另一种技术是使用多层体系结构搜索(MLAS),而不是常规的多层体系结构搜索(SLAS)。对于常规的SLAS,将使用单个RNN控制器一次构建整个NAS网络。但是使用MLAS可以逐步建立网络。
MLAS以自下而上的方式执行搜索,对每个单元分别执行架构搜索。因此,每个小区将使用其自己的个人RNN控制器进行搜索。从某种意义上说,这也简化了搜索,因为NAS一次只专注于网络的一个特定部分,而不是整个非常复杂的整体。
AutoGAN的RNN控制器
凭借其巧妙的新培训设置以及细化,集中的单元格搜索空间,AutoGAN能够获得最先进的结果。
具体来说,它设置了一个新的标杆,用于根据人的判断来生成高视觉质量的新图像。
AutoML正在逐步进入DeepLearning和AI的许多领域。
毫无疑问,这将是未来几年AI研究的重点,人工智能创造人工智能。
相关论文源码下载地址:关注“图像算法”微信公众号