Wavelet Convolutions for Large Receptive Fields

大感受野的小波卷积

在这里插入图片描述

论文链接:https://arxiv.org/abs/2407.05848v2

项目链接:https://github.com/BGU-CS-VIL/WTConv

Abstract

近年来,人们一直试图增加卷积神经网络(CNN)的核大小,以模拟Vision Transformer(ViT)的全局感受野自注意块。然而,这种方法在达到全局感受野之前很快就达到了上限和饱和。在这项工作中,我们证明了通过利用小波变换(WT),实际上可以在不受过度参数化影响的情况下获得非常大的感受野,例如,对于k × k的感受野,所提出的方法中可训练参数的数量仅随k呈对数增长。所提出的层,称为WTConv,可以用作现有架构中的临时替代品,产生有效的多频响应。并随着感受野的大小优雅地缩放。我们展示了在ConvNeXt和MobileNetV2架构中用于图像分类的WTConv层的有效性,以及用于下游任务的骨干,并展示了它产生额外的属性,例如对图像损坏的鲁棒性和对纹理形状的响应增加。

1 Introduction

在过去的十年中,卷积神经网络(CNN)在很大程度上主导了计算机视觉的许多领域。尽管如此,随着最近出现的Vision Transformer (ViT)[12],它是自然语言处理中使用的Transformert架构[59]的一种改编,CNN面临着激烈的竞争。具体地说,vit现在被认为比cnn有优势,主要归因于它们的多头自注意层。这一层促进了特征的全局混合,而卷积的构造限制了特征的局部混合。因此,最近的一些工作试图弥合CNN和ViT之间的性能差距。Liu等[38]重构了ResNet架构及其训练例程,以跟上Swin Transformer[37]。[38]中的改进之一是增加卷积的核大小。然而,根据经验,该方法在核大小为7 × 7时达到饱和,这意味着进一步增加核并没有帮助,甚至在某些时候开始恶化性能。虽然天真地将大小增加到7 × 7以上是没有用的,但Ding等人[11]已经表明,如果构造得更好,可以从更大的核中得到好处。即使是这样,然而,最终核变得过度参数化,性能在达到全局感受野之前就饱和了。

[11]中分析的一个有趣的特性是,使用更大的核会使CNN更具形状偏差,这意味着它们捕获图像中低频的能力得到了提高。这一发现有些令人惊讶,因为卷积层通常倾向于响应输入中的高频[17,19,56,61]。这与注意头不同,注意头被认为更适应低频,其他研究也证明了这一点[44,45,56]。

上面的讨论提出了一个自然的问题:我们能否利用信号处理工具来有效地增加卷积的感受野而不受过度参数化的影响?换句话说,我们是否可以拥有非常大的滤波器——例如,具有全局感受野——并且仍然可以提高性能?本文对这个问题给出了一个肯定的答案。我们提出的方法利用小波变换(WT)[9],这是一种来自时频分析的成熟工具,可以使卷积的感受野很好地扩大,并且通过级联,还可以引导CNN更好地响应低频。在某种程度上,我们基于WT解决方案的动机是(不像傅里叶变换)它保留了一些空间分辨率。这使得空间操作(例如,卷积)在小波域更有意义。

更具体地说,我们提出了WTConv,这是一个使用级联WT分解并执行一组小核卷积的层,每个卷积都关注输入在越来越大的感受野中的不同频带。这个过程允许我们在只添加少量可训练参数的同时,更加强调输入中的低频。事实上,对于k × k的感受野,我们可训练参数的数量仅随k呈对数增长。这一事实与最近一些相应增长为二次增长的方法相反,使我们能够获得具有前所未有的有效感受野(ERF)[40]规模的有效CNN(见图1)。

在这里插入图片描述

我们将WTConv设计为深度卷积的直接替代品,可以在任何给定的CNN架构中使用,而无需额外修改。我们通过将WTConv整合到ConvNeXt[38]中进行图像分类来验证WTConv的有效性,证明了它在基本视觉任务中的实用性。进一步利用ConvNeXt作为骨干,我们将评估扩展到更复杂的应用中:在UperNet[65]中使用它进行语义分割,在级联掩码R-CNN[2]中使用它进行对象检测。此外,我们还分析了WTConv为CNN提供的额外好处。

总而言之,我们的主要贡献是:

  • 一个新的层,称为WTConv,它使用WT有效地增加卷积的感受野。
  • WTConv被设计为给定CNN内的插入式替代(用于深度卷积)。
  • 广泛的实证评估表明,WTConv在几个关键的计算机视觉任务中提高了CNN的结果。
  • 分析WTConv对CNN的可扩展性、鲁棒性、形状偏差和ERF的贡献。

2 相关工作

2.1 深度学习中的小波变换

