AutoML算法之神经网络搜索(一种新的可微NAS方法)

背景介绍

近年来,神经网络搜索(NAS)极大地推动了神经网络设计的发展。以前的大多数工作都是计算密集型的,可用NAS方法通过在一个连续空间中构建一个覆盖所有可能搜索架构的超网络来降低搜索成本。然而,很少有能够搜索网络宽度(滤波器/通道的数量)的方案,因为按照传统的可微NAS范式,很难将具有不同宽度的架构集成到一个超网络中。在本文中,介绍一种新的可微NAS方法,通过构建一个紧密连接的搜索空间来实现同时搜索每个块的宽度和空间分辨率,这种方法命名为DenseNAS。实验表明,DenseNAS获得了一个在ImageNet上具有75.9%的top-1精度的网络结构,并且在单一的TITAN-XP上延迟低至24.3ms。在4个gpu上,总搜索时间仅为23小时。

1.神经网络架构设计

设计深度神经网络是深度学习的一个重要课题。设计更好的网络架构通常会带来显著的性能改进。近年来,神经网络搜索(neural architecture search, NAS)在自动设计神经结构方面取得了成功。许多NAS方法生成的网络在图像分类、语义分割和目标检测等任务中都比人工设计的网络具有更高的准确性。NAS方法不仅提高了模型性能,而且将人类专家从繁琐的网络架构调整工作中解放出来。

网络架构设计过程中可以自动搜索的元素越多,专家承担的负担就越少。可以搜索哪些元素取决于搜索空间的构造方式。目前,主要有两种搜索空间,一种是重复细胞(Cell)结构以构建网络,然后搜索每个细胞中不同节点之间的拓扑连接;另一个将移动卷积块堆叠在一起,使网络中的连接更为简洁。如何在操作类型(operation types)和连接模式之间(connection patterns)进行最佳搜索在以前的许多工作中得到了广泛的探讨,但是搜索网络规模(宽度和深度)就不那么简单了。基于增强学习(RL)和进化算法(EA)的NAS方法可以很容易地搜索深度和宽度,因为它们能够处理离散空间,但它们在计算上非常昂贵。可微的和一次性的方法产生了搜索成本低得多的高性能架构,但网络规模搜索是这些方法难以解决的问题。因此,设计一个支持宽度搜索的超网络仍然是一个具有挑战性的问题。

网络规模的优化非常重要,选择不适当的宽度或深度会导致严重的精度下降或模型尺寸不理想。特别是对架构宽度的微小更改也会导致模型大小的爆炸性增长。本文介绍一种新的可微NAS方法DenseNAS来解决宽度搜索问题。DenseNAS的解决方案是构造一个新的密集连接的搜索空间,设计一个超网络作为搜索空间的连续表示。如图1所示,超网络中的每个块(block)被连接到几个相邻的块。从网络的开始到结束,滤波器的数量(即,宽度)每块逐渐增加一小步。网络中的细粒度宽度分布保证了搜索空间可以覆盖尽可能多的宽度值。

在搜索空间中,设置相同的空间分辨率,存在多个具有不同宽度的块,为每个块的每个输出路径分配一个概率参数。在搜索过程中,优化了输出路径的概率分布。利用该概率分布选择超网络中最优的带宽增长路径,得到最终的结构。由于每个块的空间分辨率与宽度相关,因此对块宽和进行空间采样的层数进行了优化并同时确定。
AutoML算法之神经网络搜索(一种新的可微NAS方法)_第1张图片

2. 搜索空间

考虑到基于细胞的搜索空间通常会导致复杂的架构,且对时延不友好,DenseNAS基于MobileNetV2中提出的移动反向瓶颈卷积(即MBConv)来设计搜索空间。如图3所示,在三个不同的层次(层(layer)、块(block)和网络(network))上定义了搜索空间。在层级别,每个层由所有候选操作组成。对于块级,一个块可以分为两个部分:头部层和堆叠层。对于网络级,整个网络是使用具有增量宽度的块来构建的。

