CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

语义图像分割的分层神经体系结构搜索

https://arxiv.org/abs/1901.02985

https://github.com/tensorflow/models/tree/master/research/deeplab (官方)

https://github.com/MenghaoGuo/AutoDeeplab (非官方)

论文翻译


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第1张图片

Abstract

近年来, 神经体系结构搜索 (NAS) 在大规模图像分类问题上成功地识别出了超过人类设计的神经网络体系结构。本文研究了用于语义图像分割的 NAS, 这是一种重要的计算机视觉任务, 它为图像中的每个像素分配一个语义标签。现有的工作通常集中在搜索可重复的单元结构, 同时手工设计控制空间分辨率变化的外部网络结构。此个方法简化了搜索空间, 但对于显示出更多网络级体系结构变化的密集图像预测而言, 问题越来越大。因此, 我们建议除了单元级结构外, 还要搜索网络层结构, 形成一个分层的架构搜索空间。我们提供了一个网络级的搜索空间, 其中包括许多流行的设计, 并开发了一种公式, 允许高效的基于梯度的体系结构搜索 (3 P100 GPU 天的 cityscapes 图像)。我们展示了拟议方法在具有挑战性的城市景观、PASCAL VOC 2012 和 ADE20K 数据集上的有效性。在没有任何 ImageNet 预培训的情况下, 我们的体系结构专门搜索语义图像分割, 以获得最先进的性能。

1. Introduction

深度神经网络已被证明是成功的, 在各种人工智能任务, 包括图像识别 [38, 25], 语音识别 [27], 机器翻译 [72, 80] 等。虽然更好的优化器 [36] 和更好的规范化技术 [32, 79] 肯定发挥了重要作用, 但很多进展来自神经网络架构的设计。在计算机视觉中, 这适用于图像分类 [38、71、74、75、73、25、84、31、30] 和密集图像预测 [16、51、7、63、56、55]。

最近, 本着 AutoML 和人工智能全民化的精神, 人们对自动设计神经网络架构产生了浓厚的兴趣, 而不是严重依赖专家经验和知识。重要的是, 在过去的一年中, 神经体系结构搜索 (NAS) 成功地确定了在大规模图像分类问题上超过人工设计的体系结构 [92、47、61]。

图像分类是 NAS 的一个良好的起点, 因为它是最基本、研究最充分的高级识别任务。此外, 还有图像相对较小的基准数据集 (例如 CIBAR-10), 从而减少了计算, 加快了培训速度。然而, 图像分类不应该是 NAS 的终点, 目前的成功表明有希望延伸到要求更高的领域。本文研究了神经结构搜索语义图像分割, 这是一种重要的计算机视觉任务, 它将 "人" 或 "自行车" 等标签分配给输入图像中的每个像素。

从图像分类中简单地移植思想对于语义分割是不够的。在图像分类中, NAS 通常应用低分辨率图像到高分辨率图像的迁移学习 [92], 而用于语义分割的最佳体系结构必须在高分辨率图像上固有地运行。这表明需要: (1) 更松弛、更一般的搜索空间来捕获高分辨率带来的体系结构变化, 以及 (2) 更高效的体系结构搜索技术, 因为更高的分辨率需要更高的计算。

我们注意到, 现代 CNN 设计 [25, 84, 31] 通常遵循两级层次结构, 其中外部网络级别控制空间分辨率的变化, 内部单元级别控制特定的层级计算。目前在 NAS 上的绝大多数作品 [92、47、61、59、49] 都遵循这种两级分层设计, 但只在手动设计外部网络级别时自动搜索内部单元级别。这种有限的搜索空间对于密集图像预测来说会成为问题, 因为密集图像预测对空间分辨率的变化很敏感。因此, 在我们的工作中, 我们提出了一个类似于格子的网络级搜索空间, 它增强了 [92] 中首次提出的常用单元级搜索空间, 从而形成了一个分层体系结构搜索空间。我们的目标是共同学习可重复的细胞结构和网络结构的良好组合, 专门用于语义图像分割。

