FasterNet(CVPR 2023)论文解读

paper:Run, Don't Walk: Chasing Higher FLOPS for Faster Neural Networks

official implementation:https://github.com/jierunchen/fasternet

存在的问题

为了设计轻量、速度快的网络,许多工作都专注于减少floating-point operations (FLOPs)。但FLOPs的减少并不一定意味着相同水平延迟latency的减少。主要原因在于low floating-point operations per second (FLOPS)。

本文的创新点

为了实现更快的网络,本文重新研究了常用的operator并证明了这种low FLOPS主要是算子的频繁内存访问frequent memory access导致的,尤其是深度卷积depthwise convolution。

因此,本文提出了一种新的partial convolution (PConv),通过同时减少冗余的计算和内存访问,更高效的提取空间特征。基于Pconv,本文进一步提出了FasterNet,一种新的神经网络家族。它在各种设备上获得了比其它网络更快的运行速度,同时又没有影响在各种视觉任务上的准确性。

前言

许多轻量网络的设计初衷是为了减少FLOPs,但这些“fast”网络是否真的快?为了回答这个问题,首先需要研究延迟和FLOPs之间的关系

其中FLOPS是floating-point operations per second的缩写,虽然有很多工作是为了减少FLOPs,但它们很少同时考虑优化FLOPS以获得真正的低延迟。为了更好的理解这种情况,作者比较了一些常见的神经网络在Intel CPU上的FLOPS,如图2所示 

 从图中可以看出,许多网络的FLOPS都比较低,很多低于ResNet50,这种情况下,这些所谓"fast"的网络实际上并不够快。它们在FLOPs上的降低并不能转化为延迟的降低,有些情况下,延迟不光没有改善甚至更高了。例如,CycleMLP-B1的FLOPs是ResNet50的一半,但速度更慢(116.1ms vs. 73.0ms),这种现象在之前的工作中也有提到(如ShuffleNet v2和Mobilevit)但仍然没有解决部分原因是它们使用了DWConv、GConv和各种数据操作,这些都导致了低FLOPS。

Design of PConv and FasterNet

Preliminary

DWConv是Conv的一种变体,已经被广泛用于各种网络中。对于输入 \(\mathbf{I}\in \mathbb{R}^{c\times h\times w}\),DWConv利用 \(c\) 个卷积 \(\mathbf{W}\in \mathbb{R}^{k\times k}\) 得到输出 \(\mathbf{O}\in \mathbb{R}^{c\times h\times w}\)。如图1(b)所示,每个filter在一个输入通道上滑动得到一个输出通道,这使得DWConv的FLOPs为 \(h\times w\times k^{2}\times c\) 相比于普通卷积 \(h\times w\times k^{2}\times c^{2}\) 更少。虽然可以有效减少FLOPs,但DWConv通常后接一个PWConv不能直接用来替代一个普通卷积,因为这会导致精度的显著下降。实际应用中,通常增加DWConv的通道数 \(c'\) (\(c'>c\)) 来补偿精度下降,例如在inverted residual block中通道数增大到了6倍。然而,这会导致内存访问的增加,带来无法忽略的延迟,继而减慢整个计算过程,特别是对于I/O-bound设备。具体现在内存访问次数增加到了

大于普通卷积的内存访问次数,即

 