小波变换[9]是一种强大的信号处理和分析工具,自20世纪80年代以来得到了广泛的应用。在经典环境中取得成功之后,最近小波变换也被纳入神经网络架构中,用于各种任务。Wang等[63]从心电信号的时频分量中提取特征。Huang等人[32]和Guo等人[22]预测输入图像的小波高频系数,以重建更高分辨率的输出。Duan等[13]和Williams和Li[64]使用WT作为CNN内的池化算子。Gal等人[16]、Guth等人[23]和Phung等人[46]在生成模型中使用小波来增强生成图像的视觉质量并提高计算性能。Finder等人[14]利用小波压缩特征映射以获得更高效的CNN。Saragadam等人[51]使用小波作为隐式神经表征的激活函数。

与我们的工作更相关的是,Liu等人[35]和Alaba等人[1]在改进的U-Net架构[49]中使用小波变换进行下采样,并使用逆小波变换进行上采样。在与我们相关的另一项工作中,Fujieda等人[15]提出了一种DenseNet类型的架构,该架构使用小波将输入中的较低频率重新引入到后面的层。Chen等人[3]虽然与小波无关,但他们提出了对多分辨率输入进行卷积的方法,首先将图像分离为高分辨率和低分辨率,并在网络上进行两者之间的信息交换。这些工作举例说明了对输入的低频分量和高频分量分别进行卷积的好处,可以获得更丰富的特征图。这个特性也激励着我们的工作。然而,[1,15,35]中的方法是高度定制的架构,无法在其他CNN架构中无缝使用,而[3]则侧重于计算效率。相比之下,我们提出了一个更轻、更易于使用的线性层,可以用作深度卷积的替代层,从而改善了感受野。重要的是,我们的方法可以适用于任何使用深度卷积的网络,因此不局限于单个任务。

2.2 大核卷积

在卷积配置方面,VGG[52]通过使用3 × 3卷积为现代CNN设定了标准,牺牲单层感受野的大小来增加网络的深度(从10层以下到20层左右)。从那时起,随着计算量的增加和体系结构的改进,CNN变得更加深入,但核大小参数在很大程度上没有被探索。

传统卷积的一个主要变化是引入了可分离卷积[58,62]。可分离卷积由Xception[5]和MobileNet[30]推广,并在大多数现代架构中采用[38,50]。在这种方法中,每个通道执行空间卷积(即,深度方向),跨通道操作使用1 × 1核(即,点方向)执行。这种卷积的分离还在核大小和通道维度(即参数和操作的数量)之间创建了一定程度的分离。每个核大小为k和c通道的空间卷积现在只有k2·c个参数(而不是k2·c2),这使得它可以更好地随k缩放,尽管仍然是二次的。

同时,将具有非局部自注意层的Transformer引入视觉任务[12,37]通常比局部混合卷积产生更好的结果。这与前面提到的最近使用的可分离卷积一起,重新点燃了探索CNN更大核的兴趣。特别是,Liu等人[38]重新研究了流行的ResNet架构[26],包括对不同核大小的经验比较,得出性能在核大小为7×7时饱和的结论。Trockman和Kolter[55]试图仅使用卷积来模拟ViT架构,并通过使用9 × 9卷积来取代注意力(或“混合器”)组件显示出令人印象深刻的结果。Ding等人[11]提出,简单地增加核的大小会损害卷积的局部性。因此,他们建议将一个小核与一个大核并行使用,然后对它们的输出求和。利用这种技术,他们成功地训练了核大小达到31 × 31的CNN。Liu等人[36]通过将其分解为一组并行的51×5和5×51核,成功地将其核的大小增加到51×51。此外,他们在扩大网络宽度的同时引入了稀疏性。然而,使用更多通道(具有稀疏性)的想法与增加核大小是正交的。虽然我们的工作部分地从[11,36]中获得灵感,但在我们的案例中,提议的层汇总了输入的各种频率分量的输出,捕获了多个感受野。

实现全局感受野的另一种方法是在傅里叶变换之后在频域执行空间混合(例如[4,24,47])。然而,傅里叶变换将输入转换为完全在频域中表示,因此它无法学习邻近像素之间的局部相互作用。相比之下,WT在将图像分解到不同频带的同时成功地保留了一些局部信息,使我们能够对不同级别的分解进行操作。此外,基于傅里叶的方法倾向于依赖于特定大小的权重输入,因此很难用于下游任务。一项并行工作[20]利用神经隐式函数在频域进行有效混合。

3 Method

在本节中,我们首先描述如何使用卷积执行小波变换,然后我们提出在小波域中执行卷积的解决方案,称为WTConv。我们还描述了WTConv的理论效益,并分析了其计算成本。

3.1 绪论:小波变换作为卷积