在体系结构搜索方法方面, 强化学习 [91, 92] 和演化算法 [62, 61] 即使在低分辨率 CIBAR-10 数据集上也往往需要大量的计算, 因此可能不适合语义图像分割。我们从 NAS [68, 49] 的可微分规划中汲取灵感, 并对完全匹配分层体系结构搜索空间的离散体系结构进行了不断的放宽。分层体系结构搜索是通过随机梯度下降进行的。当搜索终止时, 最好的单元体系结构被贪婪地解码, 最好的网络体系结构被有效地解码使用维特比算法。我们直接搜索架构 321 x321 图像Cityscapes [13]。搜索是非常有效的, 只需要大约3天在一个 P100 GPU。

我们报告了多个语义分割基准的实验结果, 包括城市分类 [13]、PASCAL VOC 2012 [15] 和 ADE20K [89]。如果没有 ImageNet [64] 预训练, 我们最好的模型在 Cityscapes 测试集中的性能大大优于 FRRN-B [60], 在 Cityscapes 测试集中的性能明显优于 grrn-b [17], 并且在其他 imagenet 预浸的最先进型号 [81、87、4、11、6] 上的性能也要好利用城市景观上的粗注释。值得注意的是, 我们最好的模型 (不包括预培训) 获得了与 Deeplabv3 + [11] 相同的性能 (具有预训练), 而在 Multid 中的速度提高了2:23。此外, 我们的轻量级型号的性能仅比 Deeplabv3 + [11] 低 1:2, 同时要求参数减少 76:7, 在多加法中速度提高了4倍的65倍。最后, 在 PASCAL VOC 2012 和 ADE20K 上, 我们的最佳型号优于几种最先进的型号 [89、44、81、87、82], 同时使用的预培训数据也较少。

总之, 我们的论文贡献有四个方面:

·我们的 nas 是将 NAS 从图像分类扩展到密集图像预测的首次尝试之一。

·我们提出了一个网络级架构搜索空间, 以增强和补充备受研究的细胞级的一个, 并考虑更具挑战性的联合搜索网络级和细胞级架构。

·我们开发了一个可微的、连续的方法, 可在 3个 GPU 天内高效地进行两级层次架构搜索。

·如果没有 ImageNet 预培训, 我们的模型的性能大大优于 FRRN-B 和 GridNet, 并获得了与其他 imagenet 预培训的关于城市的最先进的模型的可比性能。在 PASCAL VOC 2012 和 ADE20K 上, 我们的最佳模型也优于几种最先进的型号。

2. Related Work

语义图像分割 卷积神经网络 [42] 以完全卷积的方式部署 (FCNs [67, 51]), 在几个语义分割基准上取得了显著的效果。在最先进的系统中, 有两个基本组件: 多尺度上下文模块和神经网络设计。众所周知, 上下文信息对于像素标记任务至关重要 [26、69、37、39、16、54、14、10]。因此, PSPNet [87] 在多个网格比例 (包括图像级池 [50]) 上执行空间金字塔池 [21, 41, 24], 而 DeepLab [8, 9] 应用多个通道具有不同速率的空洞卷积 [28、20、67、57、7]。另一方面, 神经网络设计的改进显著地推动了性能从 AlexNet [38], VGG [71], 初始 [32, 75, 73], ResNet [25] 到最新的体系结构, 如宽 ResNet [85], Resnext [84], DenseNet [31] 和 Xception [12].除了采用这些网络作为语义分割的主干外, 还可以使用编码器解码器结构 [63、2、55、44、60、58、33、78、18、11、86、82], 这些结构可以有效地捕获远程上下文信息, 同时保留详细的对象边界。然而, 大多数模型需要从 ImageNet [64] 预先培训的检查点初始化, 除了 FRRN [60] 和 GridNet [17] 的语义分割任务。具体而言, FRRN [60] 采用双流系统, 在该系统中, 完整的分辨率信息在一个流中进行, 上下文信息在另一个池流中进行。GridNet 建立在类似想法的基础上, 包含多个具有不同分辨率的流。在本工作中, 我们应用神经体系结构搜索网络主干专用于语义分割。我们进一步显示最先进的性能, 没有 ImageNet 预培训, 在cityscape显著优于 FRRN[60] 和 GridNet [17] [13]。

