0.摘要
最近,神经架构搜索(NAS)已经成功地识别出在大规模图像分类任务上超越人工设计的神经网络架构。在本文中,我们研究了NAS在语义图像分割任务中的应用。现有的工作通常集中在搜索可重复的基本单元结构,而手动设计控制空间分辨率变化的外部网络结构。这种选择简化了搜索空间,但对于密集图像预测任务来说,网络级别的架构变化更加复杂。因此,我们提出了在基本单元结构之外搜索网络级别结构的方法,形成了一个分层的架构搜索空间。我们提出了一个包含许多流行设计的网络级别搜索空间,并开发了一种有效的基于梯度的架构搜索方法(在Cityscapes图像上使用了3个P100 GPU天的计算资源)。我们在具有挑战性的Cityscapes、PASCAL VOC 2012和ADE20K数据集上展示了所提出方法的有效性。我们的架构搜索方法Auto-DeepLab在语义图像分割任务中达到了最先进的性能,而且没有进行任何ImageNet预训练。
1.引言
深度神经网络已经在各种人工智能任务中取得了成功,包括图像识别 [38,25]、语音识别 [27]、机器翻译 [73,81]等。尽管更好的优化器 [36]和更好的归一化技术 [32,80]在其中起到了重要作用,但很多进展都来自于神经网络架构的设计。在计算机视觉领域,这对于图像分类 [38,72,75,76,74,25,85,31,30]和密集图像预测 [16,51,7,64,56,55]都是成立的。最近,在AutoML和普及人工智能的精神下,设计自动化神经网络架构的兴趣日益增加,而不是过分依赖专家经验和知识。重要的是,在过去的一年中,神经架构搜索(NAS)已经成功地在大规模图像分类问题上识别出了超过人工设计的架构 [93,47,62]。
图像分类是神经架构搜索(NAS)的一个很好的起点,因为它是最基础且研究最充分的高级识别任务。此外,存在着一些基准数据集(如CIFAR-10),其图像相对较小,从而导致计算量较小,训练速度较快。然而,图像分类不应该是NAS的终点,当前的成功显示了将其扩展到更具挑战性领域的潜力。在本文中,我们研究了用于语义图像分割的神经架构搜索,这是一个重要的计算机视觉任务,它为输入图像中的每个像素分配类似于“人”或“自行车”的标签。简单地从图像分类中移植想法并不足以满足语义分割的要求。在图像分类中,NAS通常将从低分辨率图像到高分辨率图像的迁移学习应用于NAS [93],而用于语义分割的最佳架构必须在高分辨率图像上运行。这表明需要:(1)更宽松和更一般的搜索空间,以捕捉较高分辨率图像带来的架构变化,以及(2)更高效的架构搜索技术,因为更高的分辨率需要更多的计算量。
我们注意到现代的卷积神经网络设计 [25,85,31]通常遵循一个两级层次结构,其中外部网络级别控制空间分辨率的变化,内部单元级别控制具体的逐层计算。目前绝大多数关于NAS的研究 [93,47,62,59,49]也遵循这种两级层次设计,但只自动搜索内部单元级别,而手动设计外部网络级别。然而,这种有限的搜索空间对于密集图像预测问题是有问题的,因为它对空间分辨率的变化非常敏感。因此,在我们的工作中,我们提出了一个像格子一样的网络级别搜索空间,将最初在 [93]中提出的常用单元级别搜索空间进行扩展,形成了一个分层的架构搜索空间。我们的目标是共同学习可重复的单元结构和网络结构的良好组合,特别适用于语义图像分割任务。
就架构搜索方法而言,强化学习 [92, 93]和进化算法 [63, 62]即使在低分辨率的CIFAR-10数据集上也往往需要大量计算资源,因此可能不适用于语义图像分割。我们从可微分的NAS [69, 49]的表达式中获得启发,并开发了一种连续的松弛方法来精确匹配分层架构搜索空间的离散架构。通过随机梯度下降进行分层架构搜索。当搜索结束时,我们使用贪婪算法解码出最佳的单元结构,使用维特比算法高效解码出最佳的网络结构。我们直接在来自Cityscapes [13]的321×321图像裁剪上进行架构搜索。这种搜索非常高效,只需要在一个P100 GPU上进行约3天的时间。
我们在多个语义分割数据集上报告了实验结果,包括Cityscapes [13]、PASCAL VOC 2012 [15]和ADE20K [90]。在没有ImageNet [65]预训练的情况下,我们的最佳模型在Cityscapes测试集上的性能显著超过了FRRN-B [60] 8.6% 和GridNet [17] 10.9%,在同时利用Cityscapes上的粗略注释时,与其他ImageNet预训练的最先进模型 [82,88,4,11,6] 的性能相当。值得注意的是,我们的最佳模型(无预训练)在Multi Adds方面的性能与DeepLabv3+ [11](有预训练)相当,但速度快了2.23倍。此外,我们的轻量级模型的性能仅比DeepLabv3+ [11]低1.2%,而参数数量减少了76.7%,在Multi-Adds方面速度提高了4.65倍。最后,在PASCAL VOC 2012和ADE20K上,我们的最佳模型在使用更少的预训练数据的情况下超过了几个最先进模型 [90,44,82,88,83]。
总结起来,我们论文的贡献有四个方面:
- 我们是首批将NAS扩展到稠密图像预测领域的尝试之一。
- 我们提出了一个网络级别的架构搜索空间,对已有的单元级别搜索空间进行了增强和补充,并考虑了更具挑战性的网络级别和单元级别结构的联合搜索。
- 我们开发了一个可微分、连续的表达式,以在3天的GPU训练时间内高效地进行两级层次结构的架构搜索。
- 在没有ImageNet预训练的情况下,我们的模型明显优于FRRN-B和GridNet,并在Cityscapes上达到了与其他ImageNet预训练的最先进模型相当的性能。在PASCAL VOC 2012和ADE20K上,我们的最佳模型也超过了几个最先进的模型。
2.相关工作
图像语义分割:在全卷积神经网络(FCNs [68, 51])的完全卷积方式下,卷积神经网络[42]在几个语义分割基准测试上取得了显著的性能。在最先进的系统中,有两个关键组成部分:多尺度上下文模块和神经网络设计。已经知道上下文信息对于像素标记任务[26, 70, 37, 39, 16, 54, 14, 10]非常重要。因此,PSPNet [88]在几个网格尺度上执行空间金字塔池化[21, 41, 24](包括图像级池化[50]),而DeepLab [8, 9]则应用了几个具有不同采样率的并行空洞卷积[28, 20, 68, 57, 7]。另一方面,神经网络设计的改进显著推动了性能的提高,从AlexNet [38],VGG [72],Inception [32, 76, 74],ResNet [25]到更近期的架构,如Wide ResNet [86],ResNeXt [85],DenseNet [31]和Xception [12, 61]。除了将这些网络作为语义分割的主干网络之外,还可以采用编码器-解码器结构[64, 2, 55, 44, 60, 58, 33, 79, 18, 11, 87, 83],这种结构可以在保持详细的对象边界的同时有效地捕获长距离的上下文信息。然而,除了FRRN [60]和GridNet [17]之外,大多数模型都需要从ImageNet [65]预训练的检查点进行初始化,用于语义分割任务。具体而言,FRRN [60]采用了一个双流系统,其中一个流中携带全分辨率信息,另一个流中携带上下文信息。GridNet在类似的思想基础上构建了多个具有不同分辨率的流。在这项工作中,我们应用神经架构搜索来为语义分割专门设计网络主干。我们进一步展示了在没有ImageNet预训练的情况下的最先进性能,并在Cityscapes [13]上显著优于FRRN [60]和GridNet [17]。
神经架构搜索方法:旨在自动设计神经网络架构,从而减少人力和工作量。一些工作[22, 34, 92, 49]在语言任务中搜索RNN单元,而更多的工作则在图像分类中搜索良好的CNN架构。一些论文使用强化学习(或者是策略梯度[92, 93, 5, 77]或者是Q-learning[3, 89])来训练一个循环神经网络,该网络表示生成CNN架构的策略的序列。与RL相反,还可以使用进化算法(EA),通过对迄今为止找到的最佳架构进行变异来“进化”架构[63, 84, 53, 48, 62]。然而,这些RL和EA方法在搜索过程中往往需要大量的计算资源,通常需要数千个GPU天。PNAS[47]提出了一种渐进搜索策略,大大降低了搜索成本,同时保持了搜索架构的质量。NAO[52]将架构嵌入到潜空间中,并在解码之前进行优化。此外,一些工作[59, 49, 1]利用样本模型之间的架构共享,而不是单独对每个模型进行训练,从而进一步降低了搜索成本。我们的工作遵循可微分NAS的形式化[69, 49],并将其扩展到更一般的分层设置中。
神经架构搜索空间:之前的论文,比如[92, 63],尝试直接构建整个网络。然而,更近期的论文[93, 47, 62, 59, 49]已经转向搜索可重复的单元结构,同时通过手动固定外部网络级别的结构。这个策略最早在[93]中提出,可能受到现代CNN常用的两级层次结构的启发。我们的工作仍然使用这种单元级别的搜索空间,以保持与之前的工作的一致性。然而,我们的贡献之一是提出了一个新的通用的网络级别搜索空间,因为我们希望在这两级层次结构上进行联合搜索。我们的网络级别搜索空间与[67]有相似的外观,但重要的区别在于[67]保留了整个“结构”,并没有改变架构的意图,而我们为每个连接关联了一个显式的权重,并专注于解码一个离散的结构。此外,[67]在将人脸图像分割成3个类别[35]方面进行了评估,而我们的模型在Cityscapes[13],PASCAL VOC 2012[15]和ADE20K[90]等大规模分割数据集上进行了评估。与我们最相似的工作是[6],它也研究了用于语义图像分割的NAS。然而,[6]专注于使用随机搜索来搜索较小的Atrous Spatial Pyramid Pooling(ASPP)模块,而我们专注于使用更先进、更高效的搜索方法来搜索更基础的网络主干架构。
3.架构搜索空间
本节描述了我们的两级层次化架构搜索空间。对于内部单元级别(第3.1节),我们重新使用了[93,47,62,49]中采用的方法,以保持与之前的工作的一致性。对于外部网络级别(第3.2节),我们根据对许多流行设计的观察和总结,提出了一个新颖的搜索空间。
3.1.单元级别搜索空间
我们将一个单元定义为一个小的全卷积模块,通常重复多次以构成整个神经网络。更具体地说,一个单元是一个由B个块组成的有向无环图。每个块是一个两分支结构,将两个输入张量映射到一个输出张量。在单元l中的第i个块可以用一个5元组(I1,I2,O1,O2,C)来指定,其中I1,I2 ∈ Il i Il i是选择应用于相应输入张量的层类型,C ∈ C是用来将两个分支的个体输出组合成该块的输出张量Hil的方法。单元的输出张量Hl只是按照顺序连接块的输出张量H1l,...,HBl。可能的输入张量集合Iil由前一个单元的输出Hl-1,前两个单元的输出Hl-2以及当前单元中前面的块的输出{H1l,...,Hil}组成。因此,随着在单元中增加更多的块,下一个块有更多的选择作为潜在的输入来源。可能的层类型集合O包括以下8种在现代CNN中常见的操作符:
于可能的组合操作符C的集合,我们简单地让逐元素相加成为唯一的选择。
3.2.网络级别搜索空间
在由[93]开创的图像分类NAS框架中,一旦找到了一个单元结构,整个网络就会使用预定义的模式进行构建。因此,网络级别并不是架构搜索的一部分,因此其搜索空间从未被提出或设计过。这个预定义的模式简单明了:一些“正常单元”(保持特征张量的空间分辨率)被“缩减单元”(将空间分辨率减少一半并将滤波器数量乘以2)等距离地分隔开来。这种保持下采样策略在图像分类案例中是合理的,但在密集图像预测中,保持高空间分辨率也很重要,因此网络级别的变化更多[9,56,55]。在密集图像预测的各种网络结构中,我们注意到有两个一致的原则:•下一层的空间分辨率要么是上一层的两倍,要么是一半,要么保持不变。•最小的空间分辨率被下采样了32倍。
在遵循这些常见做法的基础上,我们提出了以下网络级别的搜索空间。网络的开始是一个两层的“干线”结构,每一层将空间分辨率降低了2倍。之后,共有L层具有未知的空间分辨率,最大的分辨率被下采样了4倍,最小的分辨率被下采样了32倍。由于每一层的空间分辨率最多相差2倍,因此干线之后的第一层只能是下采样4倍或8倍。我们在图1中展示了我们的网络级别搜索空间。我们的目标是在这个L层的网格中找到一条好的路径。在图2中,我们展示了我们的搜索空间足够一般,可以涵盖许多流行的设计。在未来,我们计划进一步放宽这个搜索空间,包括U-net架构[64,45,71],其中第l层除了接收l-1层的输入外,还可以接收来自l之前的另一层的输入。我们再次强调,我们的工作在细胞级别的架构之外还搜索了网络级别的架构。因此,我们的搜索空间比之前的工作更具挑战性和通用性。
图1:左侧:我们的网络级别搜索空间,其中L = 12。灰色节点表示固定的“干线”层,沿着蓝色节点的路径表示候选的网络级别架构。右侧:在搜索过程中,每个单元都是一个密集连接的结构,如4.1.1节所述。每个黄色箭头都与一组值αj→i相关联。连接层之后的三个箭头分别与βls2ls2→s,βsl→s,β2ls→s相关联,如4.1.2节所述。最好以彩色查看。
(a) DeepLabv3使用的网络级架构。
(b) Conv-Deconv使用的网络级架构。
(c) Stacked Hourglass使用的网络级架构。
图2:我们的网络级别搜索空间是通用的,并包括各种现有设计。
4.方法
4.1.架构的连续松弛
4.1.1.单元架构