PWConv 论文理论部分解析

博客 包括 CVPR顶会|PWConv论文 - 论文解析部分

文章末尾部分 包含 YOLO11、YOLOv8、YOLOv10、RT-DETR、YOLOv7、YOLOv5 等模型 结合+ CVPR顶会|PWConv 原创改进核心内容


该论文提出了一种新颖的部分卷积 (PConv),通过同时减少冗余计算和内存访问,可以更有效地提取空间特征。

在这里插入图片描述

论文信息:Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
论文链接:https://arxiv.org/abs/2303.03667


一、研究背景

神经网络在计算机视觉领域取得了显著进展,广泛应用于图像分类、检测和分割等任务。在实际应用中,追求低延迟、高吞吐量的快速神经网络变得至关重要,这不仅能提供更好的用户体验,还关乎即时响应和安全等方面。

目前,设计快速神经网络的工作大多聚焦于减少浮点运算次数(FLOPs),例如MobileNets、ShuffleNets和GhostNet等利用深度卷积(DWConv)和/或分组卷积(GConv)来提取空间特征,MicroNet则通过分解和稀疏化网络降低FLOPs。此外,还有研究致力于将视觉Transformer(ViTs)和多层感知器(MLPs)架构小型化和加速,如MobileViTs和MobileFormer结合DWConv与改进的注意力机制。

然而,减少FLOPs并不一定能带来相应的延迟降低。这主要是因为每秒浮点运算次数(FLOPS)较低,许多现有神经网络存在计算速度慢的问题。通过公式 L a t e n c y = F L O P s F L O P S Latency =\frac{FLOPs}{FLOPS} Latency=FLOPSFLOPs可知,虽然众多研究尝试降低FLOPs,但很少同时考虑优化FLOPS以实现真正的低延迟。例如,CycleMLP-B1的FLOPs是ResNet50的一半,但运行速度却更慢。这种FLOPs与延迟之间的差异部分源于DWConv/GConv以及各种数据操作导致的低FLOPS,且此前未得到有效解决。

二、相关工作

2.1 CNN

CNNs是计算机视觉领域的主流架构,为提高效率,许多研究采用低秩近似方法,如组卷积和深度可分离卷积(由深度卷积和逐点卷积组成),这些方法在MobileNets、ShuffleNets等面向移动/边缘的网络中广泛应用。它们通过利用滤波器中的冗余来减少参数数量和FLOPs,但在增加网络宽度以补偿精度下降时,会面临内存访问增加的问题。与之不同,本文考虑特征图中的冗余,提出部分卷积(PConv)以同时减少FLOPs和内存访问。

2.2 ViT、MLP及其变体

自Dosovitskiy等人将Transformer应用于计算机视觉领域后,对ViT的研究日益增多。许多后续工作从训练设置和模型设计方面改进ViT,其中一个重要趋势是通过降低注意力算子的复杂度、将卷积融入ViTs或两者兼而有之,来追求更好的精度 - 延迟权衡。还有研究提出用基于MLP的简单算子替代注意力机制,但这些模型往往演变得类似CNN。本文聚焦于分析卷积操作,特别是DWConv,原因在于注意力机制相较于卷积的优势尚不明确,且基于注意力的机制通常运行速度较慢,而DWConv在许多混合模型中仍被广泛使用,值得深入研究。

三、PConv和FasterNet的设计

3.1 预备知识

