前言
本文对ICCV2019论文《AutoGAN:Neural Architecture Search for Generative Adversarial Networks》进行解读。
这篇文章聚焦于将神经网络结构搜索(NAS)引入到生成对抗网络(GAN)中,以期自动搜索到一个较好的生成器结构而无需人工设计,将该方法称为AutoGAN。为了解决NAS和GAN结合面临的独特挑战,作者首先定义了生成器结构变化的搜索空间,然后使用RNN控制器来指导搜索,并通过参数共享和动态重置来加速该过程。最后使用Inception score作为奖励,引入多级搜索策略以逐步执行NAS。
实验验证了AutoGAN在非条件图像生成任务上的有效性。使用AutoGAN搜索到的网络结构不输于当前手工设计的最先进GAN结构,将FID在CIFAR-10数据集上的最好结果提高到12.42,STL-10数据集上的最好结果提高到31.01。
论文地址:https://arxiv.org/abs/1908.03835
源码地址:https://github.com/TAMU-VITA/AutoGAN
作者:Xinyu Gong,Shiyu Chang,Yifan Jiang,Zhangyang Wang(德克萨斯A&M大学,MIT-IBM Watson AI Lab)
研究背景
近年来生成对抗网络(GAN)受到学者的广泛关注,其在生成逼真的自然图像方面具有明显优势。为了提高生成图像的质量,研究者们进行了很多工作,包括修改判别器损失函数,增加正则项,引入注意力机制以及采用渐进式的训练方法。但GAN的基本结构设计受到的关注相对较少,早期的大多数GAN一直使用相对较浅的生成器和判别器网络结构。近期,一些GAN在生成器中采用残差结构,以更好地生成高分辨率图像。在大多数计算机视觉任务中,许多进步得益于网络体系结构的改进,例如图像分类、分割和姿势估计。因此,作者认为对基本网络结构的设计进行研究会进一步改善GAN的性能。
近年来,人们对自动设计复杂神经网络结构的兴趣日益浓厚。神经网络结构搜索(NAS)已成功应用到了图像分类、图像分割领域,NAS搜索到的网络结构可以胜过人工设计的模型。但是,简单地将图像分类、分割中应用的NAS思想移植到GAN是不够的。首要问题是,即使是手工设计的结构,GAN的训练也是不稳定并且容易发生模式坍缩(mode collapse),再引入NAS无疑会增大训练的难度。另一个重要挑战是,NAS在图像分类中一般选择验证准确率作为奖励,但选择一个好的评价指标来评估和指导GAN网络结构搜索过程并非易事。
本文专门为GAN提出了一种量身定制的网络结构搜索方案,称为AutoGAN,这是将NAS与GAN结合的首次尝试。本文的创新点总结如下:
(1)定义了GAN网络结构变化的搜索空间,使用RNN控制器来指导结构搜索,结合参数共享和动态重置策略,提高训练速度。
(2)在AutoGAN的优化中,使用IS作为奖励。搜索到的模型在其他GAN指标(如FID)上也能表现出良好的性能。
(3)受Progressive GAN渐进式训练的启发,引入了多级结构搜索(MLAS),MLAS通过beam search以自下而上的顺序方式(in a bottom-up sequential)在多个阶段中进行搜索。
相关工作
1.神经网络结构搜索NAS
NAS算法旨在找到最佳的神经网络结构,而不是针对特定任务使用手工构建的结构。早期的NAS研究工作在图像分类任务上取得了巨大的成功。最近的工作进一步将NAS算法扩展到稠密结构化的预测,CNN压缩和加速。但是,没有针对生成模型开发任何NAS算法。NAS算法包含三个关键部分:搜索空间,搜索策略和性能评估。搜索空间通常有两类:直接搜索整个结构(macro search),或搜索基本单元并以预定方式堆叠(micro search)。对于搜索策略,通常包括强化学习、进化算法、贝叶斯优化、随机搜索和基于梯度的优化方法。性能评估会选定一个代理任务,用于在训练期间有效评估搜索到的网络结构的性能。
2.生成对抗网络GAN
GAN包括一个生成器网络和一个判别器网络,它们之间进行极小极大零和博弈 。GAN在许多生成任务中都取得了巨大的成功,例如文本到图像的翻译,图像到图像的翻译和图像增强。但是GAN的训练非常不稳定,通常会受到不收敛、模式坍缩的影响,且对超参数敏感。为了减轻这些问题,研究者们进行了许多工作,例如Wasserstein损失,频谱归一化,渐进式训练和自注意机制等。
技术方法
GAN由两个相互竞争的网络组成:生成器和判别器,这两个网络必须在学习能力上达到微妙的平衡。那么如何在GAN中一起搜索两个网络?一方面,如果预先固定D(或G)搜索G(或D),则很容易在两者之间产生不平衡,导致更新缓慢或无用的学习。另一方面,虽然有可能共同搜索G和D,但实验获得的经验告诉我们,这样的NAS将进一步加重GAN训练的不稳定性,导致训练振荡严重进而收敛失败。作为折衷,作者仅使用NAS搜索G的结构,而D随着G的不断提升而逐渐提升。
AutoGAN使用RNN控制器从搜索空间中选择基本单元块来构建G网络,其基本方案如图1所示。AutoGAN同样包括三个关键方面:搜索空间,搜索策略,和性能评估。
图 1 RNN控制器的运行方案。每个时间点,控制器都将输出隐藏向量,并将其用相应的softmax分类器解码。在使用MLAS时,每个单元的搜索使用不同的控制器。一旦完成了一个单元的搜索过程,控制器采样M个候选结构,然后从中挑出前K个。这K个结构的控制器输出将作为下一个单元控制器的输入。
1.搜索空间
AutoGAN基于多级搜索策略,生成器由一系列基本单元组成。用一个(s+5)的元素组表示第几个单元(Cells),
第0个单元没有连接,图2说明了AutoGAN生成器的搜索空间:
- 是一个二进制值表示当前第s单元是否使用跳转连接把第i-1单元(i=1,…,s)的输出作为输入。每个单元可以从其他先前的单元进行多个跳转连接。
- C是基本卷积块的类型,包括预激活和后激活卷积块
- N表示归一化类型,包括BN、实例归一化及不使用归一化。
- U表示上采样操作,包括双线性上采样,最近邻上采样和步长为2的反卷积。U还将确定跳转连接特征图的上采样方法
- SC是二进制值表示是否使用shortcut
2.性能评估
IS和FID是GAN的两个主要评价指标。由于FID的计算非常耗时,因此本文选择每个派生子模型的IS作为通过强化学习更新控制器的奖励。
本文使用参数共享来提高NAS的效率,进一步为AutoGAN引入了参数动态重置策略。由于GAN的训练通常不稳定且出现模式坍缩,此时没有必要继续训练。当模式坍缩发生时,训练损失的方差通常很小。所以,作者为生成器和判别器设置了一个移动窗口来存储最新的训练损失值,一旦存储的训练损失标准差小于预定阈值,则终止当前迭代中GAN的训练。在当前迭代中更新完控制器后,再重新初始化GAN模型的参数。注意,不需要重新初始化RNN控制器的参数,这样才能继承历史知识来继续指导网络结构搜索。通过动态重置,搜索过程变得更加高效。
3.搜索策略
训练GAN使用hinge loss以交替方式进行,生成器G和判别器D的损失函数如下:
实验结果
作者进行了各种实验以验证AutoGAN的有效性。搜索到的结构可产生优于或与当前手工设计GAN媲美的结果。
1.在CIFAR-10数据集上,AutoGAN的IS为8.55,FID为12.42,在IS指标方面(越高越好),AutoGAN与Progressive GAN很接近,并且超过了很多最新的模型;在FID指标方面(越低越好),AutoGAN超过了当前所有的模型。对搜索到的生成器结构,总结一些值得注意的观察:
AutoGAN搜索到的结构包含3个卷积块,更倾向使用预激活卷积块而不是后激活。
AutoGAN搜索到的结构更倾向使用最近邻上采样或双线性上采样而不是反卷积。
AutoGAN似乎不喜欢使用任何归一化操作。
AutoGAN习惯使用(密集)跳转连接,习惯使用中等和较长距离的跳转连接(跳过2-4个卷积层),从而实现多尺度特征融合。
2.在CIFAR-10上搜索到的结构可以在STL-10图像生成任务上表现出色,其IS为9.16,FID为31.01,证明了其强大的可移植性。虽然在IS指标稍稍落后于improved MMD-GAN,但在FID指标方面获得了最好的结果。如果从头开始搜索网络结构,在STL-10数据集上可能获得更好的结果,作者将这留给以后的工作。
结论
AutoGAN是第一个将NAS引入GAN的工作,它能够在CIFAR-10和STL-10数据集上搜索到有效的网络结构,与目前最先进的人工设计的GAN模型相比,能够获得具有竞争力的图像生成结果。
由于GAN本身训练的不稳定性和超参数敏感性,AutoGAN比图像分类领域的NAS更具挑战性。虽然将NAS用于搜索GAN的网络结构已经有了初步的成功,但AutoGAN无疑还有很大的改进空间:
- 扩大AutoGAN的搜索空间。
- 较高分辨率的图像生成任务上测试AutoGAN,例如ImageNet。
- 如何搜索更好的判别器网络结构。
- 在AutoGAN中引入标签信息,构造条件GAN的网络搜索框架。
(免责声明:本文仅代表撰稿者观点,个人理解及总结不一定准确及全面,论文的整体思想及论点应以原论文为准,文中所有图表均来源原论文。)