分享

字节跳动提出轻量级高效新型网络MoCoViT,在分类、检测等CV任务上性能优于GhostNet、MobileNetV3!

 我爱计算机视觉 2022-06-21 发布于江苏

详细信息如下:

  • 论文链接:https:///abs/2205.12635

      01      

摘要

最近,Transformer 在各种视觉任务上取得了不错的成果。然而,它们中的大多数计算成本很高,不适合于实际的移动应用程序。在这项工作中,作者提出了移动卷积视觉Transformer(MoCoViT),它通过将Transfomrer引入移动卷积网络(mobile convolutional networks)来利用这两种架构的优点,从而提高性能和效率。

与最近有关vision transformer的工作不同,MoCoViT中的mobile transformer模块是为移动设备精心设计的,非常轻量级,通过两个主要修改完成:移动自注意力(Mobile Self-Attention,MoSA)模块和移动前馈网络(Mobile Feed Forward Network,MoFFN)。MoSA通过分支共享方案简化了attention map的计算,而MoFFN则作为transformer中MLP的移动版本,进一步大幅度减少了计算量。

综合实验证明,作者提出的MoCoViT系列在各种视觉任务上优于SOTA的便携式CNN和transformer神经架构。在ImageNet分类中,它在147M次浮点运算时达到了74.5%的Top-1精度,比MobileNetV3在计算量更少的情况下提高了1.2%。在COCO目标检测任务上,MoCoViT在RetinaNet框架下的性能比GhostNet高出2.1 AP

      02      

Motivation

视觉Transformer(ViT)在各种任务上,如图像分类、目标检测和语义分割,都比CNN有显著的性能提升。然而,这些性能改进通常需要很高的计算成本。例如,为了执行图像分类任务,DeiT需要超过10G的Mult Adds。如此高的计算资源要求超出了许多移动设备的能力,例如智能手机和自动驾驶汽车。为了缓解这种问题,Swin将每个token的注意区域从全注意力限制为局部注意力,其中输入被拆分为子窗口,并且只在窗口内执行自注意力。Twins提出了空间可分离的自注意力,其中局部分组的自注意和全局子抽样的注意力被应用于两个连续的块中。缺点是,复杂性仍然太大,无法部署到移动设备上。

相反,在过去几年中,在设计用于移动视觉任务的高效卷积神经网络(CNN)方面取得了很大进展。例如,MobileNets利用深度卷积和点卷积来近似普通卷积层,并实现了可比的性能。ShuffleNet进一步提出了通道shuffle操作,以增强紧凑型模型的性能。GhostNet设计了一个Ghost模块,用于从简单操作中生成丰富的特征图。

在这项工作中,作者寻求为移动设备设计一个轻量级的Transformer,并在复杂性和性能之间实现良好的权衡。一些研究人员首次尝试通过结合CNN和transformer的有点来开发轻量级Transformer。之前研究工作人员MobileNetV2块和transformer块串联在一起,开发了MobileVit块来学习全局表示。但与移动CNN相比,MobileVit仍然相对较重。Mobile-Former是MobileNet和Transformer的并行设计,在两者之间有一个双向桥梁,用于通信。与之前的工作不同,作者提出了一种非常有效的Mobile Transformer Block(MTB)。该模块是为移动视觉任务精心设计的,由两个关键组件组成,移动自注意力(MoSA)和移动前馈网络(MoFFN)。

在MoSA中,在查询、键和值的计算中,用轻量级Ghost模块代替线性层。此外,在计算过程中,利用分支共享机制重用权重。因此,MoSA比自注意力更高效。对于多层感知(MLP),其复杂性在Transformer模块中不容忽视。MoFFN的产生是为了缓解这一问题。将MLP中的上投影和下投影线性层替换为有效的Ghost模块,形成MoFFN。利用所提出的MTB,作者提出了移动卷积视觉Transformer(MoCoViT),这是一种新的移动应用架构,其中CNN块和MTB块串联在一起。为了实现复杂性和性能之间的最佳权衡,CNN块被放置在早期阶段,而MTB块仅在最后阶段使用。

为了证明MoCoViT的有效性,作者对各种视觉任务进行了一系列实验,例如ImageNet-1K分类,以及COCO上的目标检测和实例分割。大量实验结果表明,MoCoViT的性能优于其他SOTA的轻量级CNN网络和轻量级Transformer,如MobileNetV3、GhostNet和MobileFormer。

如上图所示,当FLOPs的范围从40M到300M时,MoCoViT获得最佳结果。具体而言,MoCoViT在ImageNet-1K上以147M的FLOPs实现了74.5%的Top-1精度,比MobileNetV3高1.2%,比GhostNet高0.6%。