在这项工作中,我们采用Haar小波变换,因为它是高效和直接的[14,16,32]。然而,我们注意到我们的方法并不局限于它,因为可以使用其他小波基,尽管计算成本增加。

给定图像X,一个空间维度(宽度或高度)上的一级Haar WT由核 [ 1 , 1 ] / 2 [1,1]/\sqrt{2} [1,1]/2 [ 1 , − 1 ] / 2 [1,-1]/\sqrt{2} [1,1]/2 的深度卷积给出,然后是因子2的标准下采样算子。为了执行2D Haar WT,我们在两个维度上组合操作,使用以下四个滤波器,产生一个步幅为2的深度卷积:
f L L = 1 2 [ 1 1 1 1 ] , f L H = 1 2 [ 1 − 1 1 − 1 ] , f H L = 1 2 [ 1 1 − 1 − 1 ] , f H H = 1 2 [ 1 − 1 − 1 1 ] . (1) f_{LL}=\frac{1}{2}\begin{bmatrix}1&1\\1&1\end{bmatrix}, f_{LH}=\frac{1}{2}\begin{bmatrix}1-1\\1-1\end{bmatrix}, f_{HL}=\frac{1}{2}\begin{bmatrix}1&1\\-1&-1\end{bmatrix}, f_{HH}=\frac{1}{2}\begin{bmatrix}1-1\\-1&1\end{bmatrix}. \tag{1} fLL=21[1111],fLH=21[1111],fHL=21[1111],fHH=21[1111].(1)
注意, f L L f_{LL} fLL是一个低通滤波器,而 f L H f_{LH} fLH f H L f_{HL} fHL f H H f_{HH} fHH是一组高通滤波器。对于每个输入通道,卷积的输出
[ X L L , X L H , X H L , X H H ] = C o n v ( [ f L L , f L H , f H L , f H H ] , X ) (2) [X_{LL},X_{LH},X_{HL},X_{HH}]=\mathrm{Conv}([f_{LL},f_{LH},f_{HL},f_{HH}],X) \tag{2} [XLL,XLH,XHL,XHH]=Conv([fLL,fLH,fHL,fHH],X)(2)
有四个通道,每个通道(在每个空间维度上)的分辨率是X的一半。 X L L X_{LL} XLL是X的低频分量, X L H X_{LH} XLH X H L X_{HL} XHL X H H X_{HH} XHH是X的水平、垂直和对角高频分量。

由于公式1中的核构成一个标准正交基,通过转置卷积得到逆小波变换(IWT):
X = Conv-transposed( [ f L L , f L H , f H L , f H H ] , [ X L L , X L H , X H L , X H H ] ) . (3) \begin{aligned}X&=\text{Conv-transposed(}\left[f_{LL},f_{LH},f_{HL},f_{HH}\right],\\&[X_{LL},X_{LH},X_{HL},X_{HH}]).\end{aligned} \tag{3} X=Conv-transposed([fLL,fLH,fHL,fHH],[XLL,XLH,XHL,XHH]).(3)
然后通过递归分解低频分量给出级联小波分解。分解的每一层由
X L L ( i ) , X L H ( i ) , X H L ( i ) , X H H ( i ) = W T ( X L L ( i − 1 ) ) (4) X_{LL}^{(i)},X_{LH}^{(i)},X_{HL}^{(i)},X_{HH}^{(i)}=\mathrm{WT}(X_{LL}^{(i-1)}) \tag{4} XLL(i),XLH(i),XHL(i),XHH(i)=WT(XLL(i1))(4)
其中 X L L ( 0 ) = X X^{ (0)}_{ LL} = X XLL(0)=X i i i为当前水平。这导致频率分辨率增加,而较低频率的空间分辨率降低。

3.2 小波域的卷积

如§2.2所述,增加卷积层的核大小会以二次方式增加参数的数量(因此,自由度)。为了缓解这种情况,我们提出以下建议。首先,使用小波变换对输入的低频和高频内容进行滤波和缩小。然后,在使用IWT构造输出之前,对不同的频率映射执行一个小核深度卷积。换句话说,这个过程由
Y = I W T ( C o n v ( W , W T ( X ) ) ) , (5) Y=\mathrm I\mathrm W\mathrm T(\mathrm C\mathrm on\mathrm v(W,\mathrm W\mathrm T(X))), \tag{5} Y=IWT(Conv(W,WT(X))),(5)
其中,X是输入张量,W是k × k深度核的权张量,其输入通道数是X的四倍。该操作不仅分离了频率分量之间的卷积,而且允许较小的核在原始输入的更大区域内操作,即增加其感受野w.r.t.输入。如图2所示。

在这里插入图片描述

