系列文章目录
第一章 AlexNet网络详解
第二章 VGG网络详解
第三章 GoogLeNet网络详解
第四章 ResNet网络详解
第五章 ResNeXt网络详解
第六章 MobileNetv1网络详解
第七章 MobileNetv2网络详解
第八章 MobileNetv3网络详解
第九章 ShuffleNetv1网络详解
第十章 ShuffleNetv2网络详解
第十一章 EfficientNetv1网络详解
第十二章 EfficientNetv2网络详解
第十三章 Transformer注意力机制
第十四章 Vision Transformer网络详解
第十五章 Swin-Transformer网络详解
第十六章 ConvNeXt网络详解
第十七章 RepVGG网络详解
第十八章 MobileViT网络详解
文章目录
- 0. 摘要
- 1. 前言
- 2.
- 1.
- 2.
- 总结
干货集锦
0、摘要
1.这篇论文总结为:作者提出了一种轻量级、低延迟的MobileViT网络,将CNN和ViT的优势相结合,提高了在移动视觉任务中的性能。
2.这篇论文的研究背景是轻量级卷积神经网络在移动视觉任务中的使用和自注意力视觉transformers(ViTs)的引入。
3.这篇论文的主要论点是通过结合CNN和ViT的优势,提出了一种适用于移动设备的轻量级和通用的视觉transformer网络MobileViT,并取得了显著优于CNN和ViT的性能。
4.以往的研究主要集中在轻量级卷积神经网络和自注意力ViTs,其中CNN具有局部感知性,参数较少,ViTs具有全局感知性,但参数较多。然而,这些方法在移动视觉任务中存在一些问题,如性能不够理想、延迟较高等。
5.这篇论文提出了MobileViT的研究方法,将transformers作为卷积的方式进行全局信息处理,实现了轻量级和低延迟的移动视觉任务网络。
6.研究结果表明,MobileViT在不同任务和数据集上明显优于基于CNN和ViT的网络。在ImageNet-1k数据集上取得了最佳结果。然而,这项研究的局限性是需要进一步验证其在更广泛的移动视觉任务和设备上的适用性。
轻量级卷积神经网络(CNNs)已经成为移动视觉任务的事实标准。它们的空间归纳偏差使其能够在不同的视觉任务中学习具有更少参数的表示。然而,这些网络在空间上是局部的。为了学习全局表示,人们采用了基于自注意力的视觉变换器(ViTs)。与CNNs不同,ViTs非常庞大。在本文中,我们提出以下问题:是否可能将CNNs和ViTs的优势结合起来构建一个轻量级和低延迟的移动视觉任务网络?为此,我们引入了MobileViT,一个轻量级通用视觉变换器,适用于移动设备。MobileViT以不同的视角来处理信息的全局处理问题,我们的结果表明,在不同的任务和数据集中,MobileViT在CNN和ViT的网络上都取得了显著的优势。在ImageNet-1k数据集上,MobileViT的top-1准确率达到了78.4%,参数数量约为600万,比MobileNetv3(基于CNN)和DeIT(基于ViT)在相似参数数量下准确率高出了3.2%和6.2%。在MS-COCO目标检测任务中,MobileViT在相似的参数数量下比MobileNetv3准确率提高了5.7%。我们的源代码是开源的,可在以下网址获取:https://github.com/apple/ml-cvnets.
1、前言
1 引言
自注意力模型,尤其是视觉转换器(ViTs;图1a;Dosovitskiy等,2021),是学习视觉表示的卷积神经网络(CNNs)的一种替代方法。简而言之,ViT将图像分为一系列不重叠的补丁,然后使用变压器中的多头自注意力学习补丁间的表示(Vaswani等,2017)。总的趋势是增加ViT网络中的参数数量以提高性能(例如,Touvron等,2021a;Graham等,2021;Wu等,2021)。然而,这些性能改进以模型大小(网络参数)和延迟为代价。许多现实世界的应用(例如增强现实和自主轮椅)需要在资源受限的移动设备上及时运行视觉识别任务(例如目标检测和语义分割)。为了有效,这些任务的ViT模型应该是轻巧和快速的。即使将ViT模型的模型大小减小以适应移动设备的资源限制,它们的性能也明显低于轻量级CNNs。例如,对于约500-600万的参数预算,DeIT(Touvron等,2021a)的准确率比MobileNetv3(Howard等,2019)低3%。因此,设计轻量级ViT模型的需求是迫切的。
轻量级CNN已经为许多移动视觉任务提供了动力。然而,基于ViT的网络远未在这些设备上得到应用。与易于优化和与特定任务网络集成的轻量级CNN不同,ViT是重量级的(例如,ViT-B/16 vs.MobileNetv3:8600万参数 vs.750万参数),更难优化(Xiao等,2021年),需要广泛的数据增强和L2正则化来防止过拟合(Touvron等,2021a;Wang等,2021年),并且需要昂贵的解码器进行下游任务,特别是对于密集预测任务。例如,基于ViT的分割网络(Ranftl等,2021年)学习了大约3.45亿个参数,并且在性能上与基于CNN的网络DeepLabv3(Chen等,2017年)具有相似的表现,后者具有5900万个参数。ViT-based模型需要更多参数的原因可能是它们缺乏图像特定的归纳偏见,而CNN中固有地具有这种偏见(Xiao等,2021年)。为了构建稳健且性能优异的ViT模型,组合卷积和Transformer的混合方法引起了广泛关注(Xiao等,2021年;d'Ascoli等,2021年;Chen等,2021b)。然而,这些混合模型仍然是重量级的,并且对数据增强非常敏感。例如,移除CutMix(Zhong等,2020年)和DeIT-style(Touvron等,2021a年)数据增强会导致Heo等(2021年)的ImageNet准确率大幅下降(从78.1%降至72.4%)。
将CNN和transformers的优势结合起来构建适用于移动视觉任务的ViT模型仍然是一个待解决的问题。移动视觉任务需要轻量、低延迟和准确的模型,以满足设备的资源限制,并且是通用的,可以应用于不同的任务(例如分割和检测)。需要注意的是,浮点运算(FLOPs)对于移动设备上的低延迟是不足够的,因为FLOPs忽略了几个重要的推理相关因素,如内存访问、并行度和平台特性(Ma等,2018)。例如,Heo等人(2021)基于ViT的PiT方法与DeIT(Touvron等,2021a)相比,FLOPs少了3倍,但在移动设备上的推理速度相似(DeIT vs.PiT在iPhone-12上的速度分别为10.99毫秒和10.56毫秒)。因此,本文不是优化FLOPs,而是专注于设计适用于移动视觉任务的轻量级(第3节),通用性(第4.1和4.2节)和低延迟(第4.3节)的网络。我们通过MobileViT实现了这一目标,它结合了CNN的优势(例如空间归纳偏差和对数据增强的较低敏感性)和ViT的优势(例如自适应加权和全局处理)。具体来说,我们引入了MobileViT块,可以有效地编码张量中的局部和全局信息(图1b)。与ViT及其变体(有卷积和无卷积)不同,MobileViT提供了一个不同的视角来学习全局表示。标准卷积包括三个操作:展开、局部处理和折叠。MobileViT块使用transformers将卷积中的局部处理替换为全局处理。这使得MobileViT块具有CNN和ViT类似的特性,有助于使用更少的参数和简单的训练方法(例如基本的数据增强)学习更好的表示。据我们所知,这是第一个显示轻量级ViT可以通过简单的训练方法在不同任务间实现轻量级CNN级别性能的工作。
((b) MobileViT。在MobileViT块中,Conv-n×n表示一个标准的n×n卷积,MV2代表MobileNetv2块。进行下采样的块标有#2。图1:视觉Transformer与MobileViT对比)
(图2:与轻量级CNN模型相比,MobileViT在任务级别的泛化性能表现更好。网络参数列举了具有不同特征提取器(MobileNetv1(Howard等,2017年),MobileNetv2(Sandler等,2018年),MobileNetv3(Howard等,2019年),MNASNet(Tan等,2019年),MixNet(Tan&Le,2019b),和MobileViT(本文作者))的SSDLite网络在MS-COCO数据集上的结果。)
2. 正文分析
2.相关工作
轻量级CNN。
CNN中的基本构建层是一个标准的卷积层。由于该层的计算成本较高,因此提出了几种基于分解的方法,使其轻量级且适用于移动设备(例如Jin等人,2014;Chollet,2017;Mehta等人,2020)。其中,Chollet(2017)的可分离卷积引起了人们的兴趣,并被广泛应用于用于移动视觉任务的最先进的轻量级CNN,包括MobileNets(Howard等人,2017;Sandler等人,2018;Howard等人,2019)、ShuffleNetv2(Ma等人,2018)、ESPNetv2(Mehta等人,2019)、MixNet(Tan&Le,2019b)和MNASNet(Tan等人,2019)。这些轻量级CNN功能多样且易于训练。例如,这些网络可以轻松替代现有任务特定模型(例如DeepLabv3)中的重量级骨干(例如ResNet(He等人,2016)),以减小网络大小并提高延迟。尽管具有这些优点,但这些方法的一个主要缺点是它们是空间局部的。本研究将Transformer视为卷积,从而可以利用卷积(例如多功能和简单的训练)和Transformer(例如全局处理)的优点来构建轻量级(§3)和通用(§4.1和§4.2)的ViTs。
视觉转换器。
Dosovitskiy等人(2021)应用了Vaswani等人(2017)的转换器进行大规模图像识别,并表明在极大规模数据集(例如JFT-300M)上,ViT可以实现CNN级别的准确性,而无需图像特定的归纳偏差。通过广泛的数据增强、重的L2正则化和蒸馏,ViT可以在ImageNet数据集上训练,实现与CNN级别相当的性能(Touvron等人,2021a;b;Zhou等人,2021)。然而,与CNN不同,ViT显示出低劣的优化能力,并且很难训练。后续的工作(例如Graham等人,2021;Dai等人,2021;Liu等人,2021;Wang等人,2021;Yuan等人,2021b;Chen等人,2021b)表明,这种低劣的优化能力是由于ViT缺乏空间归纳偏差造成的。通过在ViT中引入卷积以获得这些偏差可以提高它们的稳定性和性能。已经探索了不同的设计来兼顾卷积和转换器的优势。例如,Xiao等人(2021)的ViT-C在ViT中添加了一个早期的卷积干线。CvT(Wu等人,2021)修改了转换器中的多头注意力机制,并使用深度可分离卷积代替线性投影。BoTNet(Srinivas等人,2021)在ResNet的瓶颈单元中用多头注意力代替标准的3×3卷积。ConViT(d'Ascoli等人,2021)使用门控位置自注意力引入了软卷积归纳偏差。PiT(Heo等人,2021)通过扩展ViT以基于深度可分离卷积的池化层。尽管这些模型在广泛的增强技术下可以达到与CNN相竞争的性能,但大多数这些模型都是重量级的。例如,PiT和CvT的参数量分别是EfficientNet(Tan和Le,2019a)的6:1×和1:7×,并在ImageNet-1k数据集上达到类似的性能(约81.6%的top-1准确率)。此外,当将这些模型缩小以构建轻量级的ViT模型时,它们的性能明显较轻量级的CNN差很多。对于约600万个参数的预算,PiT的ImageNet-1k准确率比MobileNetv3低了2.2%。
讨论。
将卷积和Transformer结合起来,得到的ViTs相对于普通的ViTs具有稳健且高性能的优势。然而,一个悬而未决的问题是:如何将卷积和Transformer的优势结合起来,构建轻量级的移动视觉任务网络?本文的重点是设计轻量级ViT模型,通过简单的训练方法超越最先进的模型。为此,我们介绍了MobileViT,它结合了CNN和ViT的优势,构建了一个轻量级、通用且适用于移动设备的网络。MobileViT带来了几个新的发现。
(一)更好的性能:在给定的参数预算下,MobileViT模型在不同的移动视觉任务中相对于现有的轻量级CNNs实现了更好的性能表现 (§4.1和§4.2)。
(二)泛化能力:泛化能力指的是训练和评估指标之间的差距。对于两个具有类似训练指标的模型,评估指标更好的模型具有更好的泛化能力,因为它可以在未见数据集上做出更好的预测。与以前的带有和不带有卷积的ViT变体相比(即使通过广泛的数据增强,与CNN相比,它们的泛化能力仍然较差)(Dai等,2021),MobileViT显示出更好的泛化能力 (图3)。
(三)稳健性:一个好的模型应该对超参数(例如数据增强和L2正则化)具有稳健性,因为调整这些超参数需要时间和资源。与大多数基于ViT的模型不同,MobileViT模型使用基本的数据增强进行训练,对L2正则化不太敏感 (§C)。
3 MOBILEVIT:一个轻量级的Transformer
标准ViT模型如图1a所示,将输入X 2 RH×W×C重塑为扁平化补丁序列Xf 2 RN×P C,将其投影到固定的d维空间Xp 2 RN×d,然后使用一堆L个变形器块来学习补丁间的表示。在视觉变形器中,自注意力的计算成本是O(N2d)。这里,C、H和W分别表示张量的通道、高度和宽度,P=wh是具有高度h和宽度w的补丁中的像素数量,N是补丁的数量。因为这些模型忽视了CNN中固有的空间归纳偏差,所以它们需要更多的参数来学习视觉表示。例如,基于ViT的网络DPT(Dosovitskiy等,2021)相比于基于CNN的网络DeepLabv3(Chen等,2017)学习了6倍多的参数,以实现类似的分割性能(DPT vs. DeepLabv3:345M vs. 59M)。此外,与CNN相比,这些模型表现出较差的优化能力。这些模型对L2正则化非常敏感,并且需要广泛的数据增强来防止过拟合(Touvron等,2021a;Xiao等,2021)。本文介绍了一个被称为MobileViT的轻量级ViT模型。其核心思想是使用变形器来学习全局表示,就像卷积一样。这使我们能够隐式地将卷积类属性(例如,空间偏差)纳入网络中,使用简单的训练方法(例如,基本的数据增强)学习表示,并且轻松地将MobileViT与下游架构(例如,用于分割的DeepLabv3)集成在一起。
3.1 MOBILEVIT架构 MobileViT模块。
如图1b所示,MobileViT模块旨在用更少的参数对输入张量中的局部和全局信息进行建模。形式上,对于给定的输入张量X∈ RH×W×C,MobileViT应用一个n×n的标准卷积层,然后是一个逐点(或1×1)卷积层,生成XL∈ RH×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)。在自注意力方法中,具有多头自注意力的视觉转换器(ViTs)被证明对于视觉识别任务是有效的。然而,ViTs具有较重的重量,并且存在不理想的可优化性。这是因为ViTs缺乏空间归纳偏差(Xiao等,2021; Graham等,2021)。为了使MobileViT能够学习具有空间归纳偏差的全局表示,我们将XL展开为N个不重叠的扁平化路径XU∈ RP×N×d。这里,P = wh,N = HW:P是路径的数量,h ≤ n和w ≤ n分别是路径的高度和宽度。对于每个p∈{1,...,P},通过应用变压器来编码路径间的关系,我们可以得到XG∈ RP×N×d,即:XG(p) = Transformer(XU(p)),1≤ p ≤P(1)。与ViTs会丢失像素的空间顺序不同,MobileViT既不会丢失路径顺序,也不会丢失每个路径内像素的空间顺序(图1b)。因此,我们可以将XG 2 RP×N×d折叠回原始形状。
(图4:在MobileViT块中,每个像素都看到其他像素。在这个例子中,红色像素使用transformers关注蓝色像素(其他路径中相应位置的像素)。因为蓝色像素已经使用卷积编码了关于邻近像素的信息,这使得红色像素能够编码来自图像中所有像素的信息。这里,黑色和灰色网格中的每个单元分别表示一个路径和一个像素。)
关于卷积的关系。标准卷积可以看作三个连续操作的堆叠:(1)展开,(2)矩阵乘法(学习局部表示),和(3)折叠。MobileViT块与卷积类似,因为它也利用了相同的构建模块。MobileViT块用更深的全局处理(一堆Transformer层)取代了卷积中的局部处理(矩阵乘法)。因此,MobileViT具有类似卷积的特性(例如,空间偏差)。因此,MobileViT块可以被视为转换器作为卷积。我们有意设计简单的优势是可以直接使用低级高效的卷积和转换器实现,无需额外的努力;这使我们能够在不同设备上使用MobileViT而不需要额外的工作。
(图5:多尺度 vs. 标准采样器)
轻量级MobileViT模块分别使用标准的卷积和Transformer来学习局部和全局表示。由于先前的工作已经表明使用这些层设计的网络是重量级的(例如,Howard等人,2017; Mehta等人,2021a),一个自然的问题就出现了:为什么MobileViT是轻量级的?我们认为主要问题在于使用Transformer学习全局表示。对于给定的补丁,先前的工作(例如,Touvron等人,2021a; Graham等人,2021)通过学习像素的线性组合将空间信息转换为潜在信息(图1a)。然后,通过使用Transformer学习补丁间的信息来编码全局信息。结果就是,这些模型失去了CNN中固有的图像特定的归纳偏差。因此,它们需要更多的容量来学习视觉表示。因此,它们变得深而宽。与这些模型不同,MobileViT以一种使得MobileViT模块具有卷积样式特性的方式使用卷积和Transformer,同时允许进行全局处理。这种建模能力使我们能够设计浅而窄的MobileViT模型,从而使其成为轻量级。与使用L=12和d=192的ViT模型DeIT相比,MobileViT模型在空间级别32×32、16×16和8×8分别使用L=f2,4,3g和d=f96,120,144g。得到的MobileViT网络比DeIT网络更快(1:85倍),更小(2倍),更好(+1:8%)(表3;§4.3)。计算成本。MobileViT和ViT中多头自注意力的计算成本分别为O(N2Pd)和O(N2d)(图1a)。从理论上讲,与ViT相比,MobileViT效率低下。然而,在实践中,MobileViT比ViT更有效。在ImageNet-1K数据集上,MobileViT的FLOPs减少了2倍,并且比DeIT的准确性提高了1:8%(表3;§4.3)。我们认为这是由于与轻量级设计的相似原因(上述讨论)。
MobileViT架构。我们的网络受到轻量级CNN的哲学启发。我们以三种不同的网络大小(S:小,XS:额外小和XXS:额外-额外小)训练MobileViT模型,这些大小通常用于移动视觉任务(图3c)。MobileViT中的初始层是一个跨步3×3的标准卷积,其后是MobileNetv2(或MV2)块和MobileViT块(图1b和§A)。我们使用Swish(Elfwing等人,2018)作为激活函数。按照CNN模型的方式,我们在MobileViT块中使用n = 3。特征图的空间维度通常是2和h的倍数;w ≤n。因此,我们设置h = w = 2在所有空间级别上(更多结果见§C)。MobileViT网络中的MV2块主要负责下采样。因此,在MobileViT网络中,这些块是浅而窄的。MobileViT在图3d中的空间级别参数分布进一步显示,MV2块对于不同网络配置的总网络参数的贡献非常小。
3.2用于训练效率的多尺度采样器
在基于ViT的模型中,学习多尺度表示的标准方法是微调。例如,Touvron等人(2021a)在不同尺度上独立微调了在空间分辨率为224×224的DeIT模型训练的结果。对于ViTs而言,这种学习多尺度表示的方法更可取,因为位置嵌入需要基于输入尺寸进行插值,并且网络的性能取决于插值方法。与CNN类似,MobileViT不需要任何位置嵌入,并且在训练过程中可能受益于多尺度输入。以前的基于CNN的工作(例如,Redmon&Farhadi,2017;Mehta等人,2021b)已经表明,多尺度训练是有效的。然而,这些工作中的大多数在固定迭代次数之后对新的空间分辨率进行采样。例如,YOLOv2(Redmon&Farhadi,2017)在每10次迭代中从预定义集合中对新的空间分辨率进行采样,并且在训练过程中在不同的GPU上使用相同的分辨率。这导致GPU利用率不高,并且训练速度较慢,因为在所有分辨率上都使用相同的批量大小(使用预定义集合中的最大空间分辨率确定)。为了使MobileViT能够在不进行微调的情况下学习多尺度表示,并进一步提高训练效率(即减少优化更新次数),我们将多尺度训练方法扩展到可变大小的批量大小。给定排序后的空间分辨率集合S = f(H1;W1);···;(Hn;Wn)g和最大空间分辨率(Hn;Wn)的批量大小b,在每个GPU的t-th训练迭代中随机选择一个空间分辨率(Ht;Wt)2 S,并计算t-th迭代的批量大小为:bt = HHntWWntb。因此,较小的空间分辨率使用更大的批量大小。这减少了每个时期的优化器更新次数,并有助于加快训练速度。
图5对比了标准采样器和多尺度采样器。在这里,我们将PyTorch中的DistributedDataParallel称为标准采样器。总的来说,多尺度采样器(i)通过使用可变大小的批次减少了训练时间(图5b),(ii)通过大约0.5%改善了性能(图10;§B),并且(iii)强迫网络学习更好的多尺度表示(§B),即在不同空间分辨率下评估时,与使用标准采样器进行训练的网络相比,产生更好的性能。在§B中,我们还展示了多尺度采样器的通用性,并且可以改善CNNs(例如MobileNetv2)的性能。
(图6: MobileViT与CNN在ImageNet-1k验证集上的对比。所有模型都使用基本数据增强。)
4.1 ImageNet-1K数据集上的图像分类实现细节。我们从头开始在ImageNet-1K分类数据集上训练MobileViT模型(Russakovsky等,2015)。该数据集提供了128万张训练图像和5万张验证图像。MobileViT网络使用PyTorch在8个NVIDIA GPU上进行训练,有效批量大小为1024张图像,使用AdamW优化器(Loshchilov和Hutter,2019),标签平滑交叉熵损失(平滑度为0.1)和多尺度采样器(S =f(160;160);(192;192);(256;256);(288;288);(320;320)g)。学习率从0.0002增加到0.002,前3000个迭代,然后使用余弦调度(Loshchilov和Hutter,2017)将其退火到0.0002。我们使用L2权重衰减为0.01。我们使用基本的数据增强(即随机调整大小的裁剪和水平翻转),并使用单个裁剪的top-1准确率来评估性能。对于推断,使用模型权重的指数移动平均值。
与CNN的比较。图6a显示,MobileViT在不同的网络规模上表现优于轻量级CNN(MobileNetv1、MobileNetv2、ShuffleNetv2、ESPNetv2和MobileNetv3)。例如,对于大约250万个参数的模型大小(图6b),在ImageNet-1K验证集上,MobileViT的性能比MobileNetv2高出5%,比ShuffleNetv2高出5.4%,比MobileNetv3高出7.4%。图6c进一步显示,MobileViT比重型CNN(ResNet、DenseNet、ResNet-SE和EfficientNet)表现更好。例如,对于相似数量的参数,MobileViT的准确率比EfficientNet高出2.1%。
与ViTs的比较。图7比较了MobileViT与ViT的变种,它们在ImageNet-1K数据集上进行了从头训练,而没有使用蒸馏方法(DeIT、T2T、PVT、CAIT、DeepViT、CeiT、CrossViT、LocalViT、PiT、ConViT、ViL、BoTNet和Mobile-former)。与从高级数据增强中获益显著的ViT变种不同(例如,PiT基本增强与高级增强:72.4(R4)对78.1(R17);图7b),MobileViT在更少的参数和基本的数据增强下实现了更好的性能。例如,MobileViT的大小比DeIT小2.5倍,性能比DeIT好2.6%(图7b中的R3对R8)。总体而言,这些结果表明,与CNN类似,MobileViT易于优化且具有鲁棒性。因此,它们可以轻松应用于新的任务和数据集。
4.2 MobileViT作为通用骨干网络为了评估MobileViT的通用性,我们在两个广泛研究的移动视觉任务上对MobileViT进行了基准测试:(1)目标检测(§4.2.1)和(2)语义分割(§4.2.2)。
4.2 实现细节。
我们将MobileViT与单次拍摄目标检测骨干网络(SSD;Liu等,2016)集成在一起。在轻量级CNN(例如MobileNets)之后,我们用可分离卷积替换SSD头部的标准卷积,并将结果网络称为SSDLite。我们在输入分辨率为320×320的情况下,使用在ImageNet-1K数据集上预训练的MobileViT,在MS-COCO数据集(Lin等,2014)上使用AdamW进行微调,该数据集包含117,000个训练图像和5,000个验证图像。我们分别使用平滑的L1损失和交叉熵损失来进行目标定位和分类。使用mAP@IoU为0.50:0.05:0.95在验证集上评估性能。有关其他超参数,请参见§D。结果。表1a显示,在相同的输入分辨率为320×320的情况下,使用MobileViT的SSDLite优于使用其他轻量级CNN模型(MobileNetv1/v2/v3,MNASNet和MixNet)的SSDLite。例如,当使用MobileViT作为骨干网络而不是MNASNet时,SSDLite的性能提高了1.8%,模型大小减少了1.8倍。此外,与学习的参数数量明显较少的重型骨干网络相比,使用MobileViT的SSDLite在性能上优于标准的SSD-300(表1b)。此外,§F中的定性结果证实了MobileViT检测各种物体的能力。
实现细节。我们将MobileViT与DeepLabv3(Chen等,2017)集成在一起。我们使用AdamW和交叉熵损失在PASCAL VOC 2012数据集(Everingham等,2015)上微调MobileViT。遵循标准的训练方法(例如,Chen等,2017;Mehta等,2019),我们还使用了来自Hariharan等人(2011)和Lin等人(2014)的额外注释和数据进行训练。性能使用平均交并比(mIOU)在验证集上进行评估。其他超参数请参见§D。
结果。
表2显示,使用MobileViT的DeepLabv3更小且更好。当MobileViT作为骨干网络而不是MobileNetv2时,DeepLabv3的性能提高了1.4%,大小减少了1:6倍。此外,MobileViT的性能与具有ResNet-101的模型相媲美,但所需参数数量较少,表明MobileViT是一个强大的骨干网络。此外,§G中的结果显示,MobileViT学习了对物体的可推广表示,并在未见过的数据集上表现良好。 4.3 移动设备上的性能。轻量级和低延迟的网络对于实现移动视觉应用非常重要。为了展示MobileViT在此类应用中的有效性,使用预训练的全精度MobileViT模型,使用公开可用的CoreMLTools(2021)将其转换为CoreML格式。然后在移动设备(即iPhone 12)上测量其推理时间(平均100次迭代)。 移动友好。图8显示了在三个不同任务上使用两个补丁大小设置(Config-A: 2; 2; 2和Config-B: 8; 4; 2)的MobileViT网络的推理时间。这里Config X中的p1;p2;p3表示在输出步幅2的8、16和32处的补丁的高度h(宽度w=h)。与较大的补丁(Config-B)相比,具有较小补丁(Config-A)的模型更准确。这是因为,与Config-A模型不同,Config-B模型无法编码来自所有像素的信息(图13和§C)。另一方面,对于给定的参数预算,Config-B模型比Config-A模型更快,尽管两种配置中自注意力的理论复杂度相同,即O(N2Pd)。使用较大的补丁大小(例如P=82=64),与较小的补丁大小(例如P=22=4)相比,我们有较少数量的补丁N。因此,自注意力的计算成本相对较低。此外,与Config-A相比,Config-B模型提供了更高程度的并行性,因为在较大的补丁(P=64)中,与较小的补丁(P=4)相比,可以同时计算更多像素的自注意力。因此,Config-B模型比Config-A模型更快。为了进一步改善MobileViT的延迟,可以使用线性自注意力(Wang等,2020)。不过,无论在哪种配置下,除了用于分割任务的MobileViT-S模型之外,所有模型都可以在移动设备上实时运行(推理速度≥30 FPS)。这是可以预期的,因为这些模型处理比分类(256×256)和检测(320×320)网络更大的输入(512×512)。
总结
讨论。
我们观察到,在移动设备上,MobileViT和其他基于ViT的网络(例如DeIT和PiT)相比,较MobileNetv2更慢(表3)。这一观察结果与之前的研究相矛盾,该研究显示ViT相对于CNN具有更好的可扩展性(Dosovitskiy等,2021)。这种差异主要有两个原因。首先,针对GPU上的transformer存在专门的CUDA核心,ViT直接使用这些核心以提高其在GPU上的可扩展性和效率(例如Shoeybi等,2019; Lepikhin等,2021)。其次,CNN受益于几种设备级优化,包括与卷积层融合的批量归一化(Jacob等,2018)。这些优化改善了延迟和内存访问。然而,目前移动设备上并没有为transformer设计专门且经过优化的操作。因此,MobileViT和基于ViT的网络在移动设备上的推理图是次优的。我们相信,类似于CNN,MobileViT和ViT在未来将通过专门的设备级操作进一步提高推理速度