DWConv是Conv的一种流行变体,被广泛用作许多神经网络的关键构建块。对于输入 I ∈ R c × h × w I \in \mathbb{R}^{c ×h ×w} IRc×h×w,DWConv应用 c c c个滤波器 W ∈ R k × k W \in \mathbb{R}^{k ×k} WRk×k计算输出 O ∈ R c × h × w O \in \mathbb{R}^{c ×h ×w} ORc×h×w。其深度方向的计算使得DWConv的FLOPs低至 h × w × k 2 × c h ×w ×k^{2} ×c h×w×k2×c,而常规Conv的FLOPs为 h × w × k 2 × c 2 h ×w ×k^{2} ×c^{2} h×w×k2×c2。然而,DWConv通常需与逐点卷积(PWConv)配合使用,且不能简单替代常规Conv,否则会导致精度严重下降。因此,在实际应用中,会增加DWConv的通道数 c c c(变为 c ′ c' c c ′ > c c'>c c>c)来补偿精度损失,例如在倒置残差块中,DWConv的宽度会扩展六倍。这使得内存访问量大幅增加,达到 h × w × 2 c ′ + k 2 × c ′ ≈ h × w × 2 c ′ h × w × 2c'+k^{2} × c' \approx h × w × 2c' h×w×2c+k2×ch×w×2c,高于常规Conv的 h × w × 2 c + k 2 × c 2 ≈ h × w × 2 c h × w × 2c+k^{2} × c^{2} \approx h × w × 2c h×w×2c+k2×c2h×w×2c。其中, h × w × 2 c ′ h ×w ×2c' h×w×2c的内存访问用于I/O操作,且被认为已达到最小成本,难以进一步优化。

在这里插入图片描述

3.2 部分卷积作为基本算子

本文提出通过利用特征图的冗余来进一步优化计算成本。如图3所示,特征图在不同通道间具有高度相似性,但此前很少有研究以简单有效的方式充分利用这一冗余。具体而言,提出一种简单的PConv,它仅对部分输入通道应用常规Conv进行空间特征提取,而让其余通道保持不变。为实现连续或规则的内存访问,考虑将前 c p c_{p} cp个或后 c p c_{p} cp个连续通道作为整个特征图的代表进行计算。不失一般性,假设输入和输出特征图的通道数相同。此时,PConv的FLOPs仅为 h × w × k 2 × c p 2 h × w × k^{2} × c_{p}^{2} h×w×k2×cp2。当典型的部分比率 r = c p c = 1 4 r=\frac{c_{p}}{c}=\frac{1}{4} r=ccp=41时,PConv的FLOPs仅为常规Conv的 1 16 \frac{1}{16} 161。此外,PConv的内存访问量也较小,为 h × w × 2 c p + k 2 × c p 2 ≈ h × w × 2 c p h × w × 2c_{p}+k^{2} × c_{p}^{2} \approx h × w × 2c_{p} h×w×2cp+k2×cp2h×w×2cp,当 r = 1 4 r=\frac{1}{4} r=41时,仅为常规Conv的 1 4 \frac{1}{4} 41

在这里插入图片描述

可能有人会问,能否直接移除其余的 ( c − c p ) (c - c_{p}) (ccp)个通道?若如此,PConv将退化为通道数更少的常规Conv,这偏离了减少冗余的目标。实际上,保留这些通道是因为它们对后续的PWConv层有用,能使特征信息在所有通道中流动。

3.3 PConv后接PWConv

为充分高效地利用所有通道的信息,在PConv后进一步添加PWConv。它们在输入特征图上的有效感受野类似于T形Conv,与均匀处理补丁的常规Conv相比,更关注中心位置,如图5所示。为证明这种T形感受野的合理性,首先通过计算位置-wise Frobenius范数来评估每个位置的重要性。对于常规Conv滤波器 F ∈ R k 2 × c F \in \mathbb{R}^{k^{2} ×c} FRk2×c,位置 i i i的Frobenius范数计算为 ∥ F i ∥ = ∑ j = 1 c ∣ f i j ∣ 2 \left\|F_{i}\right\|=\sqrt{\sum_{j=1}^{c}|f_{ij}|^{2}} Fi=j=1cfij2 i = 1 , 2 , ⋯   , k 2 i = 1,2,\cdots,k^{2} i=1,2,,k2。将具有最大Frobenius范数的位置视为显著位置,然后对预训练的ResNet18中的每个滤波器进行集体检查,找出其显著位置并绘制直方图。结果如图6所示,中心位置在滤波器中最常成为显著位置,这与T形计算更关注中心位置的特点相符。

在这里插入图片描述