本文工作的贡献可以总结如下:

  1. 提出了一种用于移动设备的超轻Transformer块。在区块内部,移动自注意力和移动前馈网络经过精心设计,旨在实现复杂性和性能之间的最佳权衡。

  2. 提出了MoCoViT,这是一种高效的结构,结合了CNN和Transformer的优势,并在各种视觉任务上实现了SOTA性能。


      03      

方法

在本节中,作者首先介绍为轻量级网络设计的移动自注意力(MoSA)机制,与普通的自注意力机制相比,该机制可以大大减少计算开销。然后介绍了如何使用更高效的操作来构建移动前馈网络(MoFFN),以取代传统的MLP层。使用本文提出的MoSA和MoFFN,能够构成高效的移动Transformer块(MTB)。最后,作者介绍了如何使用MTB构建移动卷机视觉Transformer(MoCoViT),这是一种利用卷积神经网络和视觉Transformer优势的高效轻量级网络。

3.1 Mobile Self-Attention (MoSA)

vanilla transformer架构由多头自注意力(MHSA)和MLP层交替组成。LayerNorm用在每个block之前,残差连接用在每个block之后。自注意机制作为视觉Transformer网络的核心部分,在各种视觉任务中都表现出了其有效性。一般的自注意力可以计算为:

其中是查询、键和值矩阵,是查询/键通道维度,N是token数,C是token的通道维度。然而,在容量有限的轻量级模型中,自注意力的成本效益低于卷积层。自注意的计算复杂度与空间分辨率呈二次关系。并引入了三个相同水平的线性层来计算V的线性组合结果。

为了缓解这个问题,作者引入了MoSA,这是一种专为轻型Transformer结构设计的注意力机制。它主要从两个角度简化了自注意力机制。

首先,在细粒度操作方面,作者用更高效的Ghost模块替换vanilla self attention中的线性层,Ghost模块是轻量级网络中常用的结构,可以被视为卷积操作的有效变体,以低成本的方式生成相对相似的特征对。上图显示了Ghost模块的结构。Ghost模块采用普通卷积,首先生成一些固有的特征映射,然后利用廉价的线性运算来增强特征并增加通道。实际上,廉价的线性运算通常作为深度卷积来实现,以获得更好的性能和速度权衡。

然后,从宏观角度出发,作者提出了分支共享机制,以重用Q、K、V计算中的权重。如上图所示,分别是具有相同输入特征的q、k、v的投影。在本文的分支共享机制中,作者直接将特征V重用到Q和K中。

这种方法主要基于作者的一个见解:Q和K只参与注意力图的计算,而自注意机制的最终结果是V中每个token的线性组合。与Q和K相比,V需要保留更多的语义信息,以确保最终加权和结果的表示能力。因此,自注意机制的结果与V强相关,但与Q和K弱相关。因此,对于小容量移动网络,可以简化Q和K的计算,以实现更好的性能开销平衡。

其中,分别是计算q、k、v的投影。为了进一步提高性能,作者还引入了depthwise卷积层作为加强层,以进一步增强该Transformer块。MoSA的计算可以写成:

本文提出的移动自注意力的计算复杂性为:

其中,N=H×W是空间尺寸,C是通道尺寸。为了定量地证明开销的减少,作者比较了vanilla self-attention和MoSA在不同分辨率下的FLOPs次数和参数。

如上图所示,相比于vanilla self-attention,MoSA的FLOPs值为3.6×更小,参数为2.4×更小。

3.2 Mobile Feed Forward Network (MoFFN)

在vanilla ViT的Transformer块中,MLP层由上投影全连接(FC)层和下投影FC层组成,并且在MLP部分之前应用LayerNorm。为了在移动设备上部署,作者使用更高效的Ghost模块替换vanilla MLP中的FC层。如图2所示,作者在MoFFN中使用batch normalization,可以在部署时合并。此外,作者采用了轻量级网络中广泛使用的ReLU激活函数,而不是使用对移动端部署不友好的GeLU激活函数。SE模块也应用于上投影重影模块之后。

除了计算效率外,MoFFN比普通MLP具有更大的感受野。在原有ViT架构中,MLP侧重于通过线性层提取单个token的通道维度信息,而空间维度的信息交互主要在自注意力部分进行。换句话说,vanilla ViT中的MLP没有空间意识,因此需要在自注意后使用。本文的MoFFN在香草MLP中解决了这一缺陷。作者首先通过Ghost模块中的逐点卷积来提取每个token的通道维度特征,然后使用3×3核的深度卷积来提取空间维度的特征。最后,作者将逐点卷积和深度卷积的输出concat起来。

作者定量分析了MoFFN在不同分辨率下带来的计算开销减少。结果如上图所示。可以看到,MoFFN的FLOPs大约比vanilla MLP小1.9倍。

3.3 Enhancing Lightweight Networks with Mobile Self-Attention and Mobile Feed Forward Network

