极市导读
本文针对MLP-Mixer等已有方案存在的分辨率相关、不便于向下游任务迁移的问题,提出了一种新颖的CycleFC操作,并由此构建了CycleMLP架构。本文非常漂亮的一个操作:通过对ChannelFC的采样点引入更高感受野升级为CycleFC,提升感受野的同时保持计算量不变。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
paper: https://arxiv.org/abs/2107.10224
Code: https://github.com/ShoufaChen/CycleMLP
本文是香港大学&商汤科技在MLP架构方面的探索,针对MLP-Mixer等已有方案存在的分辨率相关、不便于向下游任务迁移的问题,提出了一种新颖的CycleFC操作,并由此构建了CycleMLP架构。所提CycleMLP在ImageNet分类、COCO检测以及ADE20K语义分割等任务上均取得了优于其他MLP架构的性能,同时具有与Swin相当甚至更佳的性能。本文非常漂亮的一个操作:通过对ChannelFC的采样点引入更高感受野升级为CycleFC,提升感受野的同时保持计算量不变。
本文提出一种简单的MLP架构CycleMLP用于视觉识别与稠密预测。现有MLP架构(比如MLP-Mixer、ResMLP、gMLP)由于与图像尺寸相关,导致它们难以向下游任务迁移。相比已有方法,CycleMLP具有以下两个优势:
我们构建一类MLP架构CycleMLP超越了现有MLP方案并在ImageNet上取得了83.2%的top1精度,具有与Swin相当的性能但参数量与FLOPs更低。我们对CycleMLP进行扩展并使其作为下游任务的骨干网络,CycleMLP可以为目标检测、实例分割以及语义分割等领域提供极具竞争力的基线模型。比如,CycleMLP在ADE20K数据集上取得了45.1mIoU指标,与Swin的45.2mIoU相当。精度-FLOPs性能曲线对比可参见下图。
本文主要贡献包含以下几点:
上图给出了所提CycleMLP的宏观架构信息,其设计原则受Swin与PVT启发而得到。通过这种方式,我们构建了一个分层架构,而这对于稠密预测任务非常重要。
给定尺寸为输入图像,首先采用patch embedding
模块将其拆分为块,每个块视作“token”(即词)。具体来说,我们参考PVTv2采用了重叠块嵌入模块,窗口尺寸为7,步长为4。原始图像块进一步投影到更高维,因此块投影模块的输出为。
然后,我们顺序将前述特征送入到多个CycleFC模块中进行处理,CycleFC模块参考ResNet的stage进行配置。注:每个阶段内部词数量保持不变,每个阶段包含一个transition进行分辨率降维、通道升维。总而言之,整个模型包含四个stage,最后stage的输出特征维度为。这些stage的设置已被广泛应用于CNN、Transformer模型,故所提CycleMLP是一种广义的模型候选。
上图b给出了本文所提CycleFC模块示意图,相比已有MLP-Mixer(见上图a),主要区别在于:所提Cycle Fully-Connected Layer(CycleFC)用于进行空域投影并促进模型进行上下文聚合与信息通道。具体来说,CycleFC模块包含三个并行CycleFC操作后接一个channel-MLP。公式描述如下:
上述模块设计与ViT类似,区别仅在与我们采用CycleFC替换了多头自注意力模块。因此,所提CycleFC模块可以作为现有Transformer或者MLP架构的即插即用候选模块。
接下来,我们对CycleFC的细节进行介绍分析。其背后的动机在于:使MLP类模型能处理可变图像尺寸。如上图a所示,Channel-FC仅与输入输出维度有关,而与图像尺寸无关。因此,Channel-FC是一种尺度无关操作,可以处理可变输入尺寸。此外,Channel-FC的计算复杂度与图像输入尺寸成线性关系。然而,Channel-FC的局限性在于:感受野有限,无法聚合充分的上下文信息。下图表中数据也表明:由于缺乏上下文信息,channel-FC具有比较差的性能。
为提升感受野同时保持计算复杂度,我们提出了一种新颖的操作CycleFC,见上图c。类似ChannelFC,CycleFC沿通道维进行全连接;与ChannelFC不同之处在于:空域采样点采用了stair
风格。受益于这种简单而有效的设计,CycleFC具有与ChannelFC严格相等的复杂度;但CycleFC的感受野则得到了放大:从点扩展为pseudo-kernel。
Pseudo-kernel 在这里,我们将引入pseudo-kernel
(伪核)概念,见上图。我们将CycleFC的采样点(即橙色块)投影到空域平面并定位投影区域为伪核尺寸。假设输入特征为,常规ChannelFC的输出表示如下:
注:分别表示空域与通道索引。而CycleFC的核心在于:**我们将X沿通道维的采样点从固定点i调整为伪核窗口,其感受野为。**因此,CycleFC的操作定义如下:
其中,为伪核尺寸。
Discussion CycleFC可以接收近邻上下文信息同时保持与ChannelFC相同复杂度(包含参数量与FLOPs)。因此,CycleFC是一种可促进空域上下文聚合的广义、即插即用的操作。注:当伪核尺寸为时,CycleFC则退化为ChannelFC。
类似其他Transformer、MLP模型,我们定义了不同计算量的模型,从2.1G到12.3GFLOPs。我们定义三路并行CycleFC的伪核尺寸分别为。通过调整一下超参得到了CycleMLP-B1到CycleMLP-B5等模型:
关于不同模型更详细的超参信息请查看前面的Table1.
上表对比所提CycleMLP与其他MLP架构在ImageNet数据集上的性能对比,从中可以看到:
上表对比了所提CycleMLP与CNN、Transformer以及MLP等SOTA模型的性能对比,从中可以看到:
上表对比了所提方案在COCO数据上的性能,从中可以看到:
上表对比了CycleMLP在ADE20K语义分割任务上的性能对比,从中可以看到:
本文亮点总结
如果觉得有用,就请分享到朋友圈吧!
联系客服