虽然T形Conv可直接用于高效计算,但将其分解为PConv和PWConv更好,因为这种分解利用了滤波器间的冗余,进一步节省了FLOPs。对于相同的输入 I ∈ R c × h × w I \in \mathbb{R}^{c ×h ×w} IRc×h×w和输出 O ∈ R c × h × w O \in \mathbb{R}^{c ×h ×w} ORc×h×w,T形Conv的FLOPs可计算为 h × w × ( k 2 × c p × c + c × ( c − c p ) ) h × w \times\left(k^{2} × c_{p} × c+c \times\left(c - c_{p}\right)\right) h×w×(k2×cp×c+c×(ccp)),而PConv和PWConv的FLOPs为 h × w × ( k 2 × c p 2 + c 2 ) h × w \times\left(k^{2} × c_{p}^{2}+c^{2}\right) h×w×(k2×cp2+c2)。当 ( k 2 − 1 ) c > k 2 c p (k^{2}-1)c>k^{2}c_{p} (k21)c>k2cp时,例如 c p = c 4 c_{p}=\frac{c}{4} cp=4c k = 3 k = 3 k=3时,后者的FLOPs更低。此外,这种两步实现方式可方便地利用常规Conv。

3.4 FasterNet作为通用骨干网络

基于新颖的PConv和现成的PWConv作为主要构建算子,提出FasterNet,这是一种新的神经网络家族,在多种设备上运行速度极快,对许多视觉任务非常有效。FasterNet旨在保持架构尽可能简单,以使其对硬件友好。

FasterNet的整体架构如图4所示,它具有四个层次化阶段,每个阶段之前都有一个嵌入层(步长为4的 4 × 4 4×4 4×4常规Conv)或合并层(步长为2的 2 × 2 2×2 2×2常规Conv),用于空间下采样和通道数扩展。每个阶段都包含一堆FasterNet块,经实验验证,最后两个阶段的块消耗的内存访问较少且FLOPS较高,因此在最后两个阶段放置更多FasterNet块并分配更多计算量。每个FasterNet块包含一个PConv层,其后接两个PWConv(或 1 × 1 1×1 1×1Conv)层,它们共同构成倒置残差块,中间层的通道数扩展,并有一个捷径连接用于重用输入特征。

除上述算子外,归一化和激活层对于高性能神经网络也不可或缺。许多先前工作在网络中过度使用这些层,这可能会限制特征多样性,损害性能,还会减慢整体计算速度。相比之下,FasterNet仅在每个中间PWConv之后放置这些层,以保持特征多样性并实现更低的延迟。并且,FasterNet使用批归一化(BN)而非其他替代方法,因为BN可与相邻的Conv层合并,以实现更快的推理,且在实验中与其他方法同样有效。对于激活层,根据运行时间和有效性,经验性地为较小的FasterNet变体选择GELU,为较大的变体选择ReLU。最后三个层,即全局平均池化、 1 × 1 1×1 1×1Conv和全连接层,共同用于特征转换和分类。

在这里插入图片描述

为满足不同计算预算下的广泛应用需求,提供了FasterNet的微型、小型、中型和大型变体,分别称为FasterNet-T0/1/2、FasterNet-S、FasterNet-M和FasterNet-L。它们具有相似的架构,但深度和宽度有所不同,详细的架构规格在附录中给出。

四、实验结果

4.1 PConv速度快且FLOPS高

通过堆叠10层纯PConv,并以典型尺寸的特征图为输入,在GPU、CPU和ARM处理器上测量FLOPs、延迟/吞吐量,进而计算FLOPS,并与其他卷积变体进行比较。结果如表1所示,PConv总体上是一个极具吸引力的选择,它在减少FLOPs的同时实现了较高的FLOPS。与常规Conv相比,PConv的FLOPs仅为其 1 16 \frac{1}{16} 161,在GPU、CPU和ARM上的FLOPS分别比DWConv高10.5倍、6.2倍和22.8倍。常规Conv虽然FLOPS最高,但总FLOPs和延迟/吞吐量难以承受。GConv和DWConv尽管大幅减少了FLOPs,但FLOPS也急剧下降,且为补偿性能下降而增加通道数,进一步增加了延迟。