我们采用这个1级组合操作,并通过使用与公式4相同的级联原理进一步增加它。过程由下式给出:
X L L ( i ) , X H ( i ) = W T ( X L L ( i − 1 ) ) , Y L L ( i ) , Y H ( i ) = C o n v ( W ( i ) , ( X L L ( i ) , X H ( i ) ) ) , \begin{align} &X_{LL}^{(i)},X_{H}^{(i)}=\mathrm{WT}(X_{LL}^{(i-1)}),\tag{6}\\ &Y_{LL}^{(i)},Y_{H}^{(i)}=\mathrm{Conv}(W^{(i)},(X_{LL}^{(i)},X_{H}^{(i)})),\tag{7} \end{align} XLL(i),XH(i)=WT(XLL(i1)),YLL(i),YH(i)=Conv(W(i),(XLL(i),XH(i))),(6)(7)
其中 X L L ( 0 ) X^{ (0)}_{ LL} XLL(0)是该层的输入, X H ( i ) X^{(i)}_{ H} XH(i)表示第3.1节中描述的第i层的所有三个高频映射。

为了组合不同频率的输出,我们使用WT及其逆是线性运算的事实,这意味着IWT(X + Y) = IWT(X) + IWT(Y)。因此,执行
Z ( i ) = I W T ( Y L L ( i ) + Z ( i + 1 ) , Y H ( i ) ) (8) Z^{(i)}=\mathrm{IWT}(Y_{LL}^{(i)}+Z^{(i+1)},Y_{H}^{(i)}) \tag{8} Z(i)=IWT(YLL(i)+Z(i+1),YH(i))(8)
得到不同层次卷积的总和,其中 Z ( i ) Z^{(i)} Z(i)是从第 i i i层开始的汇总输出。这与[11]一致,其中两个不同大小的卷积输出求和作为输出。

与[11]相反,我们不能对Y (i) LL, Y (i) H的每一个进行归一化,因为它们的单独归一化并不对应于原始域的归一化。相反,我们发现仅执行信道缩放来衡量每个频率分量的贡献就足够了。图3显示了2级小波变换的WTConv。该算法在附录A中提供。

在这里插入图片描述

3.3 使用WTConv的好处

在给定的CNN中加入WTConv有两个主要的技术优势。首先,WT的每一层都增加了层的感受野的大小,而可训练参数的数量只增加了一点点。也就是说,对于每一层,WT的级联频率分解,加上一个固定大小的核,k,允许参数的数量在层数( ℓ ⋅ 4 ⋅ c ⋅ k 2 \ell\cdot4\cdot c\cdot k^{2} 4ck2)中线性扩展,而感受野呈指数增长( 2 ℓ ⋅ k 2^{\ell}\cdot k 2k)。

第二个好处是,构建WTConv层可以比标准卷积更好地捕获低频。这是因为输入低频的重复WT分解强调了它们,增加了层的相应响应。这一讨论补充了卷积层已知会对输入中的高频做出响应的分析[19,45]。通过利用多频率输入上的紧凑核,WTConv层将附加参数放在最需要的地方。

除了在标准基准测试中产生改进的结果之外,这些技术优势还转化为与大核方法相比网络可扩展性的改进,鲁棒性w.r.t.损坏和分布转移,以及对形状而不是纹理的响应。我们在§4.4中经验地证实了这些假设。

3.4 计算成本

就浮点运算(FLOPs)而言,深度卷积的计算成本为
C ⋅ K W ⋅ K H ⋅ N W ⋅ N H ⋅ 1 S W ⋅ 1 S H , (9) C\cdot K_W\cdot K_H\cdot N_W\cdot N_H\cdot\frac{1}{S_W}\cdot\frac{1}{S_H}, \tag{9} CKWKHNWNHSW1SH1,(9)
式中,C为输入通道数,( N W N_W NW,$ N_H )为输入的空间维度,( )为输入的空间维度,( )为输入的空间维度,(K_W$, K H K_H KH)为核大小,( S W S_W SW S H S_H SH)为每个维度的步幅。例如,考虑一个空间维度为512 × 512的单通道输入。对大小为7 × 7的核执行卷积的结果是12.8M FLOPs,而对大小为31 × 31的核执行卷积的结果是252M FLOPs。考虑到WTConv的卷积集,每个小波域卷积都是在减少了2倍的空间维度上执行的,尽管通道数量是原始输入的四倍。这将导致FLOP计数为
C ⋅ K W ⋅ K H ⋅ ( N W ⋅ N H + ∑ i = 1 ℓ 4 ⋅ N W 2 i ⋅ N H 2 i ) , (10) C\cdot K_W\cdot K_H\cdot\left(N_W\cdot N_H+\sum_{i=1}^\ell4\cdot\frac{N_W}{2^i}\cdot\frac{N_H}{2^i}\right), \tag{10} CKWKH(NWNH+i=142iNW2iNH),(10)
其中, ℓ \ell 为WT的阶数。继续前面输入大小512×512的例子,对核大小为5 ×5的3级WTConv(覆盖40 × 40 =(5·2 3)×(5·2 3)的感受野)执行多频率卷积,得到15.1M FLOPs。当然,还需要添加WT计算本身的成本。我们注意到,当使用Haar基时,WT可以以一种高效的方式实现[14]。也就是说,对于使用标准卷积操作的简单实现,WT的FLOP计数为
4 C ⋅ ∑ i = 0 ℓ − 1 N W 2 i ⋅ N H 2 i , 4C\cdot\sum_{i=0}^{\ell-1}\frac{N_W}{2^i}\cdot\frac{N_H}{2^i}, 4Ci=012iNW2iNH,
由于四个核的大小为2×2,每个空间维度的步长为2,并且对每个输入通道进行操作(参见§3.1)。同样,类似的分析表明,IWT具有与WT相同的FLOP计数。继续这个例子,这导致WT和IWT的3个级别增加了2.8M FLOPs,总计17.9M FLOPs,这仍然比类似感受野的标准深度卷积节省了大量。

