当前位置: 首页 > 科技观察

Apple提出MobileViT:让移动设备使用轻量级、低延迟的视觉Transformer

时间:2023-03-11 21:33:54 科技观察

在这篇论文中,Apple的研究人员提出了一种用于移动设备的轻量级通用视觉转换器——MobileViT。该网络在ImageNet-1k数据集上达到了78.4%的最佳准确率,比MobileNetv3提高了3.2%,而且训练方式简单。目前,该论文已被ICLR2022接收。论文链接:https://arxiv.org/pdf/2110.02178.pdf代码链接:https://github.com/apple/ml-cvnetsLightweightConvolutionalNeuralNetworks(CNN)是移动设备上机器视觉任务的首选。他们的空间归纳偏差使他们能够在不同的视觉任务中使用更少的参数来学习视觉内容的表示。但这些网络在空间上是局部的。为了学习视觉内容的全局表示,采用了基于自我注意的视觉转换器(ViT)。与CNN不同,ViT是重量级的。在这篇论文中,作者提出了以下问题:是否有可能结合CNN和ViT的优势,为移动设备上的机器视觉任务构建一个轻量级、低延迟的神经网络模型?为了解决上述问题,作者提出了MobileViT——一种用于移动设备的轻量级通用视觉转换器。MobileViT从另一个角度介绍了使用transformer进行全局信息处理的方法。具体来说,MobileViT使用张量来有效地编码局部和全局信息(如图1b所示)。与ViT及其变体(有和没有卷积)不同,MobileViT从不同的角度学习全局表示。标准卷积涉及三个操作:展开、局部处理和折叠。MobileViT使用转换器将卷积中的局部处理替换为全局处理。这使得MobileViT兼具了CNN和ViT的特点。这允许它以更少的参数和简单的训练方法(例如基本增强)学习更好的表示。这项研究首次证明轻量级ViT可以通过简单的训练方法在不同的移动视觉任务中实现轻量级CNN级别的性能。对于大约5-6百万个参数,MobileViT在ImageNet-1k数据集上达到了78.4%的最佳精度,比MobileNetv3高了3.2%,而且训练方法简单(MobileViT和MobileNetv3:300vs600epoch;1024vs4096批量大小)。在针对移动视觉任务高度优化的架构中,当使用MobileViT作为特征骨干网络时,性能得到显着提升。用MobileViT替换MNASNet(Tanetal.,2019)作为SSDLite(Sandleretal.,2018)的特征主干产生更好的(+1.8%mAP)和更小的(1.8×)检测网络(图2)。架构细节MobileViT块图1b中所示的MobileViT块的作用是使用包含较少参数的输入张量来学习局部和全局信息。形式上,对于给定的输入张量X∈R^(H×W×C),MobileViT应用n×n标准卷积层,然后是逐点(1×1)卷积层以生成X_L∈R^(H×W×d).n×n卷积层对局部空间信息进行编码,而逐点卷积通过学习输入通道的线性组合将张量投影到高维空间(或d维,其中d>C)。使用MobileViT,我们希望使用H×W的有效感受野对远程非局部依赖进行建模。研究最多的远程依赖建模方法之一是扩张卷积。然而,这种方法需要仔细选择扩张率。否则,权重将应用于零填充区域而不是有效空间区域(Yu&Koltun,2016年;Chen等人,2017年;Mehta等人,2018年)。另一个候选解决方案是自注意力(Wang等人,2018年;Ramachandran等人,2019年;Bello等人,2019年;Dosovitskiy等人,2021年)。在自注意力方法中,具有多头自注意力的(ViT)已被证明对视觉识别任务有效。然而,ViT是重量级的,并且由于ViT中缺乏空间归纳偏差而具有低于标准的模型优化能力(Shawetal.,2021;Grahametal.,2021)。为了让MobileViT学习具有空间归纳偏差的全局表示,X_L被扩展为N个非重叠的扁平块X_U∈R^(P×N×d)。这里,P=wh,N=HW/P是patch的个数,h≤n和w≤n分别是patch的高和宽。对于每个p∈{1,···,P},patch之间的关系通过一个transformer编码得到X_G∈R^(P×N×d):不像ViT会丢失像素的空间顺序,MobileViT既不补丁顺序丢失,每个补丁内像素的空间顺序也丢失(图1b)。因此,我们可以折叠X_G∈R^(P×N×d)得到X_F∈R^(H×W×d)。然后使用逐点卷积将X_F投影到低C维空间,并通过级联操作与X组合。然后使用另一个n×n卷积层融合这些连接的特征。由于X_U(p)使用卷积对n×n区域的局部信息进行编码,而X_G(p)对第p个位置的p个patches的全局信息进行编码,所以X_G中的每个像素都可以用于XinAll像素信息被编码,如图4所示。因此,MobileViT的整体有效感受野是H×W。与卷积的关系标准卷积可被视为三个连续操作:(1)展开,(2)矩阵乘法(学习局部表示)和(3)折叠。MobileViT类似于卷积,因为它也使用相同的构建块。MobileViT用更深层次的全局处理(转换器层)取代了卷积中的局部处理(矩阵乘法)。因此,MobileViT具有类似卷积的特性(例如空间偏差)。因此,MobileViT块可以看作是卷积变换器。作者有意简化设计的好处是,卷积和变换器的底层高效实现开箱即用,使我们无需任何额外更改即可在不同设备上使用MobileViT。轻量级MobileViT使用标准卷积和变换器分别学习本地和全局表示。相关工作(例如Howardetal.,2017;Mehtaetal.,2021a)表明使用这些层设计的网络是重量级的,因此自然会出现一个问题:为什么MobileViT是轻量级的?作者认为问题主要在于学习transformer的全局表示。对于给定的补丁,之前的工作(例如Touvron等人,2021a;Graham等人,2021)通过学习像素的线性组合将空间信息转换为潜在信息(图1a)。然后,通过使用转换器对全局信息进行编码以学习补丁间信息。因此,这些模型失去了CNN固有的图像特定归纳偏差。因此,他们需要更强的学习视觉表征的能力。这导致这些网络模型既深又广。与这些模型不同,MobileViT使用卷积和变换器的方式使得生成的MobileViT具有类似卷积的属性,同时允许全局处理。这种建模能力使我们能够设计浅而窄的MobileViT模型,因此最终模型很轻。与使用L=12和d=192的基于ViT的模型DeIT相比,MobileViT模型使用L={2,4,3}和d={96,120,144},得到的MobileViT网络更快(1.85×),更小(2×),并且优于(+1.8%)DeIT网络(如表3所示)。计算成本MobileViT和ViTs(图1a)中多头自注意力的计算成本分别为O(N^2Pd)和O(N^2d)。理论上MobileViT的效率低于ViTs。然而,在实践中,MobileViT实际上比ViTs更有效。在ImageNet-1K数据集上,与DeIT相比,MobileViT将FLOP减半并将准确度提高了1.8%(表3)。这是因为轻量级设计(前面讨论过)。MobileViT架构作者设计的网络也是受到了轻量级CNN概念的启发。MobileViT模型使用三种不同的网络大小(S:small、XS:extra-small和XXS:extra-extra-small)进行训练,这通常用于移动视觉任务(图3c)。MobileViT中的初始层是3×3标准卷积,然后是MobileNetv2(或MV2)块和MobileViT块(图1b和§A)。使用Swish(Elfwingetal.,2018)作为激活函数。按照CNN模型,在MobileViT块中使用n=3。featuremap的空间维度通常是2和h的倍数,w≤n。所以在所有的空间层次上设置h=w=2。MobileViT网络中的MV2模块主要负责下采样。因此,这些块在MobileViT网络中是浅而窄的。图3d中MobileViT的空间级参数分布进一步表明,在不同的网络配置中,MV2块对网络参数的贡献非常小。(MobileNetv1(Howardetal.,2017)、MobileNetv2(Sandleretal.,2018)、ShuffleNetv2(Maetal.,2018)、ESPNetv2(Mehtaetal.,2019)和MobileNetv3的网络规模(Howardetal.,2019)),MobileNet在性能上优于轻量级CNN。对于具有大约250万个参数的模型(图6b),MobileViT在ImageNet1k验证集上优于MobileNetv25%、ShuffleNetv25.4%和MobileNetv37.4%。图6c进一步显示MobileViT优于重量级CNN(ResNet(He等人,2016)、DenseNet(Huang等人,2017)、ResNetSE(Hu等人,2018)和EfficientNet(Tan&Le,2019a))。对于相似数量的参数,MobileViT比EfficientNet准确2.1%。与ViT的比较图7比较了MobileViT与在ImageNet-1k未蒸馏数据集上从头开始训练的ViT变体(DeIT(Touvron等人,2021a)、T2T(Yuan等人,2021b)、PVT(Wang等人,2021),CAIT(Touvronetal.,2021b),DeepViT(Zhouetal.,2021),CeiT(Yuanetal.,2021a),CrossViT(Chenetal.,2021a),LocalViT(Lietal.,2021)、PiT(Heo等人,2021年)、ConViT(d'Ascoli等人,2021年)、ViL(Zhang等人,2021年)、BoTNet(Srinivas等人,2021年)和Mobile-former(Chen等人.,2021b).与显着受益于深度数据增强的ViT变体不同(例如,PiTw/basicvs.advanced:72.4(R4)vs.78.1(R17);图7b),MobileViT通过更少的参数和基础增强实现更好的性能。例如,MobileViT的大小只有DeIT的1/2.5,但性能比DeIT高2.6%(图7b中的R3和R8)。MOBILEVIT作为通用骨干网络的性能移动物体检测表1a显示使用MobileViT的SSDLite优于SSDLite使用其他轻量级CNN模型(MobileNetv1/v2/v3、MNASNet和MixNet)实现相同的输入分辨率320×320。此外,使用MobileViTPerformance的SSDLite优于具有重主干的标准SSD-300,同时学习的参数少得多(表1b)。MobileSemanticSegmentation:从表2可以看出,使用MobileViT的特征主干比DeepLabv3更小但更好。轻量级和低延迟网络上的移动性能测试对于实现移动视觉应用程序非常重要。为了证明MobileViT对于此类应用程序的有效性,使用公开可用的CoreMLTools(2021)将预训练的全精度MobileViT模型转换为CoreML。然后在移动设备(iPhone12)上测试他们的推理时间(平均超过100次迭代)。图8显示了MobileViT网络在具有两个补丁大小设置(Config-A:2、2、2和Config-B:8、4、2)的三个不同任务上的推理时间。