神经体系结构搜索方法:神经体系结构搜索旨在自动设计神经网络体系结构, 从而最大限度地减少人工工作时间和工作量。虽然有些作品 [22, 34, 91, 49] 搜索 RNN 细胞的语言任务, 更多的作品搜索良好的 CNN 架构的图像分类。一些论文使用强化学习 (政策梯度 [91, 92, 5, 76] 或 q 学习 [3, 88]) 来训练一个RNN, 代表一个policy, 以生成一个符合policy的符号序列的美国有线电视新闻网的架构。RL 的另一种选择是使用进化算法 (EA), 通过改变迄今发现的最佳体系结构 (62、83、53、48、61] 来 "进化" 体系结构。然而, 这些 RL 和 EA 方法往往需要在搜索过程中进行大量计算, 通常需要数千个 GPU 天。PNAS [47] 提出了一个渐进的搜索策略, 显著降低了搜索成本, 同时保持了搜索架构的质量。NAO [52] 将嵌入式体系结构嵌入到一个潜在的空间中, 并在解码前执行优化。此外, 一些作品 [59, 49, 1] 使用了采样模型之间的体系结构共享, 而不是单独训练每个模型, 从而进一步降低了搜索成本。我们的工作遵循可微的 NAS 配方 [68, 49], 并将其扩展到更一般的分层设置。

神经结构搜索空间 早期的论文, 例如 [91, 62], 试图直接构建整个网络。然而, 最近的论文 [92、47、61、59、49] 已转向搜索可重复的单元结构, 同时保持外部网络级别结构的手工固定。首次提出在 [92], 这一战略很可能是受现代 Cnn 中常用的两级等级的启发。

我们的工作仍然使用这个细胞级搜索空间来保持与以前的作品一致。然而, 我们的贡献之一是提出一个新的、通用的网络级搜索空间, 因为我们希望在这两个层次上联合搜索。我们的网络级搜索空间与 [66] 有着相似的前景, 但重要的区别是 [66] 保留了整个 "结构", 而无意改变体系结构, 而我们将每个连接的显式权重与解码单个连接相关联, 并专注于解码单个离散结构。此外, [66] 在将人脸图像分割为3类 [35] 时进行了评估, 而我们的模型则评估了大规模分割数据集, 如 Cityscapes [13]、PASCAL VOC 2012 [15] 和 ADE20K [89]。

与我们最相似的工作是 [6], 它还研究了用于语义图像分割的 NAS。然而, [6] 专注于使用随机搜索搜索更小的空间空洞卷积金字塔池 (ASPP) 模块, 而我们则专注于使用更高级、更高效的搜索方法搜索更基本的网络主干体系结构。

3. Architecture Search Space

本节介绍我们的两级层次架构搜索空间。对于内部单元格级别 (第3.1 节), 我们重用 [92、47、61、49] 中采用的单元格级别, 以与以前的作品保持一致。对于外部网络层面 (第3.2 节), 我们在观察和总结许多流行设计的基础上, 提出了一个新的搜索空间。

3.1. Cell Level Search Space

我们将一个单元定义为一个小的完全卷积模块, 通常重复多次形成整个神经网络。更具体地说, 单元格是由 B 块组成的定向无环图。

每个块是一个双分支结构, 从2个输入张量映射到1个输出张量。可使用5元组表示cell l中的block i(I1;I2;O1;O2;C), 其中 I1;I2 是输入张量的选择, O1;O2 是对输入响应, c 是用于组合两个分支的各个输出以形成此块的输出张量 H 的方法。cell的输出是每个block输出张量的简单连接。

输出张量

一组可能的输入张量, 由前一个单元 Hl−1的输出、上一个单元 Hl−2的输出以及当前单元 fH1l 中的上一个块的输出组成。因此, 当我们在单元格中添加更多的块时, 下一个块有更多的选择作为潜在的输入源。可能的图层类型集 o 由以下8个运算符组成, 所有这些运算符都在现代 Cnn 中流行:


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第2张图片

对于一组可能的组合运算符 C, 我们只是让元素上的加法成为唯一的选择。

3.2. Network Level Search Space

在 [92] 首创的图像分类 NAS 框架中, 一旦找到单元结构, 就使用预定义的模式构建整个网络。因此, 网络层面并不是架构搜索的一部分, 因此其搜索空间从未提出或设计过。