4 Results

在本节中,我们将在几种设置中实验WTConv。首先,在§4.1中,我们使用WTConv训练和评估ImageNet-1K[10]分类的ConvNeXt[38]。然后,在§4.2和§4.3中,我们使用训练好的模型作为下游任务的主干。最后,在§4.4中,我们进一步分析了WTConv对网络的贡献。

4.1 ImageNet-1K分类

对于ImageNet-1K[10],我们使用ConvNeXt[38]作为基础架构,并用WTConv代替7 × 7深度卷积。ConvNeXt作为ResNet的扩展,主要由四个阶段组成,阶段之间有降采样操作。对于这些阶段,我们将WTConv的级别设置为[5,4,3,2],核大小设置为5×5,以便在输入大小为224 × 224的每一步实现全局感受野。我们使用了120次和300次的训练计划(详见附录B)。

在这里插入图片描述

表1显示了120 epoch调度的结果。由于所有网络都使用相同的基本ConvNeXt-T架构,因此我们报告了深度卷积(标记为D-W)的参数数量。请注意,为了公平的比较,我们只使用深度核分解来报告SLaK和VAN的结果,因为我们只比较增加感受野的效果。我们强调,在得分最高的方法中,WTConv获得了最好的结果,同时也是参数效率最高的方法。此外,它以不到GFNet的一半的参数数量实现了全局感受野。

在这里插入图片描述

表2显示了300 epoch调度的结果,我们将WTConvNeXt与Swin[37]和ConvNeXt[38]进行了比较。表1和表2都表明,将WTConv引入到ConvNeXt中,在引入参数和flop仅略有增加的情况下,分类精度得到了显著提高。例如,从ConvNeXt-S移动到ConvNeXt-B增加39M参数和6.7 GFLOPs,以获得0.7%的精度增益,而移动到WTConvNeXt-S仅增加4M参数和0.1 GFLOPs,以获得0.5%的精度增益。

4.2 语义分割

我们评估了WTConvNeXt作为用于ADE20K[69]语义分割任务的UperNet[65]的骨干。我们将MMSegmentation[7]用于UperNet的实现、培训和评估。训练遵循ConvNeXt的精确配置,没有任何参数调优。我们分别对§4.1中120和300 epoch的预训练模型使用80K和160K迭代训练方案,并通过单尺度测试报告了平均交联(mIoU)指数。表3给出了结果,并显示使用WTConv时mIoU的改进为0.3-0.6%。

在这里插入图片描述

4.3 目标检测

我们还在COCO数据集[34]上评估了WTConvNeXt作为级联掩码R-CNN[2]的主干。我们使用MMDetection[6]进行级联掩模R-CNN的实现、训练和评估。训练遵循ConvNeXt的精确配置,没有任何参数调优。我们分别对120 epoch和300 epoch的预训练模型使用1x和3x微调计划,并报告框和掩码平均精度(AP)。结果如表4所示,我们看到了相当大的改进,因为APbox和APmask都增加了0.6-0.7%。详细结果见附录F

4.4 WTConv分析

可伸缩性。我们对ImageNet-50/100/200[48,57]上的分类任务构建了一个小规模的可扩展性分析,它们分别是ImageNet[10]的子集,包含50/100/200个类。在本实验中,我们使用MobilenetV2[50],其中每个深度卷积都被替换为RepLK [11], GFNet [47], FFC[4]和提出的WTConv层。我们将WTConv的核大小设置为3 × 3。对于RepLK,我们使用与WTConv的感受野最接近的核大小,例如13 × 13,而2级WTConv的感受野为12 × 12。GFNet和FFC是基于傅里叶的方法。GFnet的全局滤波层每个通道需要h·w个参数,其中(w, h)是输入的空间维度,因此高度过度参数化,特别是在MobileNetV2上,前几层的输入大小为1122。相比之下,FFC在不同频率上使用相同的权重,因此,它不像GFNet那样直接依赖于(w, h)。训练参数见附录B