4.2 PConv与PWConv结合有效

为证明PConv后接PWConv在近似常规Conv以转换特征图方面的有效性,构建四个数据集。将ImageNet-1k验证集图像输入预训练的ResNet50,提取四个阶段中第一个 3 × 3 3×3 3×3Conv前后的特征图,每个特征图数据集再分为训练集(70%)、验证集(10%)和测试集(20%)。然后构建一个由PConv后接PWConv组成的简单网络,并在特征图数据集上以均方误差损失进行训练。同时,构建并训练DWConv + PWConv和GConv + PWConv的网络进行对比。

如表2所示,PConv + PWConv实现了最低的测试损失,这意味着它们在特征转换中能更好地近似常规Conv。结果还表明,仅从部分特征图中捕获空间特征是足够且高效的,PConv在设计快速有效的神经网络方面具有很大的潜力。

4.3 FasterNet在ImageNet-1k分类任务上的表现

为验证FasterNet的有效性和效率,在大规模ImageNet-1k分类数据集上进行实验。该数据集涵盖1k类常见物体,包含约130万张训练图像和5万张验证图像。使用AdamW优化器训练模型300个epoch,对于FasterNet-M/L,批量大小设置为2048,其他变体为4096。采用余弦学习率调度器,峰值为 0.001 ⋅ b a t c h s i z e / 1024 0.001 · batch size/1024 0.001batchsize/1024,并进行20个epoch的线性热身。应用常用的正则化和增强技术,包括权重衰减、随机深度、标签平滑、Mixup、Cutmix和Rand Augment,不同FasterNet变体的应用程度有所不同。为减少训练时间,在前280个训练epoch中使用 192 × 192 192×192 192×192分辨率,在剩余20个epoch中使用 224 × 224 224×224 224×224分辨率。为保证公平比较,不使用知识蒸馏和神经架构搜索。在验证集上报告中心裁剪为 224 × 224 224×224 224×224分辨率、裁剪比例为0.9的top-1准确率,详细的训练和验证设置在附录中给出。

图7和表3展示了FasterNet相对于现有分类模型的优越性。FasterNet在平衡准确性与延迟/吞吐量方面达到了新的最优水平,在相似的top-1准确率下,FasterNet在多种设备上的运行速度比各种CNN、ViT和MLP模型更快。例如,FasterNet-T0在GPU、CPU和ARM处理器上分别比MobileViT-XXS快2.8倍、3.3倍和2.4倍,且准确率提高了2.9%。大型的FasterNet-L实现了83.5%的top-1准确率,与新兴的Swin-B相当,但在GPU上的推理吞吐量提高了36%,在CPU上的计算时间节省了37%。FasterNet在架构设计上比许多其他模型简单得多,展示了设计简单而强大的神经网络的可行性。

4.4 FasterNet在下游任务上的表现

为进一步评估FasterNet的泛化能力,在具有挑战性的COCO数据集上进行对象检测和实例分割实验。通常做法是,将在ImageNet上预训练的FasterNet用作骨干网络,并配备流行的Mask R-CNN检测器。为突出骨干网络本身的有效性,简单遵循PoolFormer,采用AdamW优化器、1×训练调度(12个epoch)、批量大小为16,且不进行进一步的超参数调整。

表4展示了FasterNet与代表性模型的比较结果。FasterNet在具有相似延迟的情况下,始终优于ResNet和ResNext,具有更高的平均精度(AP)。具体而言,FasterNet-S相对于标准基线ResNet50,盒AP提高了1.9,掩码AP提高了2.4。FasterNet与ViT变体相比也具有竞争力,在相似的FLOPs下,FasterNet-L将PVT-Large在GPU上的延迟降低了38%,从152.2 ms降至93.8 ms,并且盒AP提高了1.1,掩码AP提高了0.4。

4.5 消融研究

