自动网络搜索(NAS)在语义分割上的应用(一)

【摘要】本文简单介绍了NAS的发展现况和在语义分割中的应用,并且详细解读了两篇流行的work:DARTS和Auto-DeepLab。 自动网络搜索

多数神经网络结构都是基于一些成熟的backbone,如ResNet, MobileNet,稍作改进构建而成来完成不同任务。正因如此,深度神经网络总被诟病为black-box,因为hyparameter是基于实验求得而并非通过严谨的数学推导。所以,很多DNN研究人员将大量时间花在修改模型和实验“调参”上面,而忽略novelty本身。许多教授戏称这种现象为“graduate student descent”。

近两年,学术界兴起了“自动网络搜索”取代人工设计网络结构。2016年,Google Brain公开了他们的研究成果NASNet【1】,这是第一个用自动网络搜索Neural Architecture Seach (NAS)完成的神经网络,为深度学习打开了新局面。NASNet是由一系列operation(如depth separable conv, max pooling等)叠加而成。至于怎样选择operation,作者用强化学习(RL)的方法,用一个controller网络随机组合operations生成模块,通过评估选择最优模块组成网络结构。Google提供的云上服务Cloud AutoML正是基于NAS方法,根据用户上传的数据自动搜索神经网络再将结果输出。迄今为止,国内外很多工业界和学术界的AI Lab都有NAS相关工作:Google Brain提出了NasNet, MNasNet和Nas-FPN,Google提出MobileNetv3,Auto-DeepLab和Dense Prediction Cell(DPC);MIT Han Song团队提出ProxylessNet;Facebook提出FbNet;Baidu提出SETN;腾讯提出FPNAS;小米提出FairNAS;京东AI提出CAS;华为诺亚有提出P-DARTS等。通过各大实验室对NAS的研究成果,似乎可以看出自动网络搜索将会成为趋势。

接下来我们简单介绍一下NAS的流程,详细内容可参考【2】。NAS的架构主要包含三部分:搜索空间Search Space,搜索策略Search Strategy和评估机制Performance Estimation(如下图)。

自动网络搜索(NAS)在语义分割上的应用(一)

首先搜索空间会定义一些模块(cell),operations(例如dilated conv 3x3),和宏观网络结构。cell是由若干个operation组合而成。通常来说,NAS会自动搜索出一些可以重复的cell,将cell按照设定的宏观网络结构堆叠起来形成network。Zoph et al.提出了两种cell,normal cell和reduction cell【3】。Reduction cell有改变spatial resolution的功能。这两种cell在现有的算法中最为常见。此外还有来自CAS网络【4】的multi-scale cell,作用和ASPP类似可用作decoder。至于对宏观网络结构的设定,早期的工作会采用chained-structured,或者带分支结构multi-branch例如ResNet和DenseNet带有skip和shortcut。

搜索策略在NAS中至关重要,因为它决定了下一步要选择哪一个cell或者operation组成网络结构。搜索的目的就是让现有的网络结构在unseen data上得到最好的效果。如前文提到,第一篇工作NASNet中用到了强化学习作为搜索策略。虽然实验结果尚可,但强化学习耗时过长并且需要大量GPU资源。NASNet就是用几百个GPU搜索了几天才完成,这对于资源少的研究人员来说不可能完成。继NASNet之后早期的工作多是基于RL完成搜索。随着其他方法的研究,如random search, Bayesian optimization, Gradient-based, evolution algorithms,搜索时间在下降并且GPU使用量也在减少,使得NAS得以普及。感谢https://github.com/D-X-Y/Awesome-NAS 提供了搜索策略的调研。

由于一个神经网络通常有几十甚至上百层,结构也很复杂,一个及时并有效的反馈对于减少搜索时间很有帮助。最简单的方法是把训练数据分成两部分,train data用来训练网络结构,validation data用来评估当前搜索到的网络结构。一般来说,一个好的评估机制要兼具速度和准确度,举个例子,train data少则网络结构训练不到位,train data多则搜索时间过长。来自Freiburg大学的Elsken团队发表了关于NAS的调研,里面对于评估方法讲的很详细,请挪步【2】。

自动网络搜索在语义分割上的应用

相比于目标检测,语义分割可以更好的解析图像,因为图像上的每一个pixel都会被分类。所以语义分割可以完成目标检测无法完成的任务,如自动驾驶的全景分割,医疗图像诊断,卫星图分割,背景抠图和AR换装等。过去的五年继FCN之后,很多神经网络在公开数据集上都有不错的成绩。随着AI产品落地,对神经网络性能的要求更为严格:在保证accuracy的前提下,在有限制的硬件资源运行并且提升inference速度。这为设计神经网络增加了很大难度。所以NAS是一个很好的选择,它可以避免通过大量调参实验来决定最优网络结构。在语义分割之前,NAS在图像分类和目标检测上均有成功的应用。我们总结了近两年比较流行的NAS在语义分割上的工作。多数的语义分割的网络都是encoder-decoder结构,在这里我们对比了实际搜索的部分,搜索性能耗时和方法。由于每一个work都在不同实验环境下进行,所以实验结果没有直接进行对比。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxpdg.html