在这里插入图片描述

结果如表5所示,在增加感受野时,WTConv的尺度优于RepLK。我们假设这是由于没有足够的数据来支持RepLK层的大量可训练参数。这也与[36]对ImageNet-1K的研究结果一致,在RepLK中简单地增加滤波器大小会损害结果。GFNet严重存在过度参数化的问题,结果明显下降。FFC性能更好,尽管有限的混频影响了它的效果。

鲁棒性。我们在ImageNetC/C[28,43]、ImageNet-R[27]、ImageNet-A[29]和ImageNet-Sketch[60]上对分类进行鲁棒性评估。我们报告ImageNet-C的平均损坏错误,ImageNet-C的损坏错误,以及所有其他基准测试的最高精度。我们还评估了损坏情况下COCO的目标检测[42],测量了损坏情况下的平均和相对性能(mPC和rPC)。我们报告了使用§4.1的300 epoch时间表训练的模型的结果,没有修改或微调。

在这里插入图片描述

表6和表7总结了结果。注意,尽管在ImageNet-1K中,WTConvNeXt的精度比ConvNeXt高0.3 - 0.4%,但在大多数鲁棒性数据集中,精度增益都在1%以上,最高可达2.2%。类似的趋势在损坏物体检测中也很明显,这可以用对低频的响应提高来解释[33]。附录G提供了更详细的表格和定性示例。

Shape-bias。我们使用modelvhuman基准[18]来量化形状偏差的改进(即基于形状而不是纹理进行预测的比例)。增加的形状偏差与人类的感知有关,因此被认为是更可取的。

如图4所示的结果证实了我们的假设,即WTConv使网络更具形状偏向性,将“形状”决策的比例提高了8-12%。请注意,即使是较小的WTConvNeXt-T也比较大的ConvNeXt网络对形状的响应更好,尽管后者在ImageNet-1k精度上得分更高。这很可能是由于WTConv引起的对低频的强调增加了,因为形状通常与低频相关,而纹理与高频相关。定量结果见附录E

在这里插入图片描述

有效感受野。我们使用由[11]提供的代码来评估WTConv对ConvNeXt-T的ERF的贡献[40]。理论上,在cnn中,ERF与O(K√L)成正比[40],其中K为核大小,L为网络深度。然而,由于我们在使用较小核的同时为增大的感受野引入了WT,因此当考虑K作为层诱导的感受野的大小时,我们假设它成立。ERF的经验评估包括从ImageNet的验证集中随机抽取50张图像,将其大小调整为1024×1024。然后,对于每个图像,计算每个像素对上一层生成的特征图中心点的贡献,通过梯度测量。结果如图1所示,其中高贡献像素更亮。我们注意到,尽管WTConv的参数比RepLK和SLaK少,但它具有接近全局的ERF。

在这里插入图片描述

消融实验。我们进行了消融研究,以了解WTConv层的不同配置如何影响最终结果。我们在ImageNet-1K上训练了120个epoch的WTConvNeXt-T,如§4.1所述,具有各种配置。首先,我们用不同的WT水平和核大小组合进行实验;注意,ConvNeXt的卷积对分辨率为562、282、142、72的输入进行操作(对于2242输入),允许最大的WT水平分别为5、4、3、2。其次,我们通过每次只使用卷积中的一个高/低集来评估高频和低频分量的贡献。最后,用不同的小波基对模型进行训练。

表8显示了所有描述的配置的结果。在这里,增加级别和核大小通常是有益的。我们还看到,分别使用每个频段可以提高模型的性能;然而,两者都使用是更好的。结果证实Haar WT是足够的,尽管探索其他碱基可能会提高性能。我们把这个留给以后的工作。

在这里插入图片描述

5 Limitations

尽管WTConv层不需要很多FLOP,但在现有框架中,它的运行时间相对较高。这是由于多个顺序操作(WT-conv-IWT)的开销,它可能比计算本身更昂贵。然而,我们注意到,这可以通过使用专门的实现来缓解,例如,在每个级别上并行执行WT和卷积以减少内存读取,或者就地执行WT和IWT以减少内存分配。更多实现细节见附录C

6 Conclusion

在这项工作中,我们利用小波变换引入WTConv,这是深度卷积的替代方案,可以实现更大的感受野,并更好地捕获输入中的低频。使用WTConv,可以以纯卷积的方式配置全局感受野的空间混合。我们的经验证明,WTConv极大地增加了CNN的有效感受野,改善了CNN的形状偏差,使网络对损坏更具鲁棒性,并在各种视觉任务中产生更好的性能。

