论文地址:https://arxiv.org/abs/1809.04184
代码:https://github.com/tensorflow/models/tree/master/research/deeplab
作者:Liang-Chieh Chen, Maxwell D. Collins, Yukun Zhu, George Papandreou, Barret Zoph, Florian Schroff, Hartwig Adam, Jonathon Shlens
本人实验记录:https://blog.csdn.net/mooneve/article/details/83412628
神经网络架构的设计是机器学习系统在广泛的任务中达到最先进性能的重要组成部分。许多工作都致力于通过巧妙构建搜索空间与简单学习算法相配合来自动设计和构建体系结构。最近的进展表明,这种元学习(meta-learning)方法可能超过可扩展的人为发明的图像分类任务架构。 一个悬而未决的问题是这些方法可以推广到新领域的程度。在这项工作中,我们探索了密集图像预测的元学习技术的构建,重点是场景解析,人物部分(person-part )分割和语义图像分割的任务。由于视觉信息的多尺度表示和在高分辨率图像上操作的必要性,在该领域中构建可行的搜索空间具有挑战性。基于对密集图像预测技术的调查,我们构建了一个递归搜索空间,并证明即使使用有效的随机搜索,我们也可以识别出优于人类发明架构的架构,并在三个密集预测上实现最先进的性能,任务包括82.7%的Cityscapes(街景解析),71.3%的PASCAL-Person-Part(人物部分分割),87.9%的PASCAL VOC 2012(语义图像分割)。另外,所得到的体系结构在计算上更有效,与之前最先进的系统相比只需要一半数量的参数和一半的计算成本。
机器学习中神经网络的复兴已经把在图像识别[44,84,83,34],语音识别[36,8]和机器翻译[88,82]等任务中构建最先进系统的这个重心转向了神经网络架构的设计。最近的工作已经证明在自动设计网络架构方面取得了成功,主要集中在单标签图像分类任务[100,101,52](对于语言任务,请参见[100,65])。重要的是,就在去年,在大规模图像分类问题上元学习技术生成的架构在性能上已经超出人类发明的架构[101,52,68]。
图像分类提供了一个很好的起点,因为许多研究工作已经证明了成功的网络 motifs 和 operators (这两个词不知道怎么翻译,请大家指教)可用于构建框架的搜索空间[52,68,101]。此外,图像分类本质上是多分辨率的,因此全卷积体系结构[77,58]可以在低分辨率图像上训练(具有最小的计算需求)并被转移到高分辨率图像[101]。
虽然这些结果表明了可能,但真正实现则取决于元学习能扩展到超出图像分类以外领域的程度。特别是在图像领域,许多重要的任务,如语义图像分割[58,11,97],物体检测[71,21]和实例分割[20,33,9]都依赖于高分辨率图像的输入和多尺度图像的表示。从图像分类中移植想法是不够的,因为(1)网络motifs和operators的空间与进行分类的系统明显不同,(2)架构搜索必须固有地在高分辨率图像上运行。最后一点(指上面的第二点)使得先前的方法在计算上难以处理,因此从低图像分辨率到高图像分辨率的迁移学习是至关重要的[101]。
在这项工作中,我们首次尝试将元学习应用于密集图像预测(图1)(主要集中在大量研究的场景标记问题上)。场景标记指的是将诸如“人”或“自行车”的语义标签分配给图像中的每个像素的问题。场景标记中最先进的系统是卷积神经网络(CNN),其主要结构为编码器 - 解码器,其中探索出各种形式的池化,空间金字塔结构[97]和孔洞卷积[11]。这些操作的目标是建立高分辨率图像的多尺度表示以密集地预测像素值(例如,填充标签,对象标签等)。 我们充分利用这些文献来构建网络motifs上的搜索空间以进行密集预测。此外,我们还进行了一系列实验,以演示如何构建计算易处理且简单的代理任务,该任务可以为高分辨率图像提供多尺度架构的预测信息。
我们发现有效的随机搜索策略提供了强大的baseline[5,30],并确定了几种用于场景标记的候选网络架构。在Cityscapes数据集[18]的实验中,我们发现架构的mIOU准确率达到82.7%,超过了人类发明架构的性能0.7%[6]。作为参考,请注意,在Cityscapes数据集上实现精度提高具有挑战性,因为之前的学术竞赛在超过一年的时间内从[97]到[6]的mIOU中获得了0.8%的提高。此外,该网络应用于其他密集预测任务,如person-part分割[16]和语义图像分割[24],在绝对百分比上分别超过最先进的结果[25,93] 3.7%和1.7% (与同时的工作[14,96,48]在VOC2012上的表现相当)。这是我们第一次知道元学习算法使用架构搜索技术在密集图像预测问题上达到最先进的性能。值得注意的是,与先前最先进的使用强大的Xception [17,67,14]作为基础网络的系统[14]相比,该架构运行只需其训练参数的一半,并且计算需求也大约是其一半(在Multiply-Adds中)。
我们的工作是由神经架构搜索(neural architecture search,NAS)方法[100,101]推动的,该方法训练一个网络控制器用于生成神经架构。特别是,[101]将在代理数据集[43]上学到的架构迁移到更具挑战性的数据集[73],并展示出优于许多人类发明架构的卓越性能。许多同时进行的研究工作如强化学习(reinforcement learning)[3,99],进化算法(evolutionary algorithms)[81,69,59,90,53,68]和基于序列模型的优化(sequential model-based optimization)[61,52]被用来学习网络结构。此外,其他工作集中在连续增加模型大小[7,15],共享模型权重以加速模型搜索[65],或连续放松架构表示[54]。 请注意,我们的工作是互补的,而且可以在搜索技术中利用所有这些优点来加速搜索并减少计算需求。
至关重要的是,所有方法都建立在构建功能强大但易于处理的架构搜索空间之上。实际上,[52,101,68]发现复杂的学习算法可以获得更好的结果; 但是,如果搜索空间不是过度扩展,即使是随机搜索也可能取得很好的效果。受到最后一点的启发,我们致力于开发一个易于处理且功能强大的搜索空间,用于密集图像预测,并配以高效的随机搜索[5,30]。
最近,[75,27]针对语义分割任务提出了在网格布置中嵌入指数机数量框架的方法。在这项工作中,我们提出了一个新颖的递归搜索空间和简单但可预测的代理任务,旨在找到有效的密集图像预测架构。
用于密集图像预测的最先进解决方案主要来自卷积神经网络[46]。构建此类系统的关键要素是提供全局特征和上下文信息以执行像素级分类[35,78,41,45,31,92,60,19,63]。如何在网络架构中有效编码多尺度上下文信息的几种现有方法:(1)设计模型,将图像金字塔作为输入,以便通过下采样图像捕获大尺度对象[26,66,23,50,13,11],(2)设计包含编码器 - 解码器结构的模型[2,72,49,28,64,93,96],或(3)设计采用多尺度上下文信息的模型,例如,DenseCRF模块[42,4,10,98,50,76],全局信息[ 56,95],或在级联[57,94,12]或平行[11,12]模块中部署的孔洞卷积。 特别是,PSPNet [97]和DeepLab [12,14]在几个手工设计的网格尺度上使用空间金字塔池化。
密集预测文献中的一个共同主题是如何最好地调整架构以提取上下文信息。有几项工作的重点集中在研究孔洞卷积中的采样率,用于编码多尺度信息[37,29,77,62,10,94,11]。DeepLab-v1 [10]是第一个扩大采样率来捕获长距离信息进行分割的模型。 [94]的作者通过在最顶层的belief 图上逐渐增大采样率来构建上下文模块,最终的CNN特征图包含等于预测类别数的输出通道。[87]中的工作是在ResNet [34]的最后两个块中使用混合采样率,而Deformable ConvNets [22]提出了可变形卷积( deformable convolution ),它通过学习采样率推广了孔洞卷积。DeepLab-v2 [11]和DeepLab-v3 [12]采用了一个名为ASPP(atrous spatial pyramid pooling module)的模块,它由几个并行的具有不同采样率的孔洞卷积组成,旨在捕获不同尺度的信息。Dense-ASPP [91]建议以密集连接的方式构建ASPP模块。 我们在下面讨论如何构建包含所有这些功能的搜索空间。
构建成功的框架搜索方法的两个关键方面是搜索空间的设计和代理任务的设计[100,101]。大多数从架构设计转变为建立搜索空间的人类专业知识是具有表现力和易处理的。 同样,选择既能预测大尺度任务又能快速运行的代理任务对于有效搜索这个空间也是至关重要。
架构搜索空间的目标是设计一个可以表达各种架构的空间,同时也能易于处理识别好的模型。我们从构建搜索空间的前提开始,该搜索空间可以表达先前讨论的所有最先进的密集预测和分割模型(例如[12,97],见第二节了解更多细节)。
我们构建了一个递归搜索空间来编码用于密集预测任务的多尺度上下文信息,我们称之为密集预测单元(Dense Prediction Cell,DPC)。该单元由有向无环图( Directed Acyclic Graph,DAG)表示,该有向图由 B B B 个分支组成,每个分支将一个输入向量映射到另一个输出向量。 在初步实验中,我们发现 B B B = 5在灵活性和计算易处理性之间提供了良好的折衷(更多讨论参见第5节)。
我们在DPC中将分支 b i b_i bi指定为3元组( X i X_i Xi; O P i OP_i OPi; Y i Y_i Yi),其中 X i ∈ χ i X_i \in \chi_i Xi∈χi 指定输入向量, O P i ∈ O P OP_i \in OP OPi∈OP指定应用于输入 X i X_i Xi的操作,并且 Y i Y_i Yi表示输出向量。DPC的最终输出 Y Y Y是所有分支输出的级联,即 Y = c o n c a t ( Y 1 , Y 2 , . . . , Y B ) Y = concat(Y_1, Y_2, ..., Y_B) Y=concat(Y1,Y2,...,YB),这样使我们可以利用来自每个分支所有学习到的信息。对于分支 b i b_i bi,可能的输入集合 X i X_i Xi等于主干网络最后一层的特征图 F F F,加上先前分支 Y 1 , . . . , Y i − 1 Y_1,...,Y_i-1 Y1,...,Yi−1获得的所有输出,即 χ i = { F , Y 1 , . . . , Y i − 1 } \chi_i =\{F,Y1 ,...,Yi-1\} χi={F,Y1,...,Yi−1}。 注意 χ 1 = { F } \chi_1 = \{F\} χ1={F},即第一个分支只能取 F F F作为输入。
运算符空间 O P OP OP定义为以下一组函数:
对于空间金字塔池化操作,我们在每一个grid上执行平均池化。在平均池化后,我们应用另一个1×1卷积,然后进行双线性上采样,以调整回到与输入向量相同的空间分辨率。例如,当池化grid size g h × g w g_h × g_w gh×gw等于1 × 1时,我们执行图像级平均池化,接着经过另一个1×1卷积,然后调整特征大小(如,平铺)使其和输入向量具有相同的空间分辨率。
对于所有卷积,我们使用256个采用可分离卷积[79,85,86,17,38]的滤波器,并且将3×3 孔洞分离卷积中的采样率解耦为 rh × rw,这允许我们捕获具有不同方面的物体尺度比。 样例如图2所示。
得到的搜索空间可以编码所有主要架构,但是更加多样化,因为单元(cell)的每个分支可以通过并行或级联表示来构建上下文信息。搜索空间的潜在多样性可以用潜在架构的总数来表示。对于第 i i i个分支,有 i i i个可能的输入,包括由主干网络(即 F F F)产生的最后一层特征图以及所有先前的分支输出(即, Y 1 , . . . , Y i − 1 Y_1, ..., Y_i-1 Y1,...,Yi−1),以及在操作空间中有1 + 8×8 + 4×4 = 81个函数,从而产生 i i i × 81个可能的选项。 因此,对于 B B B = 5个分支,搜索空间包含 B ! B! B! × 8 1 B 81^{B} 81B ≈ 4.2 × 1 0 11 10^{11} 1011 配置。
模型搜索框架建立在有效的优化服务之上[30]。它可以被认为是一个黑箱优化工具,其任务是使用有限的评估预算去优化目标函数 f : b → R f:b\rightarrow R f:b→R,在我们的例子中 b = { b 1 , b 2 , . . . , b B } b = \{b_1,b_2,...,b_B\} b={b1,b2,...,bB}是DPC框架, f ( b ) f(b) f(b)是在密集预测数据集上评估的pixel-wise mean intersection-over-union(mIOU)[24]。黑箱优化指的是生成尽可能快地接近全局最优(如果有的话)的序列 b b b的过程。我们的搜索空间大小约为 1 0 11 10^{11} 1011,我们采用Vizier [30]实现的随机搜索算法,它基本上采用随机均匀策略对点 b b b进行采样,同时对当前最佳观测框架附近的某些点 b b b进行采样。有兴趣的读者可以参考[30]了解更多细节。 请注意,随机搜索算法是一种简单但功能强大的方法。 如[101]中所强调的那样,随机搜索可以和强化学习或其他学习技术相竞争[52]。
简单地将架构搜索应用于密集预测任务需要过多的计算和时间,因为搜索空间很大并且训练候选框架是耗时的。例如,如果使用Cityscapes数据集上的单个密集预测单元(DPC)对整个模型进行微调,则使用单个P100 GPU训练具有90K迭代的候选框架需要1周以上的时间。 因此,我们专注于设计一个代理任务:(1)计算快(2)可以预测在大规模训练集中的性能。
图像分类采用低分辨率图像[43]作为高分辨率的快速代理任务[73]。 此代理任务不适用于密集图像预测,因为高分辨率图像对于传达多尺度上下文信息至关重要。因此,我们建议通过以下方式设计代理数据集:(1)采用较小的主干网络;(2)缓存主干网络在训练集上的生成的特征图,并直接在其上构建单个DPC。注意,后一点相当于在实际设置中不向主干网络反向传播梯度。另外,我们为了模型收敛,选择不训练候选框架来提前停止(early stopping)学习。在我们的实验中,我们只用30K迭代训练每个候选框架。 总之,这两种设计选择使得代理任务在GPU上运行90分钟,把计算时间缩短了100 +倍,但可预测更大的任务( ρ ρ ρ ≥ 0.4)。
ρ是Spearman相关系数(Spearman’s rank correlation coefficient)。在图3和图4的图注中有说明。相关含义详见 维基 或 百度百科
在进行框架搜索之后,我们进行了重新排名实验,以更精确地测量每个框架在大规模设置中的作用[100,101,68]。在重新排名的实验中,主干网络经过微调和训练以实现完全收敛。 本实验返回的新顶级框架作为最佳DPC框架在本文中展示。
我们在被文献中充分研究的三个密集预测任务上证明了我们提出的方法的有效性:场景解析(Cityscapes [18]),人物部分分割(PASCALPerson-Part [16])和语义图像分割(PASCAL VOC 2012)[24])。训练和评估协议遵循[12,14]。 简而言之,主干网络在COCO数据集上进行了预训练[51]。训练协议采用多项式学习率[56],初始学习率为0.01,large crop sizes(例如,Cityscapes上为769×769,PASCAL图像上为513×513),微调 batch normalization参数[40],小批量训练(batch size = 8,16 分别代表代理和实际任务)。对于评估和架构搜索,我们使用单个图像比例。 对于我们与其他最先进系统(表2,表3和表4)进行比较的最终结果,我们通过对给定图像的多个尺度进行平均来作为评估。
代理任务的目标是解决以下两个问题,它既能快速评估,又能提供有关大规模任务的预测信息。在图像分类工作中,代理任务是对低分辨率(例如32×32)图像[100,101]的分类。 密集预测任务固有地需要高分辨率图像作为训练数据。 由于卷积操作的计算需求随着像素数量的增加而变化,因此必须找到另一个有意义的代理任务。
我们通过关注速度和预测能力来解决代理任务设计问题。 如第3节所述,我们采用了几种策略来设计快速和预测性的代理任务,以便在单个GPU上加速模型的评估,把耗时从1周降低到90分钟。在这些初步实验中,我们证明这些策略为预测给定框架的功效提供了指导性信息。
为了最小化由于采样框架引起的随机变化,我们首先构建一个极小的搜索空间,其中仅包含31个框架[注1],我们可以在其中详尽地探索性能。我们在Cityscapes [18]上进行实验和随后的架构搜索,它其中包含19个语义标签的对象特征比例的大范围变化。
注1:小搜索空间由ASPP架构的5个并行分支的所有可能组合组成 - 用于密集预测的顶级架构[12]。 这些并行通路存在 2 5 2^{5} 25-1 = 31个可能的排列。
不明白这样计算的理由,这里得出31中应该是有一些条件约束的,文章中没有说,可能需要联系作者。
如果没有约束,根据3.1节采样率和平均池化的取值范围产生的可能性就远远不止这个数量。
遵循先前最先进的分割模型,我们采用Xception架构[17,67,14]进行大规模设置。我们首先判断一个较小的主干网络,如MobileNet-v2 [74]是否提供了对大型主干网络性能的强信号(图3a)。MobileNetv2包含大约 1 20 \frac{1}{20} 201的计算成本,并将主干特征通道从2048维减少到320维。我们确实发现了与学习预测因子[52]相当的等级相关性( ρ ρ ρ= 0.36),这表明这可以为代理任务提供合理的替代。接下来,我们判断使用固定和缓存的激活集是否与端到端的训练密切相关。 图3b示出了在COCO上预训练的MobileNet-v2主干网络的缓存激活和端到端训练之间的更高等级相关性( ρ ρ ρ= 0.47)。这些秩相关性显着高于偶然率( ρ ρ ρ= 0)的事实表明,这些设计选择为大规模实验(即,更昂贵的主干网络)提供了与学习预测器相匹配的有用信息[52,101](供参考,[52]的最后阶段的ρ[0.41,0.47])和快速的代理任务。
我们使用我们提出的框架搜索空间在Cityscapes上部署生成的代理任务,以便一周内在370个GPU中探索28K 个DPC架构。我们采用简单有效的随机搜索[5,30],并使用MobileNet-v2主干网络对整个模型进行微调,进行重新排序,最终选择前50个框架(验证集性能)。图4a突出显示了代理数据集上的性能分数分布,表明框架搜索算法能够探索多种框架。 图4b展示了找到的前50个DPC在原始代理任务和重新排名的分数之间的相关性。值得注意的是,通过重新排名确定的顶级模型是通过代理评分测量的第12个最佳模型。
图5a提供了所识别的顶部DPC架构的示意图(对于下一个最佳性能的架构,参见图6)。Following [39],我们将每个分支(通过1×1卷积)连接到表现最佳的DPC的输出,检查其连接权重的L1范数,如图5b。我们观察到具有3×3卷积(采样率= 1×6)的分支贡献最大,而具有大采样率(即,较长context)的分支贡献较少。换句话说,来自更接近(即最终空间尺度)的图像特征的信息对网络的最终输出贡献更多。相反,性能最差的DPC(图6c)不保留精细空间信息,因为它在全局图像池化操作之后级联了四个分支。
我们使用在MobileNet-v2上训练最好的学习DPC [74],将其修改成Xception [17,67,14]作为主干网络,然后在Cityscapes训练集[18]上训练,并在验证集上进行评估。对于此以及所有后续实验,主干网络都是在COCO数据集[51]上预先训练过的。附录中的图7显示了由此产生的体系结构的预测的定性结果。表1中的定量结果突出显示,当使用MobileNet-v2主干网络时,学习的DPC在验证集上提供了1.4%的改进,在使用更大的修改的Xception主干网络时,提高了0.6%。此外,当使用Xception作为主干网络时,最好的DPC仅需要前一个最先进的密集预测网络[14]的一半参数和38%的FLOPS。我们记录保存了top-1 DPC中的级联结构的计算结果,因为Xception主干的特征通道是2048,因此直接在其上构建并行操作(如ASPP)是昂贵的。
我们接下来评估测试集上的性能(表2)。DPC创造了82.7%mIOU的最新性能 - 比最先进的模型提高了0.7%[6]。该模型在19个类别中的11个类别中优于其他最先进的模型。我们强调,在Cityscapes数据集上获得收益具有挑战性,因为这是一个经过深入研究的基准。 之前的学术竞赛在一年的时间内从[97]到[6]引起了mIOU增长0.8%。
PASCAL-Person-Part数据集[16]包含对象比例和人体姿势的大变化,数据集注释了人身体的6个部分类以及背景类。我们在该数据集上训练模型,使用的DPC是由修改的Xception主干网络在框架搜索期间得到的。
附录中的图8显示了这些结果的定性可视化,并且表3量化了模型性能。DPC架构实现了71.34%的最先进性能,比最先进的模型[25]提高了3.74%,始终优于其他模型w.r.t. 除背景类之外的所有类别。另外,请注意DPC模型不需要额外的MPII训练数据[1],如[89,25]所要求的那样。
PASCAL VOC 2012基准[24](由[32]增加)涉及分割20个前景对象类和一个背景类。我们在该数据集上训练模型,使用的DPC是由修改的Xception主干网络在框架搜索期间得到的。
附录中的图9显示了这些结果的定性可视化,并且表4量化了模型在测试集上的性能。DPC架构优于以前最先进的模型[95,93]超过1.7%,并且与并发工作相当[14,96,48]。 在语义类别中,DPC在20个类别中的6个类别中实现了最先进的性能。
这项工作演示了架构搜索技术如何用于图像分类之外的问题 - 特别是密集图像预测的问题,其中多尺度处理对于实现最先进的性能至关重要。架构搜索在密集图像预测中的应用通过以下两点实现(1)利用密集预测文献中的创新构建递归搜索空间和(2)构建大规模任务的快速代理预测。学习得到的框架在三种密集图像预测任务上超越了人类发明的框架:场景解析[18],人物部分分割[16]和语义分割[24]。在第一项任务中,结果框架实现了与去年学术竞赛中所获得的相当的性能提升[18]。 同时,结果架构比最先进的系统更有效,当使用更深的Xception [17,67,14]作为主干网络时,它只需要一半的参数和38%的计算需求。
存在几种改善这些结果质量的机会。以前的工作确定设计大而灵活的搜索空间,是实现强大结果的关键因素[101,52,100,65]。通过增加密集预测单元中的分支 B B B的数量来进一步扩展搜索空间可以产生进一步的增益。在场景解析数据上 B B B> 5的初步实验表明了一些机会,尽管在指数增长的空间中随机搜索变得更具挑战性。利用智能搜索算法,如强化学习[3,99],基于序列模型的优化[61,52]和进化方法[81,69,59,90,53,68]可以进一步提高搜索效率,特别是随着空间增大的时候。我们希望这些想法可以移植到其他领域,如深度预测[80]和目标检测[70,55],以实现与人类发明设计相似的收益。
致谢:我们感谢Kevin Murphy的许多想法和灵感; Quoc Le,Bo Chen,Maxim Neumann和Andrew Howard的支持和讨论; Hui Hui帮助发布模型; Google Brain,Mobile Vision和Vizier团队的成员,负责基础设施,支持和讨论。