本文主要是介绍RT-DERT改进策略:UniRepLKNet,大核卷积的最新成果,轻量高效的首选(全网首发),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘要
将UniRepLKNet应用到RT-DERT的改进中,经过测试,涨点明显,运算量也有下降!
论文:《UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet》
https://arxiv.org/abs/2311.15599
大核卷积神经网络(ConvNets)最近受到了广泛的研究关注,但存在两个未解决的关键问题需要进一步研究。(1)现有大核ConvNets的架构在很大程度上遵循传统ConvNets或Transformers的设计原则,而大核ConvNets的架构设计仍未得到充分解决。(2)随着Transformer 在多种模式下的主导地位,尚待研究的是,ConvNets是否在视觉以外的领域也具有强大的通用感知能力。本文从两个方面进行了贡献。(1)我们提出了设计大核ConvNets的四个架构指导方针,其核心是利用大核和小核的本质特征-大核可以看到宽广的范围而无需深入。遵循这些指导方针,我们提出的大核ConvNet在图像识别方面表现出领先性能。例如,我们的模型在ImageNet上达到88.0%的准确率,ADE20K mIoU为55.6%,COCO box AP为56.4%,表现出比最近提出的一些强大的竞争对手更好的性能和更高的速度。(2)我们发现大核是解锁ConvNets在它们最初不擅长的领域的卓越性能的关键。采用某些与模态相关的预处理方法,即使不对架构进行特定于模态的定制,提出的模型也能在时间序列预测和音频识别任务上实现最先进的性能。代码和所有模型在https://github.com/AILabCVC/UniRepLKNet。
1、简介
使用非常大的卷积核的卷积神经网络(ConvNets)的设计范式起源于ReplkNet [11],当时ConvNets的地位受到Vision Transformers(ViTs) [12, 38, 61, 65]的挑战。受到使用全局注意力 [12, 54, 65]或使用大窗口注意力 [38, 49, 64]的ViTs的启发,ReplkNet提出使用非常大的卷积核。与使用小卷积核(例如3×3) [19, 22, 25, 48, 53, 58, 77]的常见做法不同,即使使用许多小卷积核层也难以获得大的有效感受野(ERF) [43]。ReplkNet实现了大的ERF和令人印象深刻的性能,尤其是在目标检测和语义分割等任务上。
如今,使用非常大的卷积核的卷积神经网络(ConvNets)变得流行,它们大多关注如何使大卷积核变得更大[36],以及如何将它们应用于多个任务[6, 42, 75]等等。然而,我们注意到,现有大核ConvNets的大多数架构只是简单地遵循其他模型,例如ReplkNet [11]遵循Swin Transformer [37]的架构,而SLaK [36]遵循ConvNeXt,这是一种强大的中等大小(7×7)卷积核架构。大核ConvNets的架构设计仍未得到充分探索。
我们通过重新思考使用小卷积核的常规模型的设计来探索大核ConvNet架构。当我们向小核ConvNet添加一个3×3卷积时,我们期望它同时产生三个效果-1)使感受野更大,2)增加空间模式的抽象层次(例如,从角度和纹理到对象的形状),以及3)通过使模型更深,引入更多的可学习参数和非线性来提高模型的通用表示能力。相反,我们认为在大型核架构中,这三个效果应该被解耦,因为模型应该利用大核的重要优势-能够看到宽广而无需深入。由于增加内核大小比堆叠更多层来扩大ERF更加有效[43],因此可以使用少量大型核层来构建足够的ERF,从而节省计算预算以用于其他更有效的结构,这些结构更有效地增加空间模式的抽象层次或普遍增加深度。例如,当目标是从较低级别提取更高级别的局部空间模式时,3×3卷积层可能比大型核卷积层更合适。原因是后者需要更多的计算,并可能导致不再局限于较小局部区域的模式,这在特定情况下可能是不希望的。
具体来说,我们为大型核ConvNets提出了四个架构指南-1)使用高效结构(如SE块[24])来增加深度,2)使用提出的大膨胀重参数块来重新参数化大型核卷积层以提高性能而不会推理成本,3)根据下游任务决定内核大小,通常仅在中间层和高层次层中使用大型核,4)在增加模型深度的同时,使用3×3卷积而不是更多的大型核。遵循这些指南构建的ConvNet(图1)分别实现了上述三个效果,因为它使用数量适中的大型核来保证大的ERF,使用小型核来更有效地提取更复杂的空间模式,并使用多个轻量级块来进一步增加深度以提高表示能力。
我们的架构在ImageNet分类[9]、ADE20K语义分割[80]和COCO目标检测[34]上实现了领先的性能,超过了现有的大型核ConvNets,如ReplkNet [11]、SLaK [36]以及包括ConvNeXt V2 [70]、FastViT [63]、Swin V2 [39]和DeiT III [62]等最近的强大架构,在准确性和效率方面都有所超越。
RepLKNet [11]的部分提出是为了“捍卫ConvNets”,因为ViTs在曾经由ConvNets主导的多个图像识别任务中占据了主导地位。然而,在这项工作中,我们不仅要在图像识别任务中重夺领先地位,通过超越ViTs的性能,还在传统上由ConvNets不占主导地位的领域做出重大贡献。具体来说,在音频、视频、点云和时间序列任务方面,我们通过惊人地普遍和简单的解决方案取得了令人印象深刻的表现。我们使用特定于模态的预处理方法将所有数据转换为3D嵌入图,就像我们对图像所做的那样,并使用与主干相同的架构来处理嵌入图。我们的模型展示了统一架构对多种模态的普遍感知能力,因此被命名为UniRepLKNet。
令人印象深刻的是,UniReplkNet在ConvNet并不擅长的模态上,如音频和时间序列数据,也取得了卓越的成果。例如,在一个预测全球温度和风速的大型时间序列预测任务中,UniReplkNet这个最初为图像识别设计的通用模型甚至超过了为该任务定制的最新最先进的Transformer模型。这些结果不仅标志着ConvNet在其原始领域的“回归”,还展示了大型核ConvNet“征服”新领域的潜力,从而在各种任务中扩大其适用性和多功能性。
2、相关研究
早期ConvNets中的大型内核。经典的ConvNets,如AlexNet [32]和Inceptions [55-57],在低级层使用了7×7或11×11,但大型内核在VGG-Net [53]之后并不流行。全局卷积网络(GCN) [45]在语义分割中使用了非常大的卷积层(1×K然后是K×1)。局部关系网络(LR-Net) [23]采用了一个空间聚合运算符(LRLayer)来替代标准卷积层,这可以被视为动态卷积。LR-Net从7×7的内核大小中受益,但随着9×9内核大小的增加而降低。当内核大小与特征图一样大时,其top-1准确率从75.7%显著降低到68.4%。
大型内核的探索。核的概念可以推广到空间卷积之外。Swin Transformer [38]使用了偏移注意力窗口大小从7到12不等,这可以被视为动态内核。Han等人 [18]用静态或动态7×7卷积替换了Swin中的注意力层,并仍然保持了相当的结果。MetaFormer [76]提出大型内核池化层是自注意力的替代品。另一个代表性作品是全局滤波网络(GFNet) [50],它优化了傅里叶域中的空间连接权重。它在空间域中相当于循环全局卷积。
使用非常大的内核的现代ConvNets。RepLKNet首次提出,简单地增加现有ConvNets的内核大小就可以带来性能提升,特别是在下游任务上[11]。它提出了几个指导原则,同时使用大内核,重点在于微观结构设计(例如,在大内核旁边使用捷径)和应用(大内核ConvNets应该在下游任务上进行评估)。在结构方面,ReplkNet只是为了简单起见而追随了Swin Transformer。在过去的两年里,大内核ConvNets得到了深入研究。一些工作成功地进一步扩大了内核大小[36],将该想法推广到3D场景[6]和许多下游任务,例如图像去雾[42]和超分辨率[75]。然而,我们注意到,对于使用非常大的内核的ConvNet的架构设计仍然缺乏探索。例如,SLaK [36]遵循ConvNeXt开发的架构,ConvNeXt是一个功能强大的中等内核(7×7)架构。
3、UniRepLKNet的架构设计
3.1、扩张重参数块(Dilated Reparam Block)
据报道,使用大内核卷积时应该与并行的小内核卷积一起使用,因为后者有助于在训练期间捕捉小尺度模式[11]。它们的输出在两个各自的批量归一化(BN)层之后被加在一起。经过训练后,我们使用结构重参数化(Structural Re-parameterization)方法将BN层合并到conv层中,以便小内核conv可以被等效地合并到大内核中以进行推断。在本工作中,我们注意到,除了小尺度模式外,增强大内核捕捉稀疏模式(即特征图上的一个像素可能与其远距离像素比与其邻近像素更相关)的能力可以产生更高质量的特征。捕捉这种模式的需要正好符合扩张卷积的机制-从滑动窗口的角度来看,具有扩张率r的扩张卷积层扫描输入通道以捕获空间模式,其中每个感兴趣的像素距离其邻居r-1像素。因此,我们使用与大内核并行且其输出相加的扩张卷积层。
由于在推理期间忽略了输入中的像素,相当于在卷积核中插入额外的零条目,因此将整个块等效转换为单个非扩张卷积层进行推理可以消除额外的推理成本。让我们k是扩张层的内核大小,通过插入零条目,相应非扩张层的内核大小将是 ( k − 1 ) r + 1 (k-1)r+1 (k−1)r+1,为了简洁起见,我们将其称为等效内核大小。我们进一步注意到,从前者内核 W ∈ R k × k \mathrm{W} \in \mathcal{R}^{k \times k} W∈Rk×k到后者 W ′ ∈ R ( ( k − 1 ) r + 1 ) × ( ( k − 1 ) r + 1 ) \mathrm{W}^{\prime} \in \mathcal{R}^{((k-1) r+1) \times((k-1) r+1)} W′∈R((k−1)r+1)×((k−1)r+1)的这种转换可以通过以r为步幅和恒等核 I ∈ R 1 × 1 \mathrm{I} \in \mathcal{R}^{1 \times 1} I∈R1×1(其是标量1但被视为核张量)进行转置卷积来实现。在pytorch风格伪代码中,即
W ′ = conv_transpose 2 d ( W , I , stride = r ) . \mathrm{W}^{\prime}=\text { conv\_transpose } 2 \mathrm{~d}(\mathrm{~W}, \mathrm{I}, \text { stride }=r) . W′= conv_transpose 2 d( W,I, stride =r).
这种等价性很容易验证-给定任意 W ∈ R k × k \mathrm{W} \in \mathcal{R}^{k \times k} W∈Rk×k和任意输入通道,与\mathrm{W}进行卷积和扩张速率r始终会产生与 W ′ \mathrm{W}^{\prime} W′进行非扩张卷积的相同结果。
基于这种等价转换,我们提出了扩张重参数块(Dilated Reparam Block),该块使用非扩张的小内核和多个扩张的小内核层来增强非扩张的大内核卷积层。其超参数包括大内核的大小K、并行卷积层的大小\boldsymbol{k}和扩张速率 r \boldsymbol{r} r。图2中显示的具有四个并行层的情况表示为 K = 9 , r = ( 1 , 2 , 3 , 4 ) , k = ( 5 , 3 , 3 , 3 ) K=9,\boldsymbol{r}=(1,2,3,4),\text{ }k=(5,3,3,3) K=9,r=(1,2,3,4), k=(5,3,3,3)。对于较大的K,我们可以使用更多具有较大内核大小或扩张速率的扩张层。并行分支的内核大小和扩张速率是灵活的,唯一的约束是(k-1)r+1≤K。例如,当K=13(我们在实验中使用的默认设置)时,我们使用五个层,其中k=(5,7,3,3,3),r=(1,2,3,4,5),因此等效内核大小将是(5,13,7,9,11),分别是。要将Dilated Reparam Block转换为用于推理的大内核卷积层,我们首先将每个BN合并到前面的conv层中,使用函数1将每个扩张速率r>1的层进行转换,并在每个侧面添加适当数量的零填充。例如,图2中具有k=3,r=3的层被转换为稀疏的7×7内核,并将其添加到9×9内核中,每个侧面都有一个像素的零填充。
3.2、大型内核的架构指南
Vanilla架构。首先,我们构建Vanilla架构进行实验。作为一种常见的实践,将模型的主体分为四个阶段,并通过下采样块连接。具体而言,第一个下采样块使用两个步长为23×3的卷积层将原始输入转换为C通道特征图,其中C是架构的超参数,而其他三个下采样块每个都使用一个步长为23×3的卷积层执行2×通道扩展,以便四个阶段的通道数分别为C、2C、4C和8C。一个阶段由多个块组成,其Vanilla设计与ConvNeXt相似,即深度卷积(DW)层和具有GRN单元的前馈网络(FFN) [70],但我们使用Batch Normalization(BN)而不是LayerNorm [1]在卷积层之后,因为BN可以等效合并到卷积层中以消除其推理成本。我们在FFN之后使用另一个BN,这也可以等效合并到前一个层中(即FFN中的第二个线性层)。这四个阶段中的块的数量分别表示为N(N1,N2,N3,N4)。遵循ConvNeXt-T,Vanilla架构使用C=96和N=(3,3,9,3)。默认情况下,最后三个阶段使用13×13Dilated Reparam Block作为DW层,这意味着K=13、k=(5,7,3,3,3)和r=(1,2,3,4,5);第一个阶段使用DW 3×3卷积作为DW层。
实验设置和指标。文献[11]强调,大型内核ConvNets应该在下游任务上进行评估,因为它们的全部潜力可能不能仅仅通过ImageNet精度来准确反映。因此,除了经过100个训练周期后,使用U-Net[74]将训练好的模型转移到ADE20K以检查其在语义分割上的性能,并报告经过16万个标准迭代微调过程后的单尺度mIoU [7]。除了参数和FLOPs之外,我们还测试了A100 GPU上批量大小为128和输入分辨率为224×224时的实际吞吐量,该指标以每秒处理的图像数(img/s)来衡量。详见附录中的详细配置。
架构指南1——块设计:使用执行通道间通信和空间聚合的高效结构来增加深度。首先,我们尝试插入一些结构,以普遍提高模型的表示能力,这是包含非线性高效可训练变换所需要的。我们自然地尝试一个由一个1x1 conv组成的瓶颈,将通道减少到1/4,一个DW 3x3 conv,以及另一个1x1 conv来扩展通道(图3)。我们使用conv层之后的BN和ReLU作为常见的实践。表1显示,性能以可接受的代价提高(+1.2 mIoU,速度降低12%)。当我们移除DW 3x3 conv时,性能下降,只剩下两个1x1 conv层,或者用两个DW 3x3层替换瓶颈结构,这表明这种结构需要同时进行空间聚合转换和通道混合。受此启发,考虑到SE Block [24]以优雅的方式实现了这两种转换(即全局平均池化和池化向量的非线性映射),我们也尝试将其与1/4通道减少相结合,并观察到更好的性能和更高的吞吐量。因此,我们在下面的探索中,将SE Block作为我们块设计的一个子结构。
架构指南2——重新参数化:使用膨胀的小核来重新参数化大核。为了与Dilated Reparam Block进行公平的比较,我们尝试了两种变体,它们具有相同数量的非膨胀层的并行分支A)具有相同的核大小或B)具有相同的等效核大小。对于我们的默认设置K=13,r=(1,2,3,4,5),k=(5,7,3,3,3),五个分支的核大小将分别是k=(5,7,3,3,3)或(5,13,7,9,11)对于两个变体,分别。所有模型最终都具有相同的推断结构,但训练结构不同。表2显示了变体性能较低,这表明大核得益于并行膨胀卷积层捕获稀疏模式的能力,而不仅仅是额外的较小核(变体A)或不同的接收域的组合(变体B)。在接下来的探索中,我们使用膨胀Reparam Block。
架构指南3——核大小:根据下游任务决定核大小,通常在中间层和高层使用大核。如上所述,基线模型在第一阶段使用3x3 conv,在最后三个阶段使用13x13。表3显示,将最后三个阶段的大核替换为3x3或将K从13更改为11会降低模型的性能,尤其是在ADE20K mIoU方面,这突显了大核的重要性。有趣的是,在第一阶段使用13x13或将K从13增加到15对ImageNet精度几乎没有影响,但会降低ADE20K mIoU。
注解:我们认为这种现象并不意味着大核导致特征质量下降。这是由于U-PerNet的结构先验,它采用主干网络低级层的特征并假设它们只应编码局部信息,以便将它们与从主干网络最后一层提取的高级特征结合,从而产生更好的分割结果。在较低阶段使用较大的内核,低级特征不再局限于较小的局部区域,因此U-PerNet从将它们与高级特征相结合中获得的益处较少。我们通过仅使用高级特征(即第4阶段的输出)来评估最终特征的质量,验证了这一解释。在此设置下,K=15传递最佳mIoU(42.7),在第一阶段使用大核模型的表现与基线相同(42.4),而K=11表现最差(41.9)。这些观察证实,即使使用不当,大核也不会损害ConvNet的特征质量,而只是使低级特征对于某些需要局部低级特征的下游模型不太有利。这表明我们应该根据特定的下游任务和框架来决定核大小。在我们特定的用例中(即具有常见下游框架的代表性图像识别任务),我们默认在中级和高级阶段使用13x13内核。
架构指南4——缩放规则:在增加深度时,添加的块应使用小核。现有大核ConvNets的缩放规则遵循传统ConvNets,即堆叠更多大核来构建更深的模型,但我们认为大核ConvNet可能不会从更多大核中受益。在本组实验(表4)中,我们按照ConvNeXt-S [40]将N3从9扩展到27。考虑到9个13x13块可能已经建立了足够的接收域,我们检查是否应该使用大核添加更多的块。具体而言,我们将使用Dilated Reparam Block的块称为Large Kernel Block(LarK Block),将使用DW 3x3 conv的块称为Small Kernel Block(SmaK Block),这样浅模型在第1和第3阶段具有3个SmaK Block,最后三个阶段具有9个LarK Block和3个SmaK Block。在增加第3阶段的深度时,我们尝试了以下选项。A)所有27个块都是LarK Block。B)我们将SmaK Block与LarK Block交替排列,以便第3阶段具有14个LarK Block和13个SmaK Block。C)我们在LarK Block之后放置两个SmaK Block,从而使结果模型具有与之前相同的9个LarK Block,但有18个额外的SmaK Block。D)我们移除SmaK Block中的DW 3x3层。表4显示,增加深度带来了显着的改进,这是预期的结果,而9个LarK Block足以满足要求。尽管27个LarK Block在ADE20K mIoU方面的表现稍好,但推理速度明显变慢。此外,在SmaK Block中没有3x3 conv的模型显示出显着的mIoU降低,只有轻微的吞吐量提升,这表明在SmaK Block中使用这样的小核会增加大核ConvNet的抽象层次空间模式,尽管它们可能不会有效地扩大ERF [11, 43]。这一观察结果支持了我们在第1节中讨论的将conv层在扩大ERF和提取更复杂的空间模式的效果进行解耦的动机。
3.3、架构规范
根据我们提出的指导方针,我们实例化了一系列模型(表5)。为了与ConvNeXt V2 [70]进行公平比较,UniReplkNet-A/F/P/N遵循其配置。我们通过增加深度来构建UniReplkNet-T/S,并通过增加宽度来构建UniReplkNet-S/B/L/XL。
3.4、UniReplkNet在超越图像领域的通用性
为了利用UniReplkNet的通用感知能力,我们将不同模态的数据预处理为 B × C ′ × H × W B × C^{\prime} × H × W B×C′×H×W的嵌入映射,其中B是批量大小, C ′ C^{\prime} C′由模态决定,并将UniReplkNet第一层的输入通道配置为 C ′ C^{\prime} C′。为了简便起见,模型的其它部分与最初为图像设计的UniReplkNet相同,没有任何模态特定的定制。通过这样做,我们可以将通常用于图像任务的ConvNet直接应用于处理其他模态的数据。换句话说,用于图像任务的UniReplkNet可以看作是一个通用的UniReplkNet,其中 C ′ = 3 C^{\prime}=3 C′=3且没有这样的预处理。我们将介绍如何将数据转换为这样的嵌入映射,具体如下。
x T ∈ R B × L × D → R B n × L × D n → R B n × L × D ′ → R B n × 1 × H × W s.t. H W = L D ′ . (2) \begin{aligned} \boldsymbol{x}_{T} \in \mathbb{R}^{B \times L \times D} & \rightarrow \mathbb{R}^{B n \times L \times \frac{D}{n}} \rightarrow \mathbb{R}^{B n \times L \times D^{\prime}} \\ & \rightarrow \mathbb{R}^{B n \times 1 \times H \times W} \text { s.t. } H W=L D^{\prime} . \end{aligned} \tag{2} xT∈RB×L×D→RBn×L×nD→RBn×L×D′→RBn×1×H×W s.t. HW=LD′.(2)
音频。设T和F分别为时间帧数和频率分箱数,我们使用 x A ∈ R B × T × F x_A \in \mathbb{R}^{B \times T \times F} xA∈RB×T×F表示音频数据。一个样本被视为 1 × T × F 1 \times T \times F 1×T×F的嵌入映射,类似于单通道图像,因此 C ′ = 1 , H = T , W = F C^{\prime}=1,H=T,W=F C′=1,H=T,W=F。
x A ∈ R B × T × F → R B × 1 × T × F (3) \boldsymbol{x}_{A} \in \mathbb{R}^{B \times T \times F} \rightarrow \mathbb{R}^{B \times 1 \times T \times F} \tag{3} xA∈RB×T×F→RB×1×T×F(3)
点云。假设一个样本包含P个点,每个点由 X / Y / Z \mathrm{X} / \mathrm{Y} / \mathrm{Z} X/Y/Z坐标表示,我们使用一系列的conv层来生成三视图投影[78]。我们将生成的投影的分辨率配置为224,这样 H = W = 224 , C ′ = 3 H=W=224, C^{\prime}=3 H=W=224,C′=3。
x P ∈ R B × P × 3 → R B × 3 × 224 × 224 . (4) \boldsymbol{x}_{P} \in \mathbb{R}^{B \times P \times 3} \rightarrow \mathbb{R}^{B \times 3 \times 224 \times 224} .\tag{4} xP∈RB×P×3→RB×3×224×224.(4)
视频。我们将视频表示为 N F N_{F} NF帧,每帧都是 3 × h × w 3 \times h \times w 3×h×w图像。我们通过将帧维度合并到高度和宽度维度来重塑它,这样就可以将其视为由N_{F}帧拼接而成的单个图像。例如,在我们的实验中, N F = 16 , h = w = 224 N_{F}=16,h=w=224 NF=16,h=w=224,因此 H = W = 896 H=W=896 H=W=896。一般来说,
x V ∈ R B × N F × 3 × h × w → R B × 3 × H × W s.t. H W h w = N F (5) \boldsymbol{x}_{V} \in \mathbb{R}^{B \times N_{F} \times 3 \times h \times w} \rightarrow \mathbb{R}^{B \times 3 \times H \times W} \text { s.t. } \frac{H W}{h w}=N_{F} \tag{5} xV∈RB×NF×3×h×w→RB×3×H×W s.t. hwHW=NF(5)
4、UniRepLKNet用于图像识别
ImageNet分类。遵循ConvNeXt [40],我们使用广泛采用的300个epoch的收据在ImageNet-1K上训练UniReplkNet-A/F/P/N/T/S;我们使用90个epoch的收据在ImageNet-22K上预训练UniReplkNet-S/B/L/XL,并用ImageNet-1K fine-tune 30个epochs(详情请参阅附录)。我们的目标是开发能在高实际速度下运行的模型,我们使用相同A100 GPU的批量大小为128进行评估实际吞吐量。表6显示了ImageNet-1K验证集上的top-1准确率,结果按吞吐量进行排序。为了更好的可读性,我们将结果分为七个部分。1)UniReplkNet-A/F在准确率上比ConvNeXt-V2-A/F高出0.8/0.6,运行速度分别快19%/17%。2)UniReplkNet-P/N比FastViT-T12/S12和ConvNeXt V2-P/N具有明显优势。3)UniReplkNet-T优于多个小级别竞争对手。4)UniReplkNet-S在速度和准确率上均优于一系列小级别和基础级别模型,并且运行速度几乎与InternImage-T相同。5)经过ImageNet-22K预训练后,UniReplkNet-S的准确率甚至接近ReplkNet-31L,运行速度是后者的3倍。UniReplkNet-B明显优于CoAtNet-2和DeiT III-B。UniReplkNet-L在准确率和吞吐量上均优于InternImage-L。6)在XL级别上,UniReplkNet-XL在准确率和吞吐量上均优于CoAtNet-3和DeiT III-L,运行速度超过2倍和3倍。
COCO对象检测和实例分割。我们将预训练的UniReplkNets用作Cascade Mask R-CNN的骨干网络,并采用标准的3x(36个epoch)训练配置与MMDetection[5]。表7显示,UniReplkNet优于Swin、ConvNeXt、ReplkNet和SLaK,它们分别是ViTs、现代中等核卷积网络和现有大核卷积网络的代表,并且与具有可变形卷积的最新强大架构InternImage [67]具有可比的性能。
ADE20K语义分割。我们将预训练的UniReplkNets用作ADE20K [80]上的U-PerNet [74]的骨干网络,并采用标准的160k个迭代训练收据与MMSegmentation [7]。表8报告了验证集上的mIoU。令人印象深刻的是,UniReplkNet优于InternImage和其他模型。
5、对其他模态的通用感知
时间序列。 按照Corrformer [71]的做法,我们在Global Temperature and Wind Speed Forecasting challenge 4上进行了实验,使用从国家环境信息中心(NCEI)收集的数据集。 这个庞大的数据集包含来自3850个站点的小时平均风速和温度数据,这些站点的地理范围和密度不同,跨越2019年至2021年。 为了与Corrformer进行公平比较,我们使用了其嵌入层(如第3.4节介绍的)和解码器,并仅替换了其编码器Transformer。 我们还将UniReplkNet-S与广泛的统计和数值方法进行了比较。 表9中的观察结果如下: 1)就预测精度而言,UniReplkNet提供了新的最先进的性能,实现了最低的误差,即MSE为7.602、MAE为1.832、MSE为3.865和MAE为1.301,用于预测全球温度和风速。 2)就效率而言,UniReplkNet使用的参数比现有的深度学习方法少。 特别值得注意的是,UniReplkNet是一个通才模型,在精度和效率上都优于时间序列专家,如Pyraformer [35]和Corrformer [71]。 UniReplkNet的重大优势为时间序列预测中的架构讨论开辟了新的途径,为Transformer模型提供了可行的替代方案。
音频。我们使用Speech Commands V2 [69],其中包含105,829个一秒钟的35个常见语音命令的录音。表10显示,UniReplkNet无缝适应音频模态,无需预训练即可提供令人印象深刻的准确率98.5%。与基于变压器的AST [15]和Audio-MAE [26]等方法相比,UniReplkNet参数更少。与以前的针对音频设计的ConvNets相比,UniReplkNet在不要求任何结构定制的情况下实现了更好的性能,突显了ConvNets在音频识别领域的未开发潜力。
视频。我们在Kinetics-400 [29]上进行实验,它包含24万个训练视频和2万个验证视频,涵盖400个类别的动作识别。尽管其最高准确率54.8%落后于MViT [33]和TimeSFormer [2]等最先进架构,但我们要指出的是,领先模型都是专门针对视频进行训练的,并且使用额外数据进行预训练,而UniReplkNet是一个通用模型,从头开始训练。与最新的通用方法(如ImageBind [14]和Meta-Transformer [78])相比,UniReplkNet在准确性和不需要预训练方面都表现出优越性。这一观察突显了当前通用架构在视频领域实现高可转移性的挑战,这可能需要比我们的极简方法(将帧布置成一个单一图像)更好的预处理方案。
点云。 我们通过评估UniReplkNet在3D模式学习方面的能力,来探索其多功能性,将其扩展到图像和音频的传统2D信号之外。我们使用ModelNet-40 [73] 3D形状分类任务,其中包含9843/2468个来自40个类别的CAD模型的训练/验证样本。表12显示,UniReplkNet的总体准确率(OA)为93.2%,平均准确率(mAcc)为90.3%,超过了现有的专门针对点云的ConvNet模型。这些结果突显了在该领域进一步开发ConvNets的潜力。
内核大小对性能的影响。为了研究不同内核大小对性能的影响,我们将上述模型的主干替换为其他ConvNets或具有较小内核的UniReplkNet。我们采用了相同的模态特定预处理方法和训练配置,以便进行公平比较。我们选择ResNet-101作为具有可比较参数的小内核ConvNet的代表。表13显示,UniReplkNet在所有任务中均以明显优势优于其他模型,表明大内核设计对于通用感知至关重要,至少在我们的特定案例中是这样。
6、结论
本文提出了四种大核卷积网络的架构指南和一种名为UniRepLKNet的架构,该架构不仅在图像识别方面表现出领先的性能,甚至在音频和时间序列数据等模态上也取得了显著的结果,在这些模态上超过了多个专业模型。这样的结果不仅标志着ConvNet在其原始领域的"回归",还展示了大核ConvNet "征服"新领域的潜力,突出了它们在不同模态和任务中的适应性和广泛效用。
补充材料
附录A:从空洞卷积到非空洞大内核卷积的一般变换
由于忽略输入中的像素相当于在卷积核中插入额外的零项,因此可以将具有小内核的膨胀卷积层等效转换为具有稀疏大内核的非膨胀层。用k表示内核大小,用r表示膨胀率,通过插入零项,相应非膨胀层的内核大小将是 ( k − 1 ) r + 1 (k-1)r+1 (k−1)r+1,为简洁起见,我们将其称为等效内核大小。
正如论文中所讨论的那样,为了消除膨胀Reparam块中额外膨胀卷积层的推理成本,我们提出将整个块等效转换为单个非膨胀卷积层进行推理。如前所述,令k和r分别表示内核大小和膨胀率,从膨胀卷积层的内核 W ∈ R k × k W∈R^{k×k} W∈Rk×k到非膨胀层的内核 W ′ ∈ R ( ( k − 1 ) r + 1 ) × ( ( k − 1 ) r + 1 ) \mathrm{W}^{\prime} \in \mathcal{R}^{((k-1) r+1) \times((k-1) r+1)} W′∈R((k−1)r+1)×((k−1)r+1)的转换可以通过以r为步幅的转置卷积和恒等内核 I ∈ R 1 × 1 \mathrm{I}∈R^{1×1} I∈R1×1实现,其中恒等内核是标量1但被视为核张量。即:
W ′ = conv_transpose 2 d ( W , I , stride = r ) . (6) \mathrm{W}^{\prime}=\text { conv\_transpose } 2 \mathrm{~d}(\mathrm{~W}, \mathrm{I}, \text { stride }=r) \text {. } \tag{6} W′= conv_transpose 2 d( W,I, stride =r). (6)
在具有多通道卷积层的一般情况下,令输入通道数、输出通道数和组数为cin, cout, g,我们用形状为 c out × c in g × k × k c_{\text {out }} \times \frac{c_{\text {in }}}{g} \times k \times k cout ×gcin ×k×k的4D张量表示内核。
1)对于多通道深度卷积层,从2D到4D的转换很容易——恒等核 I I I被视为4D张量 I ∈ R 1 × 1 × 1 × 1 I∈R^{1×1×1×1} I∈R1×1×1×1,我们仍然按照函数6来通过转置卷积推导出等效核。
2)对于非深度卷积的情况(即 g < c in g<c_{\text {in }} g<cin ),可以将核分割成多个切片(每个切片都可以视为一个深度卷积核),将切片分别转换,并将结果非膨胀切片连接起来。我们在PyTorch中给出了代码(图4),并给出了一个测试案例来证明等效性(图5)。
附录B:训练配置
我们列出了图像分类、目标检测和语义分割的详细训练配置。我们将公开提供一个可重复使用的训练脚本和每个模型的训练权重。
ImageNet图像分类。第4节中仅在ImageNet-1K上显示的结果的训练配置如表14所示。这些配置类似于常见的实践。对于第3节的实验,我们使用相同的配置,除了训练轮次设置为100轮,drop路径率设置为0.1。对于在ImageNet-22K上预训练然后在ImageNet-22K上微调的模型,配置如表14所示。请注意,我们遵循与ConvNeXt-S/B进行公平比较的ConvNeXt的配置,以及与InternImage-L/XL进行公平比较的InternImage的配置(没有报告使用ImageNet 22K预训练的InternImage-S/B的结果)。
COCO对象检测。为了进行公平比较,我们遵循常见实践[37,40],使用预训练权重初始化主干网络,并默认使用3×(36个周期)的计划训练模型。较短的边被调整为480-800像素,而较长的边不超过1333像素。所有模型都以批量大小为16和AdamW [41]优化器进行训练,初始学习率为 1 × 1 0 − 4 1×10^{-4} 1×10−4。我们将公开释放MMDetection框架中使用的训练配置文件。
ADE20K语义分割。我们在ADE20K数据集[79]上评估UniReplkNet模型,并使用预训练的分类权重进行初始化。学习率初始化为 1 × 1 0 − 4 1×10^{-4} 1×10−4,并使用多项式衰减调度进行衰减,衰减指数为1.0。与之前的方法[37,40]一样,对于ImageNet-1K预训练的模型,裁剪大小设置为512,对于ImageNet-22K预训练的模型,裁剪大小设置为640。所有分割模型都以批量大小为16进行训练,迭代次数为160k次。我们将公开释放在MMSegmentation框架中使用的训练配置文件。
RT-DERT官方测试结果
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:02<00:00, 5.36it/s]all 230 1412 0.882 0.907 0.93 0.667c17 230 131 0.945 0.926 0.986 0.794c5 230 68 0.857 0.881 0.949 0.783helicopter 230 43 0.951 0.907 0.954 0.573c130 230 85 0.985 0.976 0.983 0.658f16 230 57 0.827 0.924 0.925 0.631b2 230 2 0.963 1 0.995 0.553other 230 86 0.86 0.788 0.884 0.464b52 230 70 0.889 0.943 0.942 0.779kc10 230 62 0.971 0.984 0.985 0.82command 230 40 1 0.958 0.995 0.759f15 230 123 0.952 0.968 0.99 0.688kc135 230 91 0.976 0.911 0.941 0.662a10 230 27 0.892 0.914 0.907 0.419b1 230 20 0.749 0.95 0.936 0.614aew 230 25 0.921 0.938 0.95 0.739f22 230 17 0.891 0.965 0.99 0.703p3 230 105 1 0.945 0.967 0.768p8 230 1 0.798 1 0.995 0.647f35 230 32 0.903 0.872 0.951 0.496f18 230 125 0.946 0.944 0.95 0.78v22 230 41 0.983 0.927 0.99 0.645su-27 230 31 0.924 0.968 0.992 0.833il-38 230 27 0.986 0.926 0.981 0.736tu-134 230 1 0.794 1 0.995 0.895su-33 230 2 0 0 0 0an-70 230 2 0.861 1 0.995 0.796tu-22 230 98 0.996 0.969 0.994 0.788
Speed: 0.3ms preprocess, 5.3ms inference, 0.0ms loss, 0.5ms postprocess per image
改进一:
改进方法
测试结果
rtdetr-l summary: 1138 layers, 42219920 parameters, 0 gradientsClass Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:03<00:00, 4.10it/s]all 230 1412 0.886 0.956 0.965 0.695c17 230 131 0.923 0.969 0.972 0.786c5 230 68 0.866 0.926 0.928 0.774helicopter 230 43 0.881 0.907 0.964 0.617c130 230 85 0.916 0.976 0.973 0.66f16 230 57 0.917 0.912 0.939 0.632b2 230 2 0.658 1 0.995 0.715other 230 86 0.876 0.86 0.898 0.479b52 230 70 0.866 0.943 0.941 0.767kc10 230 62 0.895 0.952 0.979 0.818command 230 40 0.975 0.986 0.995 0.765f15 230 123 0.886 0.992 0.99 0.672kc135 230 91 0.951 0.956 0.958 0.67a10 230 27 0.86 0.681 0.717 0.267b1 230 20 0.98 0.95 0.947 0.649aew 230 25 0.863 0.96 0.979 0.752f22 230 17 0.929 1 0.995 0.669p3 230 105 0.97 0.981 0.985 0.779p8 230 1 0.5 1 0.995 0.597f35 230 32 1 0.87 0.96 0.465f18 230 125 0.925 0.989 0.986 0.815v22 230 41 0.927 1 0.994 0.653su-27 230 31 0.948 1 0.993 0.84il-38 230 27 0.836 1 0.995 0.77tu-134 230 1 0.93 1 0.995 0.796su-33 230 2 0.881 1 0.995 0.697an-70 230 2 0.815 1 0.995 0.86tu-22 230 98 0.941 0.99 0.993 0.796
Speed: 0.3ms preprocess, 10.8ms inference, 0.0ms loss, 0.3ms postprocess per image
总结
这篇关于RT-DERT改进策略:UniRepLKNet,大核卷积的最新成果,轻量高效的首选(全网首发)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!