A The Algorithm

在这里插入图片描述

B Training Parameters

B.1 Imagenet-50/100/200

训练过程类似于[11],使用2-GPU设置,动量为0.9的SGD优化器,每个GPU的批处理大小为32,输入分辨率224×224,权重衰减为4·10−5,5 epoch线性热身,然后进行100 epoch的余弦退火。考虑到GPU的数量,将初始学习率调整为0.025。实现基于[41]。

B.2 ImageNet-1K

我们遵循[11,38]的300 epoch训练计划,其中AdamW[39]动量为0.9,权值衰减为0.05,批量大小为4096,学习率为4.10−3,20 epoch线性热身后进行余弦退火,RandAugment[8],标签平滑[53]系数为0.1,mixup [67] (α = 0.8), CutMix [66] (α = 1.0),随机删除[68](概率为25%),随机深度[31](T/S/B变化的下降路径率分别为10%/40%/50%)。以及衰减因子为0.9999的指数移动平均线(EMA)。我们还提供了一个更短的训练计划(如下[11])的比较,其配置与上面的相似,除了它使用120 epoch,批大小2048,10 epoch热身,没有EMA。

C Naive implementation running times

我们所有实验中使用的实现都是相当幼稚的,可以用它进行许多改进。例如,除了我们在第5节中描述的之外,Haar小波目前在我们的模型中作为正则卷积实现,其中包括FP32乘以1和-1。但是,这些操作可以更改为求和和减法,并且可以同时对所有级别执行,以提高内存读取效率。

使用朴素的实现,我们在GPU预热50批后,使用单个RTX3090对300批大小为64的ConvNeXt和WTConvNeXt的吞吐量进行计时。表9给出了吞吐量,以每秒图像为单位。可以看到,即使使用最原始和未优化的层版本,WTConvNeXt的吞吐量也达到原始网络的66-70%。

在这里插入图片描述

D ImageNet-1K - additional results

为了证明WTConv的兼容性,我们将其合并到两个额外的网络中,GhostNet[25]和EfficientNet[54]。WTConv水平的数量被设置为在每个阶段有一个全局感受野w.r.t.输入大小为224×224。训练程序如§B.2中描述的120次训练计划。结果如表10所示。

在这里插入图片描述

E quantitative shape-bias results

定量形状偏差结果见表11。

F Object detection - additional results

表12给出了COCO目标检测实验的详细结果,详见§4.3。

在这里插入图片描述

G Robustness - additional results

表13和表14分别提供了ImageNet-C和ImageNetC的详细结果。

在这里插入图片描述

在这里插入图片描述

图5、图6、图7和图8是不同类型损坏下的对象检测的定性示例。这些示例表明,当损坏更严重时,WTConvNeXt丢失的细节更少。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的车辆车型检测识别系统(YOLOV5)

界面图: 项目简介: 网络:深度学习网络 yoloV5 软件:PycharmAnaconda 环境:python3.8 opencv PyQt5 torch1.9 文件:训练集8000张图片 测试集1000张图片 系统包含所有文件夹 环境文件 UI文件 功能&a…

Zookeeper快速入门:部署服务、基本概念与操作

文章目录 一、部署服务1.下载与安装2.查看并修改配置文件3.启动 二、基本概念与操作1.节点类型特性总结使用场景示例查看节点查看节点数据 2.文件系统层次结构3.watcher 一、部署服务 1.下载与安装 下载: 一定要下载编译后的文件,后缀为bin.tar.gz w…

PE结构之导出表

导出表结构中各种值的意义 ​​​​​​ 根据函数地址表遍历函数名称RVA表,和上面的图是逆过程 //函数地址表 和当前内存中的位置DWORD AddressOfFunctionsFOA RVAToFOA(LPdosHeader, LPexprotDir->AddressOfFunctions);PDWORD LPFunctionsAddressInMemary (PDWORD)((cha…

ssm基于VUE的图书馆管理系统的设计与实现+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 目 录 III 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环境与技术 3 …

Android终端GB28181音视频实时回传设计探讨

技术背景 好多开发者,在调研Android平台GB28181实时回传的时候,对这块整体的流程,没有个整体的了解,本文以大牛直播SDK的SmartGBD设计开发为例,聊下如何在Android终端实现GB28181音视频数据实时回传。 技术实现 Andr…

基于ESP32的灌溉系统

精准灌溉优化与高效水资源利用:基于IoT的农业解决方案 引言 传统农业实践缺乏实时监控和高效操作,导致效率低下和产量不高。本项目旨在利用物联网(IoT)技术和低成本通信协议,设计一个解决方案来解决这一问题。提出的…

Docker实践与应用举例