注意 \(h\times w\times 2c'\) 的内存访问耗费在I/O操作上,这已经是最小的成本了并且很难进一步优化。

Partial convolution as a basic operator

接下里作者展示了如何利用特征图的容易进一步优化成本。如图3所示,这些特征图在不同的通道之间具有很高的相似性,这在之前的研究如Ghostnet中也提出了,但没有以一种简单有效的方式充分利用。本文提出了一种见得PConv来同时减少计算冗余和内存访问,如图4左下所示 

它只对输入的部分通道应用普通卷积来提取空间特征,其余通道保持不变。为了连续的内存访问,我们只采用第一个或最后一个连续 \(c_{p}\) 个通道作为计算整个特征映射的代表。在不丧失一般性的情况下,我们只考虑输入和输出特征映射具有相同数量的通道的情况。因此,一个PConv的FLOPs只有

当采用常用的取值 \(r=\frac{c_{p}}{c}=\frac{1}{4}\) 时,一个PConv的FLOPs是一个普通Conv的 \(\frac{1}{16}\)。此外PConv的内存访问也更少

当 \(r=\frac{1}{4}\) 时只有普通卷积的 \(\frac{1}{4}\)。

由于只有 \(c_{p}\) 通道用于空间特征提取,可能有人会问能否直接去掉剩余的 \((c-c_{p})\) 个通道?这样的话,PConv就变成了一个通道更少的普通卷积,这就背离了我们想要减少冗余的初衷。这里我们保留剩余的通道不变而不是直接删除,是因为这对于后续的PConv层有用,它是的特征信息可以流过所有通道。

PConv followed by PWConv

为了充分而高效的利用来自所有通道的信息,作者在PConv的后面添加了一个PWConv。这两个结合起来在输入上的有效感受野看起来像一个T-shaped Conv,如图5所示,与普通卷积相比它更关注于中心区域。

为了证明这种T型感受野,我们通过计算position-wise Frobenius norm来评估每个位置的重要性。我们认为如果一个位置的Frobenius norm比其它位置都大,那么它往往更重要。对于一个普通卷积 \(\mathbf{F}\in \mathbb{R}^{k^{2}\times c}\),位置 \(i\) 处的Frobenius norm通过 \(\left \| \mathbf{F_{i}} \right \| =\sqrt{ {\textstyle \sum_{j=1}^{c}\left | f_{ij} \right |^{2} } },i=1,2,3...,k^{2} \) 计算得到。我们认为一个显著的位置是具有最大Frobenius norm的位置。作者首先研究pretrained ResNet18中的每个卷积核,找到每个卷积核的显著位置,然后画了一个显著位置的直方图,如图6所示,可以看出中心位置作为最显著位置的频率是最高的。换句话说,中心位置的权重比周围都要大,这与T型计算集中于中心处是一致的。

尽管T型卷积可以直接用于高效计算,但作者表示将它分解成一个PConv和一个PWConv更好,因为利用了卷积核之间的冗余进一步减低了FLOPs。对于同样的输入 \(\mathbf{I}\in \mathbb{R}^{c\times h\times w}\) 和 \(\mathbf{O}\in \mathbb{R}^{c\times h\times w}\),一个T型卷积的FLOPs计算如下

这大于一个PConv和一个PWConv的FLOPs

 

其中 \((k^{2}-1)c>k^{2}c_{p}\),例如当 \(c_{p}=\frac{c}{4},k=3\) 时。此外我们还可以直接利用普通卷积来进行分解后两步的实现。

FasterNet as a general backbone

基于PConv和PWConv,作者进一步提出了FasterNet,一个新的神经网络家族。它的运行速度更快,对许多视觉任务都非常有效。

完整的结构如图4所示,它包含4个stage,每个stage之前都有一个embedding layer(一个stride=4的普通卷积)或一个merging layer(一个stride=2的普通卷积)用于下采样或增加通道数。每个stage都包括若干FasterNet blocks。作者发现后两个stage中的block内存访问更少FLOPS更大,因此把更多的block即更多的计算放到后两个stage中。每个block都包括一个PConv层后接两个PWConv(或1x1 Conv)。整理看起来有点像inverted residual block,中间层的通道数更多,还有一个shortcut connection用于特征重用。

除了上述算子,归一化层和激活层对于高性能的神经网络也必不可少。但是很多之前的网络过度使用这些层,这限制了特征的多样性,损害了整体性能,还减慢了计算。相反,本文只在每个中间PWConv之间添加归一化层和激活层来保持特征的多样性并获得更低的延迟。此外本文的归一化层使用BN,因为相比于其它归一化层它可以与相邻的卷积层融合到一起来加快推理。对于激活函数,较小的网络采用GELU,较大的采用ReLU。最后三层,一个全局平均池化,一个1x1卷积,一个全连接层用于特征转换和分类。为了适应不同的计算场景,本文提供了tiny、small、medium、large版本,它们的结构是一致的,只在深度和宽度方面有区别。具体如下

实验结果

表1展示的是相同规格下10层各类型卷积在不同设备上的FLOPS对比,可以看出PConv的FLOPS是最大的,表明其速度是最快的。

表3是FasterNet和其它SOTA分类模型在ImageNet-1k验证集上的效果,可以看出FasterNet的延迟是最低的

 

在下游目标检测和实例分割任务上,FasterNet的效果也很好,其中网络结构选择Mask R-CNN

 

  • 34
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CVPR 2023计算机视觉和模式识别的顶级会议,UAV(无人机)在该会议上是一个热门的研究领域。 UAV(无人机)技术在过去几年中取得了显著的发展和广泛的应用。它们被广泛用于农业、测绘、监测和救援等领域。CVPR 2023将成为研究者们交流、展示和分享无人机相关研究的理想平台。 首先,CVPR 2023将提供一个特殊的无人机研究专题,以探讨该领域的最新进展和创新。研究人员可以提交和展示基于无人机的计算机视觉和模式识别的研究成果。这些研究可能涉及无人机导航、目标识别、图像处理等方面,以解决现实世界中的问题。 其次,CVPR 2023也将包括无人机在计算机视觉和模式识别中的应用研究。无人机可以提供独特的视角和数据采集能力,用于处理各种计算机视觉任务,如物体检测、场景分割等。研究者可以展示他们基于无人机的方法与传统方法的对比实验结果,并讨论无人机在这些领域的优势和局限性。 此外,CVPR 2023还将包括与无人机相关的新兴技术和趋势的讨论。例如,无人机与深度学习、增强现实等领域的结合,将推动计算机视觉和模式识别的研究和应用取得更大的突破。研究者可以分享他们在这些交叉领域中的创新成果,并与其他学者进行深入的讨论和合作。 总之,CVPR 2023将为无人机在计算机视觉和模式识别领域的研究提供一个重要的平台。它将促进学术界和工业界之间的合作与交流,并为未来的无人机技术发展提供新的思路和方向。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

00000cj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值