来自谷歌大脑的SpineNet:一种非常规的主干结构
作者:互联网
由于编码器部分的解码器结构的分辨率不断降低,分类问题得到了很好的解决。然而,这种架构不能有效地生成用于目标检测(同时识别和定位)所需的强多尺度特征。
SpineNet和之前的主干网络有什么不同?
一个特征的存在可能需要高分辨率来检测,而它的确切位置不需要以同样高的精度来确定。
尺度递减的主干的缺点
-
主干网模型通常是指编码器-解码器架构(即编码器)内的缩小尺度的网络。
-
由于编码器的任务是从输入中计算特征表示,一个缩小的主干将不能容纳空间信息。
-
随着层次的加深,特征会变得更加抽象,更少的局部化,这使得解码器很难找到确切需要的特征。
提出的新方法
为了克服局部化中多尺度特征获取和检索的困难,引入了具有跨尺度连接的scale-permuted模型,并进行了以下改进:
-
特征图的尺度可以灵活的增加和减少,可以在体系结构中的任何时间通过permuting block的方式增加或减少,而不是以前的严格减少的模式。这将支持空间信息的维护。
-
特征图的连接允许跨特征尺度进行,以便从多个尺度进行特征融合。
方法和结构
神经网络搜索 (NAS)
-
采用NAS的方法来选择SpineNet的架构。
-
NAS使用强化学习控制器。它提出了各种各样的架构,并将这些架构送到他们接受充分训练的环境中。
-
输出准确度将作为一种奖励,选择架构的决定将依赖于它。
图2:上下文中的神经结构搜索方法。
该SpineNet体系结构具有一个固定的stem网络(尺度缩小网络),然后是一个可学习的 scale-permuted网络。用于构建scale permuted网络的NAS的搜索空间,包括scale permutations、cross-scale connections和block adjustments。
-
Scale permutations:一个block只能连接到它的父块,父块的顺序较低,所以块的顺序很重要。在这里,中间块和输出块发生了排列。
-
跨尺度连接:对于搜索空间中的每个块,定义两个输入连接。
-
Block 调整:每个块可以调整它们的尺度级别和类型。中间块的尺度范围可以像{−1,0,1,2},块的类型可以是bottleneck block或residual block。
Cross-Scale Connections中的重采样
-
在执行跨尺度连接时,在父块和目标块中融合具有不同分辨率和特征尺寸的跨尺度特征是一个挑战。
-
为了做到这一点,进行了空间和特征重新采样,以匹配目标块的参数。
-
重采样采用最近邻算法进行上采样,stride为2,3×3的卷积核对feature map进行下采样以匹配目标分辨率。
图3:重采样操作
评估来自ResNet的SpineNet结构
-
scale-permuted模型是对ResNet结构中的block进行permuting形成的。
-
为了比较全尺度缩减的网络和scale-permuted网络,生成了许多中间模型,这些模型逐渐将架构转换为scale-permuted的形式。
图4:通过对ResNet进行permuting构建scale-permuted网络
-
在上图中,(a)表示ResNet-50,后面是Feature Pyramid Network (FPN)的输出层。
-
在(b)中,有7个block是ResNet的一部分,10个block用在了scale-permuted网络中。
-
在(c)中,所有的块都scale-permuted网络的一部分,在(d) SpineNet-49中,最高AP得分为40.8%,减少l了10%的FLOPs(85.4B vs. 95.2B)。
提出的SpineNet结构
基于图4 (d)中派生出的SpineNet-49结构,在SpineNet家族中又构建了四个结构。
-
SpineNet-49S具有与SpineNet-49相同的体系结构,其特征尺寸缩小了0.65倍。
-
SpineNet-96架构将所有块重复两次,因此模型大小是SpineNet-49的两倍。
-
SpineNet-143每个块重复三次,重采样操作中的比例系数保持在1.0。
-
SpineNet-190每个块重复4次,比例因子=1.3,进一步放大特征维数。
图5:通过重复block来增加模型深度。从左到右:SpineNet-49,SpineNet-49,SpineNet-143中的block。
结果对比
针对目标检测和图像分类任务进行了实验,以证明该架构的通用性。
目标检测
将ResNet-FPN骨干模型替换掉,使用RetinaNet检测器来完成目标检测任务。模型在COCO test-dev数据集上进行评估,并在train2017上进行训练。
-
下面的结果(图6)显示了SpineNet模型在很大程度上优于其他流行的检测器。SpineNet-190获得最高的52.1%的AP。通常,SpineNet架构需要更少的FLOPs和更少的参数,这使得模型的计算成本更低。
图6:一阶段物体检测的结果,在COCO测试集上。在RetinaNet上使用不同的骨干,应用到单个模型上。默认情况下,训练使用多尺度训练,使用ReLU激活函数。模型带(†)的在训练时应用了随机深度和swish激活和塞纳湖,训练了更长的时间。
-
以下在COCO val2017上的结果(图7),SpineNet-49减少了~10%的FLOPs, AP从R50-FPN的37.8提高到了40.8。
图7:R50-FPN和scale-permuted模型在COCO val2017上的结果对比
-
与ResNet-FPN和NAS-FPN骨干相比,采用SpineNet骨干的RetinaNet模型获得了更高的AP评分,且FLOPs显著减少(图8)。
图8:使用了SpineNet,ResNet-FPN以及NAS-FPN作为主干的RetinaNet的对比
图像分类
为了进行图像分类,SpineNet在ImageNet ILSVRC-2012和iNaturalist-2017两个数据集上进行了训练。
-
在ImageNet上,Top-1%和Top-5%的准确率与ResNet相当,除此之外,FLOPs大大减少。
-
在iNaturalist上,ResNet被SpineNet超过5%,同时减少了FLOPs。
图9:在ImageNet和iNaturalist上的图像分类结果
以上结果表明,SpineNet不仅能够更好地进行目标检测,而且对于图像分类等其他视觉学习任务也具有足够的通用性。
Scale-Permutation和Cross-Scale Connections的重要性
我们在编解码器网络中选择了Fish和Hourglass 两种常见的结构形式,并与R0-SP53模型进行了比较。所有模型中的交叉连接都是使用NAS学习的。
Scale-Permutation
-
由此得出的结论是,联合学习scale-permutations和cross-scale connections (R0-SP53)优于只学习固定架构/固定块顺序(Hourglass 和Fish)上的connections。
-
在提出的模型R0-SP53中,AP得分较高**(40.7%)**。
图10:学到的scale permutation的重要性
Cross-Scale Connections
-
用于研究cross-scale connections重要性的方法是图损坏。
-
cross-scale connections在三种情况下进行损坏 —— 移除短连接,移除长连接,以及同时移除两个连接。
-
结果显示,在case(2)和case(3)中,AP得分受到严重影响。原因是远程连接可以有效地处理频繁的分辨率变化,因此破坏这些会更严重地损害整体精度。
图11:学到的cross-scale connections的重要性
最后
-
提出了一种新的元架构,提出了一种scale-permuted模型,有效地解决了先前使用缩减尺度的主干网络无法有效地同时解决目标识别和定位的问题。
-
使用Neural Architecture Search (NAS)获取SpineNet-49 Architecture。此外,通过增加模型深度,又产生了四个更健壮的架构。
-
使用COCO test-dev对SpineNet进行目标检测任务评估,其AP达到52.1%,高于现有的最先进的检测器。
-
SpineNet还成功地分别使用ImageNet和iNaturalist数据集在图像分类任务中获得了相当好的表现,并提升了Top1%的准确率。
-
总而言之,使用新的架构,用更少的计算和近似相同数量的参数,可以获得更高的精度。
承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。
标签:非常规,permuted,scale,架构,SpineNet,主干,模型,尺度 来源: https://blog.csdn.net/weixin_36670529/article/details/113418394