在本节中,作者首先介绍Mobile Transformer Block(MTB),它由MoSA和MoFFN组成。然后介绍如何使用MTB构建高效的MoCoViT。

Mobile Transformer Block (MTB)

利用MoSA和MoFFN的优势,作者介绍了专为轻型深度模型设计的Mobile Transformer Block。如图2所示,vanilla transformer block由多头自注意力(MHSA)和MLP层交替组成。在每个块之前和之后分别应用LayerNorm(LN)和残差连接。

在MTB中,作者保留每个block后的残差连接,但用本文提出后的MoSA和MoFFN替换vanilla self attention和vanilla MLP。此外,作者删除了attention和MLP部分之前的无效LayerNormam,并将其替换为Ghost模块中的BatchNorm(BN)。BN是一种移动端友好的规范化操作,因为它可以在部署时与卷积层合并。

得益于MoSA和MoFFN的轻量级设计,本文的MTB比vanilla transformer block的计算开销更小。如上表所示,MTB的FLOPs大约比普通Transformer块小2.2倍。

Building efficient networks with Mobile Transformer Block

在这一部分中,作者将介绍如何使用MTB构建本文提出的结合卷积网络和Transformer网络的轻量级网络MoCoViT。

如图2所示,本文的MoCoViT采用特征金字塔结构,其中特征映射的分辨率随着网络深度的增加而降低,而通道数则增加。作者将整个架构分为4个阶段,只在最深的阶段使用MTB。

这主要基于两个方面的考虑:第一,自注意的计算复杂性与空间分辨率是二次的。在浅层阶段,特征具有较高的空间分辨率,这会导致较大的计算开销和内存消耗。其次,在轻量级网络的早期阶段,由于网络的表示能力有限,构建全局表示是一项相对困难的任务。transformer块的优点是提取全局信息,而CNN善于提取局部信息。因此,在网络的浅层,使用CNN块有助于提高特征提取的效率。

本文的MoCoViT的结构细节如上表所示。作者在早期阶段使用Ghost bottleneck,它广泛应用于移动设备(如智能手机和自动驾驶汽车)。除了每个阶段中最后一个步幅为2,所有Ghost bottleneck都是在步幅为1的情况下应用的。本文提出的MTB在最后阶段使用。最后,利用全局平均池化和卷积层将特征映射转换为1280维特征向量进行最终分类。

为了进一步提高性能,作者引入动态ReLU激活函数来构建MoCoViT-D模型。该网络的总体框架与MoCoViT相同。不同的是将transformer block和CNN block的ReLU换成了dynamic ReLU。


      04      

实验

在上表中,作者将MoCoViT Transformer与最先进的CNN和Transformer架构进行了比较。与手动设计的轻量级CNN和Transformer相比,MoCoViT可以以更低的FLOPs达到更高的精度。

如上表所示,对于使用RetinaNet的目标检测,MoCoViT超过MobileNetV34.2%的mAP,超过GhostNet 2.1%的mAP,计算成本相似。

如上表所示,对于使用Mask R-CNN框架的目标检测,MoCoViT比MobileNetV3和GhostNet带来了类似的性能提升。

作者比较了在不同阶段使用移动Transformer块的精度,结果如上表所示。

本文的MoCoViT包含两个重要的设计:MoSA和MoFFN。为了证明其重要性,作者以基础训练设置为baseline,对GhostNet 0.5×进行了180个epoch的训练。然后,比较不同类型的自注意机制来评估性能,结果如上表所示。

此外,作者还比较了BatchNorm(BN)和LayerNorm(LN)在不同位置的性能。如上表所示,在自注意和MLP模块的卷积操作之后放置BN可以提高精度,并且有利于在部署时合并BN和卷积层,以进一步加快速度。


      05      

总结

在本文中,作者设计了一种新型高效移动Transformer块(MTB)。该模块由两个重要模块组成:移动自注意力(MoSA)和移动前馈网络(MoFFN)。MoSA通过分支共享机制简化了attention map的计算,避免了在自注意中计算Q和K,并通过重用V来计算attention map。MoSA的FLOPs比vanilla self-attention低3.6倍。

此外,所提出的MoFFN还可以大大减少vanilla MLP的计算量,可以看作是其移动版本。与vanilla不同,MoFFN具有空间维度的感知能力。它比vanilla MLP具有更大的感受野。除了提取token通道维度的特征外,它还可以在空间维度上进行特征融合。

配备MTB,作者构建了结合卷积网络和Transformer网络的轻量级Transformer网络MoCoViT和MoCoViT-D。大量实验表明,引入的MoCoViT系列在各种视觉任务上都优于SOTA的轻量级CNN和transformers,同时保持了计算效率。


参考资料

[1]https:///abs/2205.12635

END

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多