目录 1. 引言 2. Docker的基本概念 2.1 什么是Docker容器 2.2 Docker镜像 2.3 Docker架构 3. Docker的应用场景 3.1 开发与测试环境的隔离 3.2 持续集成与持续交付(CI/CD) 3.3 微服务架构 4. Docker的实践案例 4.1 部署Nginx反向代理 4.2 使用…

研发线上事故风险解读之缓存篇

专业在线打字练习平台-巧手打字通,只输出有价值的知识。 一 前言 本文继续基于《线上事故案例集》,进一步深入梳理线上事故缓存使用方面的问题点,重点关注缓存在使用和优化过程中可能出现的问题,旨在为读者提供具有实践指导意义的…

学习如何将Spring Boot Jar包注册成Windows服务

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在开发Spring Boot应用时,我们通常通过命令行或IDE手动启动项目。然而,在生产环境中,为了提升效率和稳定性,我们更希望应用能够自动启动,并且作为Wi…

OpenCV高级图形用户界面(5)获取指定滑动条(trackbar)的当前位置函数getTrackbarPos()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 返回滑动条的位置。 该函数返回指定滑动条的当前位置。 cv::getTrackbarPos() 函数用于获取指定滑动条(trackbar)的当前…

【H2O2|全栈】JS入门知识(二)

目录 JS 前言 准备工作 运算符 算数运算符 比较运算符 自增、自减运算符 逻辑运算符 运算符的优先级 分支语句 if-else语句 switch语句 三元表达式 结束语 JS 前言 本系列博客主要分享JavaScript的基础语法知识,本期为第二期,包含一些简…

Linux基础命令系列一小白必掌握

前言 为了有一个大概的复习框架所以先给出总的思维导图,如图: 目录 1.Linux的目录结构?Linux命令与命令行是什么?Linux命令基础格式? 2.ls命令 3.cd命令 4.mkdir命令 5.touch命令 6.cat命令 7.cp命令 8.mv命令…

大数据开发电脑千元配置清单

大数据开发电脑配置清单 电脑型号HUANANZHI 台式电脑操作系统Windows 11 专业版 64位(Version 23H2 / DirectX 12)处理器英特尔 Xeon(至强) E5-2673 v3 2.40GHz主板HUANANZHI X99-P4T(P55 芯片组)显卡NVIDIA GeForce GT 610 ( 2…

深入剖析递归算法:原理、特点、应用与优化策略

在上一篇文章👉【剖析十大经典二叉树题目】中,运用到了大量的递归算法,故本文将解析递归算法。 目录 💯引言 💯递归算法的定义与原理 ⭐定义 ⭐原理 💯递归算法的特点 ⭐简洁性 ⭐可读性 ⭐通用性 …

linux下编译鸿蒙版boost库

我在上一篇文章中介绍了curl和openssl的编译方式(linux下编译鸿蒙版curl、openssl-CSDN博客),这篇再介绍一下boost库的编译。 一.环境准备 1.鸿蒙NDK 下载安装方式可以参考上篇文章,完毕后NDK的路径为:/home/ubuntu…

Java学习Day47:戏耍黑手道人(项目记录)

1.项目背景 2.技术选择 3.环境搭建 1.创建空项目 创建health_parent父文件用来控制依赖,类型为quickStart 打包方式为,pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。…

信息抽取数据集处理——RAMS

引言 RAMS数据集(RAMS:Richly Annotated Multilingual Schema-guided Event Structure)由约翰斯霍普金斯大学于2020年发布,是一个以新闻为基础的事件抽取数据集。它标注了9,124个事件,涵盖了139种不同的事件类型和65种…

服务端技术架构演进之路

服务端技术架构演进之路 目录 服务端技术架构演进之路 0.架构中常见概念及理解 1.单机架构 2.应用数据分离架构 3.应用服务器集群架构 4.读写分离/主从分离架构 5.冷热分离架构 6.垂直分库架构 7.微服务架构 8.容器编排架构 本文以一个 " 电子商务 " 应…

Android 未来可能支持 Linux 应用,Linux 终端可能登陆 Android 平台

近日,根据 android authority 的消息,Google 正在开发适用于 Android 的 Linux 终端应用,而终端应用可以通过开发人员选项启用,并将 Debian 安装在虚拟机中。 在几周前,Google 的工程师开始为 Android 开发新的 Termi…

应急实战(10):Linux后门帐号

目录 1. Prepare 1.1 部署安全设备 2. Detect 2.1 设备产生告警 3. Contain 4. Eradicate 4.1 删除后门帐号 4.2 加固弱口令帐号 5. Recover 5.1 恢复帐号登录 6. Follow-Up 6.1 修改登录端口 6.2 开启命令记录 1. Prepare 1.1 部署安全设备 部署主机安全产品:牧云H…