目录
前言
神经架构搜索(Neural Architecture Search,NAS)已经在图像分类领域取得了巨大的进展,典型的网络有NAS系列[2,3,4],EfficientNet,MobileNetv3,AmoebaNet等。从名字就可以看出本文要介绍的NAS-FPN[1]就是使用NAS技术对FPN[5]的架构进行优化。
在目标检测中,不同尺度的特征在建模语义信息和细节信息上具有不同的表现,因此对多尺度的特征进行融合对于提升检测效果至关重要。FPN提出了自顶向下的融合策略,而PANet[6]的提出了自顶向下和自底向上的双向融合策略。这篇文章介绍的NAS-FPN则是自动的对这种融合策略进行搜索,从而得到优于FPN和PANet的融合策略。
1. 算法详解
1.1 基本框架
NAS-FPN采用了和NAS相同的算法流程,如图1所示。它由一个控制器和一个评估器组成:其中控制器是一个RNN,用于根据评估器得到的结果来生成新的网络结构;而评估器则对控制器生成的网络就行效果的评估。两个模块构成一个循环的流程,两个结构相互促进,相辅相成,最终得到一个高性能的网络结构。
图1:通用RL的搜索流程在NAS-FPN中,它搜索的是一个可以重复的FPN模块。通过控制这个模块的重复次数我们可以在速度和精度之间做一个权衡。它的另一个作用是可以early-exit或者叫做anytime-prediction,anytime-prediction [7]是指我们可以根据计算资源的不同来在不同的阶段输出预测结果。NAS-FPN的骨干网络使用的是RetinaNet[8],在RetinaNet中,它采用了FPN的特征融合策略,而NAS-FPN则是将RetinaNet的FPN部分替换为搜索出来的融合架构。NAS-FPN的整体架构如图2所示。
图2:使用了NAS-FPN的RetinaNet,其中N是搜索出的模块的重复的次数NAS-FPN的anytime prediction体现在它的性能随着的增大会一直提升,而FPN则没有这个性质。
1.2 搜索空间
NAS-FPN的使用RNN的控制器来进行网络结构的采样。不同于NAS系列的需要采样网络中的每个细节,NAS-FPN采样的是需要融合的Feature Map和融合之后的Feature Map,因此它的搜索空间非常小,包括两个输入Feature Map和输出Feature Map的尺寸以及两个输入Feature Map的融合方式。具体的讲,它的采样过程分成四步:
Step 1:从候选列表中选择一个输入Feature Map;
Step 2:从候选列表中选择另外一个输入Feature Map;
Step 3:选择输出Feature Map的分辨率,为了减少计算量,步长为的Feature Map不在采样空间中;
Step 4:选择和的融合方式。
通过上面四步我们可以采样到一组参数,然后便可以将和融合为新的Feature Map。NAS-FPN可以采样的策略有两种,一个是单位加,另外一个是全局注意力池化(Global Attention Pooling,GAP)[9]。
GAP的流程如图3所示,它的动机是高层的信息包含有更多的语义信息,可以用作浅层信息的Feature Map的权值的计算。它将高尺度特征通过全局池化和卷积得到低尺度特征的Attention权值,然后对低尺度的特征进行加权,这么做的原因是作者认为含有更多语义信息的高级别特征可以为低级别的特征的重要性提供指导。最后将两个Feature Map相加得到最终的输出。
图3:全局注意力池化算法流程无论是单位加,还是全局注意力池化,它们的输入都是尺度相同的Feature Map。如果输入Feature Map和输出Feature Map的尺度不同,NAS-FPN会使用max pooling或者最近邻居采样将其调整到统一尺度,注意这两个操作是不会引入参数的。
1.3 输入和输出
Step 1和Step 2中都讲到我们要从候选列表中选择输入的Feature Map,那么这个候选列表是如何构建呢?在初始阶段,候选列表选取的是五个不同尺度的Feature Map,它们的步长依次是${8,16,32,64,128}$,其中和直接从经过步长为和的max pooling得到。在采样的过程中,我们会不断的生成新的Feature Map,这个Feature Map又会被重新添加到候选列表中,整个过程如图4所示。
图4:NAS-FPN的采样流程,左侧是候选Feature Map列表,它通过采样的输出Feature Map的尺度和融合操作将生成的新的Feature Map重新加回到候选列表中NAS-FPN的输出是融合之后的特征,它依旧保持的步长,这样便可以便捷的实现$N$个搜索架构的堆叠。在搜索结束时,每个步长的再依次重复Step 1,2,4,得到最终的结果。对于一些没有连接到的Feature Map,NAS-FPN直接将它们加到等步长的Feature Map上。
1.4 代理函数
在PNASNet[4]中提出了SMBO的搜索策略,SMBO的核心在于通过代理函数对搜索空间进行剪枝,通过减小搜索空间的方式来提升强化学习的搜索效率。在PNASNet中,RNN被用作代理函数。NAS-FPN也采用了相同的代理函数的策略,它的代理函数只训练10个Epoch,而RetinaNet则需要训练50个epoch才能收敛。
1.5 控制器
NAS-FPN也采用了RNN结构的控制器,和[2,3,4]相同,它也会在每个时间片给出一个新的采样的结果,如图5所示。控制器的训练使用的PPO(Proximal Policy Optimization)算法[10]。简单的讲,它通过控制器在原来的子网络基础上再采样若干个新的候选网络,然后使用评估器得到每个候选网络的检测精度,最后选择效果最好的候选网络作为新的子网络。
图5:NAS-FPN的控制器结构1.6 实验结果
NAS-FPN搜索出的特征融合方式如图6所示,它的融合过程如图7所示,从这两个图中我们可以看出它具有如下特点:
粉色框是它的Loss,可以看出NAS-FPN的都会有一个预测结果;在NAS-FPN中存在一些short-cut;NAS-FPN中存在一些跨尺度连接,但是对比图7的历史搜索结果来看,它的跨尺度连接逐渐清晰;NAS-FPN更倾向于使用融合之后的新的Feature Map。图6:NAS-FPN网络结构图,其中GP表示Global Attention Pooling,R-C-B表示ReLU-Conv-BN图7:NAS-FPN的网络架构。其中每个点代表一个Feature Map,绿圈表示输入Feature Map,红圈表示输出Feature Map。(a)是FPN[5],(b)-(f)是搜索出的NAS-FPN的网络架构1.7 NAS-FPNLite
作者还介绍了一篇用于移动端设备的特征融合网络NAS-FPNLite,NAS-FPNLite的构建是基于NAS-FPN的,它主要从5点对网络容量进行调整:
堆叠的FPN块的个数;不同的骨干网络;特征金字塔的通道数;搜索空间为;替换普通卷积为深度可分离卷积。2. 总结
本文是NAS技术在目标检测领域的开山之作,主要集中在对FPN架构的搜索。通过NAS技术搜索出的架构虽然略显凌乱,但也包含了基本的设计尝试,例如自顶向下和自底向上的特征融合,short-cut等操作。这篇论文仅仅将NAS技术应用到了特征融合层而不是整骨干网络乃至整个检测网络,表明该方向仍有很大的探索空间。
Reference
[1] Ghiasi, Golnaz, Tsung-Yi Lin, and Quoc V. Le. "Nas-fpn: Learning scalable feature pyramid architecture for object detection." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.
[2] Zoph, Barret, and Quoc V. Le. "Neural architecture search with reinforcement learning." arXiv preprint arXiv:1611.01578 (2016).
[3] Zoph, Barret, et al. "Learning transferable architectures for scalable image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
[4] Liu, Chenxi, et al. "Progressive neural architecture search." Proceedings of the European conference on computer vision (ECCV). 2018.
[5] Lin, Tsung-Yi, et al. "Feature pyramid networks for object detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
[6] Liu, Shu, et al. "Path aggregation network for instance segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
[7] Huang, Gao, et al. "Multi-scale dense networks for resource efficient image classification." arXiv preprint arXiv:1703.09844 (2017).
[8] Lin, Tsung-Yi, et al. "Focal loss for dense object detection." Proceedings of the IEEE international conference on computer vision. 2017.
[9] Li, Hanchao, et al. "Pyramid attention network for semantic segmentation." arXiv preprint arXiv:1805.10180 (2018).
[10] Schulman, John, et al. "Proximal policy optimization algorithms." arXiv preprint arXiv:1707.06347 (2017).