层的结构: 层定义为搜索空间中的基本结构。一层表示一组候选操作。候选操作被定义为一组MBConv层(如图2所示),内核大小为{3,5,7},扩展比为{3,6}。跳过连接作为深度搜索的候选操作。如果选择了skip连接,就意味着从结果网络中删除了相应的层,从而有效地降低了它的深度。搜索空间中的操作集如表1所示。
AutoML算法之神经网络搜索(一种新的可微NAS方法)_第2张图片

块的结构 :每个块由几个层组成。每个块被分成两部分,头层(head layers)和堆叠层(stacking layers)。每个块具有固定的宽度和相应的空间分辨率。具有不同数量通道和空间分辨率的张量输入头层,头层将所有的输入张量转换成一个具有一定通道数和空间分辨率的张量。头层不含跳过连接,因为所有块都需要它。在头部层之后是一些堆叠层。叠加层的操作以相同的通道数和空间分辨率进行。

网络的结构: 以前的工作使用基于MBConv的块来形成固定数量的块的体系结构集,得到的体系结构包含所有的块。相反,我们在我们的搜索空间中设计了更多具有不同宽度的块,并允许搜索的架构只包含块的一个子集,从而使搜索算法能够自由地选择特定宽度的块,同时丢弃其他宽度的块。整个超网络框架定义为,并假设它包含N个块:。如图3所示,整个网络被划分为几个阶段。每个阶段拥有不同的宽度范围和固定的空间分辨率。从超网络的开始到结束,块的宽度以较小的幅度逐渐增大。在网络的早期,设置一个较小的宽度增长步长,因为在早期网络阶段设置较大的宽度会导致巨大的计算成本。进入后期阶段,增长的步长变得更大。如图3所示,在阶段3中,空间分辨率设置为28x28,宽度增长步幅为8。增长步幅在第4阶段为16,在第5阶段为64。不同于所有现有的方法,这个超网络的设计允许在每个块中搜索不同的宽度。

AutoML算法之神经网络搜索(一种新的可微NAS方法)_第3张图片
AutoML算法之神经网络搜索(一种新的可微NAS方法)_第4张图片

3. 实验结果

为了证明DenseNAS的有效性,在ImageNet分类问题中进行实验,以寻找一个高精度、低延迟的网络架构。实验结果如表2所示。DenseNet以较低的延迟实现了较高的准确性。在准确性方面,明显优于人工设计的。DenseNAS-A实现了75.9%的top-1精度,优于1.4-MobileNetV2(+1.2%),延迟较低(-3.7ms,相对15.2%)。通过比较DenseNASB与NASNet-A、AmoebaNet-A和DARTS,实现了更高的准确性和更少的失败和更低的延迟。与其他NAS方法相比,DenseNAS达到很高的精确性与类似的延迟,但整个搜索过程在4 GPU上只需要23小时 (总共92 GPU小时),比NASNet快522倍,比AmoebaNet快826倍,比MnasNet快989倍,约2.3的速度比FBNet和ProxylessNAS 快大约2.3倍。不同于FBNet和ProxylessNAS手工设定和调整搜索空间中的块宽度,DenseNAS的网络宽度都是自动搜索的。

AutoML算法之神经网络搜索(一种新的可微NAS方法)_第5张图片

为了证明所提方法的有效性和高效性,在固定块搜索空间下进行了相同的搜索过程。结果如表3所示。

AutoML算法之神经网络搜索(一种新的可微NAS方法)_第6张图片

DenseNAS得到的网络结构如图4所示,更快的模型往往更浅。块的宽度和块的数量都是自动搜索的。从图5可以看出,在不同的延迟设置下,DenseNAS模型的性能优于固定块搜索空间下的模型和MobileNetV2模型。

AutoML算法之神经网络搜索(一种新的可微NAS方法)_第7张图片

论文地址:https://arxiv.org/pdf/1906.09607.pdf
代码地址:https://github.com/JaminFong/DenseNAS

你可能感兴趣的:(AutoML,深度学习)