这种预定义的模式简单而直接: 通过插入 "缩小单元格" (将空间分辨率除以2并将滤波器数乘以2的单元格), 可以平均分离一些 "正常单元" (保持特征张量空间分辨率的单元)。这种保持采样策略在图像分类情况下是合理的, 但在密集图像预测中, 保持较高的空间分辨率也很重要, 因此网络级别变化更多 [9、56、55]

在用于密集图像预测的各种网络体系结构中, 我们注意到两个一致的原则:

·下一层的空间分辨率为两倍大, 或两倍小, 或保持不变。

·最小的空间分辨率将被降低32。

按照这些常见的做法, 我们建议以下网络级搜索空间。网络的开始是一个两层 "干" 结构, 每个结构都将空间分辨率降低2倍。之后, 共有一个空间分辨率未知的 L 层, 最大采样数降低 4, 最小采样率降低32。由于每个图层的空间分辨率最多可能相差 2, 因此在茎之后的第一层只能向下采样4或8。我们在图1中说明了我们的网络级搜索空间。然后, 我们的目标是在这个 l 层格子中找到一条好的路径。


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第3张图片

在图2中, 我们显示了我们的搜索空间足够通用, 可以涵盖许多流行的设计。在未来, 我们有计划进一步放宽此搜索空间, 以包括 U-net 体系结构 [63、45、70], 其中 l 层除了 l-1 之外, 还可能接收来自 l 之前的另一层的输入。


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第4张图片

我们重申, 除了单元级体系结构外, 我们的工作还搜索网络级体系结构。因此, 我们的搜索空间比以前的作品更具挑战性和通用性。

4. Methods

我们首先引入了 (指数多个) 离散体系结构的连续松弛, 这些体系结构与上面描述的分层体系结构搜索完全匹配。然后, 我们讨论如何通过优化执行体系结构搜索, 以及如何在搜索终止后对离散体系结构进行解码

4.1. Continuous Relaxation of Architectures

4.1.1 Cell Architecture


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第5张图片

4.1.2 Network Architecture

在单元格中, 所有张量的空间大小都相同, 这使得 (加权) 和以 Eq. (1) 和 Eq. (2) 为单位。但是, 如图1所示, 张量在网络级别上可能会采用不同的大小。因此, 为了建立连续的放松, 每一层 l 最多将有4个隐藏状态 f4Hl;8Hl;16Hl;32Hlg, 左上角上标指示空间分辨率。我们设计了网络级的连续松弛, 以完全匹配第3.2 节描述的搜索空间。我们将标量与图1中的每个灰色箭头相关联, 网络级别更新为:


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第6张图片

也实现为 softmax。

Eq. (6) 显示了两个层次结构的连续松弛是如何编织在一起的。特别是, β控制外部网络级别, 因此取决于空间大小和图层索引。Β中的每个标量控制整个α集, 但α指定的体系结构既不依赖于空间大小, 也不依赖于图层索引。

如图1所示, 在 L-th 层的每个空间分辨率上都附加了自然空间金字塔池 (ASPP) 模块 (非饱和度也相应调整)。它们的输出在求和之前是双线性向上采样到原始分辨率以生成预测的。

4.2. Optimization

引入这种连续松弛的优点是, 控制不同隐藏状态之间连接强度的标量现在是可微化计算图的一部分。因此, 他们可以有效地优化使用梯度下降。我们采用 [49] 中的一阶近似, 并将训练数据划分为两个不相交的训练 a 和训练。优化在以下之间交替进行:


CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation_第7张图片

4.3. Decoding Discrete Architectures

细胞结构:继 [49] 之后, 我们首先为每个块保留2个最强的前辈 (从隐藏状态 j 到隐藏状态 i 的强度 


; 从第3.1 节中回忆 "零" 的意思是 "否"连接 "), 然后选择最有可能的运算符, 通过采取 argmax。

网络体系结构 Eq. (7) 实质上指出, 图1中每个蓝色节点的 "传出概率" 总和为1。事实上, β值可以解释为不同 "时间步长" (图层数) 之间不同 "状态" (空间分辨率) 之间的 "转换概率"。很直观地说, 我们的目标是从开始到结束找到具有 "最大概率" 的路径。使用经典的维特比算法可以有效地解码此路径, 就像我们的实现一样。

你可能感兴趣的:(CVPR2019|Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation)