写在前面
在本文中,作者提出了一个并行设计的双向连接MobileNet和Transformer的结构Mobile-Former。这种结构利用了MobileNet在局部信息处理和Transformer的在全局交互方面的优势,这样的连接可以实现局部和全局特征的双向融合。
不同于现有的Vision Transformer,Mobile-Former中的Transformer包含很少的、随机初始化的tokens,因此计算量非常小。通过用一个非常lightweight的cross attention将MobileNet和Transformer连接起来,使得MobileFormer不仅计算量非常小,而且也能拥有超强的表征能力。在ImageNet分类任务上,从25M到500M FLOPs的复杂度下,所提出的Mobile-Former方案均取得了优于MobileNetV3的性能。例如,它在294M FLOPs上达到了77.9%的Top-1准确率,比MobileNetV3增加了1.3%,但节省了17%的计算量。当转移到目标检测任务上时,Mobile-Former的性能比MobileNetV3高出8.6AP。
论文和代码地址
Mobile-Former: Bridging MobileNet and Transformer
论文地址:https://arxiv.org/abs/2108.05895
代码地址:尚未开源
Motivation
最近,Vision Transformer(ViT)展示了全局处理的优势,相比CNN实现了显著的性能提高。然而,当将计算量限制在1GFLPs内时,ViT的增益会减少。由于depthwise和pointwise卷积的高效性,MobileNet和它的拓展工作依旧统治着小于300MFLOPs的计算量领域。因此,作者就提出了这样一个问题:
如何设计高效的网络来有效地进行局部处理和全局交互?一个简单的想法是结合卷积和Transformer,确实也有一些工作是采用了这样的方法。目前大多数是采用串联的方法,或者将token化的方式采用卷积的方法。
在本文中,作者将设计范式从串行转移到并行,并提出了一个新的网络,并行化MobileNet和Transformer,并用一个双向桥将他们连接起来(如上图所示)。作者将它命名为Mobile-Former,其中Mobile代表MobileNet,Former代表Transformer。Mobile将图像作为输入,并堆积了许多mobile block,用depthwise和pointwise卷积来提取每个像素的局部信息。Former将几个很少数量的可学习token(可学习的参数)作为输入,然后堆积了许多Transformer block,用来编码图像的全局特征。MobileNet和Transformer通过双向桥进行通信,以融合局部和全局功能,这使得全局信息和局部信息能够充分的交流。这个双向桥就是一个轻量级的cross attention,轻量级主要体现在两个方面:1)在通道数量较低的mobile bottleneck上进行交叉关注;2)移除部分在query、key和value上的投影,来减少参数和计算量。这种具有双向桥接的并行结构同时利用了MobileNet和Transformer的优势。并行结构中局部和全局特征的解耦利用了MobileNet在提取局部特征方面的效率,以及Transformer在建模全局交互方面的能力。更重要的是,这是通过一个轻量级Transformer和一个轻量级的bridge来实现交换Mobile和Former之间的局部和全局特征的信息。Bridge和Former的消耗了不到总计算成本的20%,但显著提高了表示能力。
Mobile-Former在图像分类和目标检测方面均有良好的性能。例如,它在294M FLOPs下达到了ImageNet 77.9%的Top-1精度。更重要的是,从25M到500M FLOPs的计算区间,Mobile-Former的性能始终优于高效的CNN和视觉Transformer(如上图所示)。
此外,当从图像分类转移到目标检测时,Mobile-Former的性能显著优于MobileNetV3,获得8.6AP的增益(35.8 vs. 27.2) ,且计算成本更低。
方法
3.1. Overview
Mobile-Former并行化了MobileNet和Transformer,并通过双向交叉注意连接它们。在Mobile-Former中,Mobile以图像作为输入,并用反向bottleneck块提取局部特征。Former以可学习参数(或token)作为输入,记为,其中d和M分别为token的维度和数量。这些token被随机初始化,每个token代表图像的一个全局先验。这一步与ViT是不同的,ViT中token是通过线性投影局部图像的patch得到的。这种差异很重要,因为它显著减少了token的数量(本文中的),从而得到了一个高效的Former。Mobile和Former由一个双向桥连接,用于局部和全局特征是双向融合。在这里,将双向桥的两个方向分别表示为Mobile→Former和Mobile←Former,作者提出了一个轻量级的交叉注意来建模这个双向桥。
3.2. Low Cost Two-Way Bridge
作者使用了交叉关注的优势来融合局部特征和特征。对标准的交叉注意力,作者做了两处改动:1)计算在通道数较低的Mobile瓶颈上的交叉关注;2)在Mobile side上移除了特征投影,因为Mobile side上的position数量是比较大的。
局部特征映射表示为x,全局token表示为z。从局部到全局的轻量级交叉注意的定义如下:
这一步表示为上图的Mobile←Former。
3.3. Mobile-Former Block
Mobile-Former可以作为一堆Mobile和Former块进行解耦。每个块包括一个Mobile子块、一个Former子块和一个双向桥接(Mobile←Former和Mobile→Former)。
3.3.1. Input and Output
Mobile-Former有两个输入:
1)局部特征图,代表局部特征图它有C个通道和L个空间位置(L=hw,其中h和w为特征图的高度和宽度)。2)全局token,其中M和d分别为token的数量和维数。它与中的倒置瓶颈块略有不同,在第一次Potintwise卷积和3×3 Depthwise卷积之后,分别用动态ReLU作为激活函数而不是RELU(如上图蓝色区域所示)。
3.3.2. Mobile sub-block
Mobile 子块以特征映射作为输入。与原始的动态ReLU不同的是,参数是通过在平均池化特征上应用两个MLP层来生成的,这里是通过在计算第一个Former的FFN之后平均池化结果得到的。
Mobile子块的输出作为Mobile←Former的输入。这一步的计算复杂度为,其中L为空间position数,E为通道扩展比,C为扩展前的通道数。
3.3.3. Former sub-block
Former子块是一个具有多头注意(MHA)和前馈网络(FFN)的标准Transformer块。为了节省计算量,作者在FFN中使用了扩展比2,而不是4。它的复杂度是。第一项涉及Self-Attention的计算,而第二项涉及线性投影和FFN的计算。
3.3.4. Mobile→Former
这一步与标准Self-Attention相比,去掉了和的投影矩阵,以节省计算。其计算复杂度为。其中第一项涉及计算局部和全局特征之间的交叉注意,第二项是涉及计算全局特征投影到局部特征。
3.3.5. Mobile←Former
这一步将全局token融合到局部特征。本地特征是query,全局token是key和value。因此,作者保留了和的投影矩阵,但删除了的投影矩阵,以节省计算。
3.4. Network Specification
3.4.1. Architecture
上表展示了294 MFLOPs的Mobile-Former架构,它在不同的分辨率输入上叠加了11个Mobile-Former块。
3.4.2. Downsample Mobile-Former Block
Stage2-5具有Mobile-Former块的降样变体用来进行空间的降采样(表示为Mobile-Former↓)。在Mobile-Forme↓中,Mobile子块中的卷积层从三层(pointwise→depthwise→pointwise)变成了四层(depthwise→pointwise→depthwise→pointwise),其中第一个depthwise的步长为2。
3.4.3. Mobile-Former Variants
作者在上表中列出了Mobile-Former的7种不同的计算量模型,从26M到508M FLOPs。它们具有相似的架构。
实验
4.1. ImageNet Classification
上表展示了Mobile-Former和高效的CNN之间的比较,可以看出Mobile-Former的并行设计有效地提高了表示能力。上表展示了Mobile-Former和ViT之间的比较,Mobile-Former用更少的计算量达到了更高的Top-1的精度。
4.2. Object Detection
上表展示了COCO数据集上目标检测的结果。在相似的计算成本下,Mobile-Former显著优于MobileNetV3和ShuffleNet。这表明,Mobile-Former在目标检测任务中也是有效且高效的。
4.3. Ablations and Discussion
4.3.1. Mobile-Former is Effective
Former, Bridge 和DY-ReLU的消融实验。可以看出Former, Bridge 和DY-ReLU对于性能的提升都是非常有用的。Mobile中depthwise convolution卷积核大小的消融。可以看出5x5的卷积核效果更好,但是提升效果不明显。作者认为这是因为Former已经有更大感受野的作用了。
4.3.2. Mobile-Former is Efficient
上表展示了Former使用不同数量的全局token的ImageNet分类结果。token通道维度是192。随着token数量增加,性能先提升;当使用超过6个token时,提升就停止了。这种消融显示了全局token的紧凑性,这对Mobile-Former的效率很重要。上表展示了Former使用不同维度的全局token的ImageNet分类结果。token数量是6。结果与token数量的结果相似,也是性能先增后减。从上表可以看出,移除FFN会带来0.3%的性能损失。将Self-Attention换成MLP同样也会带来性能的损失,因为MLP的实现是静态的。
总结
本文提出了一种基于MobileNet和Transformer的双向式交互并行设计的网络Mobile-Former。它利用了MobileNet在局部信息处理中的效率和Transformer在编码全局交互方面的优势。该设计不仅有效地提高了计算精度,而且还有效地节省了计算成本。在低FLOP条件下,它在图像分类和目标检测方面都优于高效的CNN和ViT变体。
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。