对部分比率 r r r的值以及激活层和归一化层的选择进行了简要的消融研究。比较不同变体在ImageNet top-1准确率和设备上的延迟/吞吐量。结果总结在表5中。对于部分比率 r r r,默认将所有FasterNet变体的 r r r设置为 1 4 \frac{1}{4} 41,在相似的复杂度下,可实现更高的准确率、更高的吞吐量和更低的延迟。 r r r值过大,PConv会退化为常规Conv; r r r值过小,PConv在捕获空间特征方面的效果会降低。对于归一化层,选择BatchNorm而非LayerNorm,因为BatchNorm可与相邻卷积层合并以实现更快的推理,且在实验中与LayerNorm同样有效。对于激活函数,经验发现GELU比ReLU更适合FasterNet-T0/T1模型,而对于FasterNet-T2/S/M/L则相反。由于篇幅限制,表5中仅展示了两个示例。推测GELU通过更高的非线性增强了FasterNet-T0/T1的性能,但对于较大的FasterNet变体,这种优势逐渐减弱。

五、结论

本文研究了许多现有神经网络存在的每秒浮点运算次数(FLOPS)低的常见未解决问题,重新审视了瓶颈算子DWConv,分析了其导致速度减慢的主要原因——频繁的内存访问。为克服这一问题并实现更快的神经网络,提出了一种简单而快速有效的算子PConv,它可轻松插入许多现有网络中。进一步介绍了基于PConv构建的通用FasterNet,在各种设备和视觉任务上实现了最先进的速度和精度权衡。希望PConv和FasterNet能激发更多关于简单而有效神经网络的研究,不仅在学术界,还能直接影响工业界和相关领域。

六、附录

6.1 ImageNet-1k实验设置

在表6中提供了ImageNet-1k的训练和评估设置,可用于复现表3和图7中的主要结果。不同FasterNet变体在正则化和增强技术的应用程度上有所不同,模型越大,应用程度越高,以减轻过拟合并提高准确性。表3和图7中的大多数比较工作也采用了先进的训练技术,有些甚至严重依赖超参数搜索。对于未使用这些技术的模型,如ShuffleNetV2、MobileNetV2和GhostNet,虽比较不完全公平,但仍将其纳入作为参考。

6.2 下游任务实验设置

对于COCO2017数据集上的对象检测和实例分割,为FasterNet骨干网络配备Mask R-CNN检测器。使用ImageNet-1k预训练权重初始化骨干网络,使用Xavier初始化附加层。详细设置总结在表7中。

6.3 ImageNet-1k的完整比较图

图8展示了ImageNet-1k上的完整比较图,是主论文中图7的扩展,涵盖了更大范围的延迟。图8表明,FasterNet在平衡GPU、CPU和ARM处理器上的准确性与延迟/吞吐量方面,比其他模型取得了更好的权衡


芒果YOLO系列改进:基于 PWConv 原创改进内容🚀🚀🚀


5.1 将 PWConv 改进到 YOLO11 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果YOLO11改进12:即插即用 | 独家原创改进最新PWConv核心结构|来自最新CVPR2023顶会,


5.2 将 PWConv 改进到 YOLOv8 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果YOLOv8改进06:卷积Conv篇:独家原创改进最新PWConv核心结构,来自CVPR2023,可以直接写模型改进,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量


5.3 将 PWConv 改进到 YOLOv10 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果YOLOv10改进20:卷积Conv篇:独家原创改进最新PWConv核心结构,来自CVPR2023,可以直接写模型改进,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量


5.4 将 PWConv 改进到 RT-DETR 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果改进:PWConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea 适用于 ultralytics 版本的 RT-DETR


5.5 将 PWConv 改进到 YOLOv7 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果YOLOv7改进41:主干篇:改进首发最新PWConv核心结构|来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS


5.6 将 PWConv 改进到 YOLOv5 中 - 基于 PWConv 原创改进核心内容

详情改进内容点击:🚀🚀🚀芒果YOLOv5改进15:主干Backbone篇最新PWConv核心结构:来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS


Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