SCConv:用于特征冗余的空间和通道重构卷积
@[toc]
摘要
代码链接:https://github.com/cheng-haha/ScConv
论文链接:https://openaccess.thecvf.com/content/CVPR2023/papers/Li_SCConv_Spatial_and_Channel_Reconstruction_Convolution_for_Feature_Redundancy_CVPR_2023_paper.pdf
卷积神经网络(CNN)在各种计算机视觉任务中取得了显著的性能,但这是以巨大的计算资源为代价的,部分原因是卷积层提取冗余特征。最近的作品要么压缩训练有素的大型模型,要么探索设计良好的轻量级模型。在本文中,我们尝试利用特征之间的空间和通道冗余来进行CNN压缩,并提出了一种高效的卷积模块,称为SCConv (spatial and channel reconstruction convolution),以减少冗余计算并促进代表性特征的学习。提出的SCConv由空间重构单元(SRU)和信道重构单元(CRU)两个单元组成。SRU采用分离重构的方法来抑制空间冗余,CRU采用分离变换融合的策略来减少信道冗余。此外,SCConv是一种即插即用的架构单元,可直接用于替代各种卷积神经网络中的标准卷积。实验结果表明,scconvo嵌入模型能够通过减少冗余特征来获得更好的性能,并且显著降低了复杂度和计算成本。
1、简介
近年来,卷积神经网络(CNN)在计算机视觉任务中获得了广泛的应用[24],原因在于其能够获取代表性特征。然而,这种成功在很大程度上依赖于密集的计算和存储资源,这对它们在资源受限环境中的高效部署构成了严峻的挑战。因此,为了解决这些挑战,已经探索了各种类型的模型压缩策略和网络设计来提高网络效率[1,2,26]。前者包括网络剪枝、权重量化、低秩分解和知识蒸馏。具体来说,网络剪枝[17、22、30]是一种直接的方式,从现有的大模型中剪除不关键的神经元连接,使其变得更薄。权重量化[9]主要关注将网络权重从浮点类型转换为整数类型,以节省计算资源。低秩分解[5]应用矩阵分解技术来估计信息参数。知识蒸馏[11、34]在训练良好的大教师网络的指导下生成小型学生网络。这些压缩技术的共同点是它们一直被视为后处理步骤,因此它们的性能通常由给定的初始模型上限决定。同时,这些方法的准确性在实现高压缩率时急剧下降。
网络设计是另一种替代方法,旨在减少密集模型参数中的固有冗余,并进一步开发轻量级网络模型。例如,ResNet[10]和DenseNet[14]利用有效的捷径连接来改善网络拓扑,这种连接将所有之前的特征图连接起来,以减少冗余参数。ResNeXt[31]用稀疏连接的组卷积代替传统的卷积,以减少跨通道连接。像Xception[4],MobileNet[12]和MobileNeXt[35]这样的网络将标准卷积分解为逐点卷积和逐深度卷积,以进一步降低通道之间的连接密度。MicroNet[19]采用微分卷积来处理极低的FLOPs,通过将稀疏连接融入卷积中。此外,EfficientNet[27]学习自动搜索最佳网络架构,以降低密集模型参数中的冗余。
此外,在CNN体系结构设计方面,已经很好地采用了瓶颈结构,其中3×3卷积层占模型参数和FLOPs的大部分。因此,提出了各种有效的卷积操作,如组卷积(GWC)、逐深度卷积(DWC)和逐点卷积(PWC),这是标准卷积的变体,用于替换现有的昂贵的卷积操作。GWC,首次在AlexNet[16]中引入,可以看作是一种稀疏卷积连接方法,每个输出通道只连接到某一组输入通道。DWC[13]提出通过保持每个通道与滤波器单独卷积而不进行通道间交互来提高效率。PWC用于保持信息在通道间流动并通过减少滤波器的数量来实现维度降低。这些操作在稀疏连接方面是相似的,并且具有减少参数和FLOP数的优点,这表明可以在一定程度上减少通道维度中的冗余。因此,提出了各种卷积操作来探索冗余减少。例如,MobileNet[12]使用DWC和PWC引入了倒残差块来过滤特征,这在加速训练的同时减少了参数的数量。ShuffleNet[33]求助于点对组卷积和通道洗牌操作来改善不同通道组之间的信息流动。HetConv[25]设计了异构卷积滤波器,其中在一个滤波器中包含3×3卷积核和一个1×1卷积核以提取特征。TiedBlockConv[28]在相等的通道块上共享相同的卷积滤波器以产生单个滤波器内的多个响应。SPConv[32]将输入通道分为两组以进行不同的处理,但在提取内部信息时需要相对较大的计算量。GhostNet[8]考虑了特征图之间的冗余,并使用DWC等廉价操作来学习冗余特征。SilmConv[23]采用减少特征通道的操作并翻转权重以减少特征冗余。此外,与通道冗余正交,OctConv[3]提出了八度卷积,将卷积滤波器分离为高频和低频分量,以低分辨率处理后者以减轻空间冗余,从而在保持相同参数数量的同时减少了计算量。
前述研究均表明深度神经网络中存在较大的冗余,不仅体现在模型参数上,还体现在特征图的空间维度和通道维度上。然而,上述方法要么侧重于减少通道维度的冗余,要么侧重于减少空间维度的冗余,使得神经网络仍然存在特征冗余的问题。
本文与现有研究不同,设计了一种两步过程来利用中间特征图的冗余,旨在在不损失性能的情况下减少参数和计算量。为此,我们提出了一种新的CNN压缩方法,以联合减少卷积层中的空间和通道冗余,称为SCConv(空间和通道重建卷积),它由两个单元组成:空间重建单元(SRU)和通道重建单元(CRU)。提出的SCConv模块可以嵌入到各种体系结构中而不进行额外的修改,旨在有效地限制特征冗余。该模块不仅减少了模型参数和FLOPs的数量,而且增强了特征表示的能力。我们将我们的贡献总结如下:
- 提出了一种空间重构单元SRU,该单元根据权重分离冗余特征并进行重构,以抑制空间维度上的冗余,增强特征的表征能力。
- 我们提出了一种信道重构单元,称为CRU,它利用分裂变换和融合策略来减少信道维度的冗余以及计算成本和存储。
- 我们设计了一种名为SCConv的即插即用操作,将SRU和CRU以顺序的方式组合在一起,以取代标准卷积,用于在各种骨干cnn上操作。结果表明,SCConv可以大大节省计算负荷,同时提高模型在挑战性任务上的性能。
2、方法
在本节中,我们将介绍如图1所示的SCConv,它由空间重构单元(SRU)和通道重构单元(CRU)两个按顺序放置的单元组成。具体而言,对于瓶颈残差块中的中间输入特征X,首先通过SRU操作得到空间细化特征Xw,然后利用CRU操作得到通道细化特征Y。在SCConv模块中利用特征之间的空间和通道冗余,可以无缝集成到任何CNN架构中,以减少中间特征图之间的冗余,并提高CNN的特征表示。
2.1、SRU用于空间冗余
为了利用特征的空间冗余性,我们引入了空间重构单元(SRU),如图2所示,采用分离-重构操作。分离操作旨在将信息丰富的特征图与与空间内容对应的信息较少的特征图分离。利用组归一化(GN)[29]层中的缩放因子来评估不同特征图的信息内容。具体来说,给定一个中间特征图X∈R N×C×H×W,其中N为批处理轴,C为通道轴,H和W为空间高度和宽度轴。我们首先通过减去均值µ除以标准差σ来标准化输入特征X,如下所示:
其中,μ和σ是X的均值和标准差,ε是一个为了稳定除法而添加的小的正数,γ和β是可训练的仿射变换。
注意到我们在层中利用可训练参数来衡量每个批次和通道的空间像素的方差。更丰富的空间信息反映了更多的空间像素的变化,从而贡献更大的。归一化的相关权重通过等式2获得,这表明了不同特征图的重要性。
然后通过sigmoid函数将由重新加权的特征图的权重值映射到范围(0,1)并通过阈值进行门控。我们将高于阈值的权重设置为1以获得信息丰富的权重,而将它们设置为0以获得非信息丰富的权重(在实验中阈值设置为0.5)。获取的整个过程可以由等式3表示:
最后,我们将输入特征分别乘以和,得到两个加权特征:信息丰富的特征和信息较少的特征。这样我们就成功地将输入特征分为两个部分:具有信息丰富和表现力强的空间内容,而几乎没有信息,被视为冗余。
为了进一步减少空间冗余,我们提出了一种Reconstruct操作,将富含信息的特征与信息较少的特征相加,以生成更丰富的信息特征并节省空间。我们没有直接将这两个部分相加,而是采用交叉重建操作来充分结合加权的两个不同的信息丰富的特征,并加强它们之间的信息流。之后我们将交叉重建后的特征和连接起来以获得空间细化特征图。Reconstruct操作的整体过程可以表示为:
其中表示逐元素相乘,表示逐元素相加,表示拼接。将SRU应用于中间输入特征后,我们不仅将信息丰富的特征与信息较少的特征分离,而且对它们进行了重构以增强代表性特征并抑制空间维度中的冗余特征。然而,空间细化特征图在通道维度上仍然存在冗余。
2.2. CRU用于通道冗余
为了利用特征的通道冗余,我们引入了通道重建单元(CRU),如图3所示,它利用了“分割-转换-融合”的策略。通常,我们使用重复的标准k \times k卷积来提取特征,导致一些相对冗余的特征图沿着通道维度。让我们表示一个k \times k卷积核,表示输入和卷积后的输出特征。一个标准卷积可以定义为。具体来说,我们将标准卷积替换为CRU,它通过三个运算符-Split、Transform和Fuse来实现。
Split:对于给定的空间细化特征,我们首先将的通道分成两部分,其中一部分具有个通道,另一部分具有个通道,如图3中的分割部分所示,其中是一个分割比例。随后,我们进一步利用1 \times 1卷积来压缩特征图的通道以提高计算效率。这里我们引入一个压缩比例r来控制CRU的特征通道以平衡计算成本(实验中典型的r设置为2)。在分割和压缩操作之后,我们将空间细化特征分为上部分和下部分。
Transform:被输入到上转换阶段,作为“丰富的特征提取器”。我们采用高效的卷积操作(即GWC和PWC)来代替昂贵的标准k \times k卷积来提取高级代表性信息,同时降低计算成本。由于稀疏卷积连接,GWC减少了参数和计算量,但切断了通道组之间的信息流。而PWC弥补了信息的损失并帮助信息在特征通道之间流动。因此,我们在相同的上执行 GWC(在实验中我们将组大小)和 PWC操作。之后,我们将输出相加形成合并代表特征图,如图3中的Transform部分所示。上转换阶段可以表示为:
其中,是GWC和PWC的可学习权重矩阵,和分别是上输入和输出特征图。简而言之,上转换阶段利用GWC和PWC在相同的特征图上的组合来以较少的计算成本提取丰富的代表性特征。
被输入到底部转换阶段,其中我们应用廉价的 PWC操作生成具有浅层隐藏细节的特征图,作为丰富特征提取器的补充。此外,我们重用特征以获取更多的特征图而不增加额外成本。最后,我们将生成的和重用的特征连接起来形成底部阶段的输出,如下所示:
其中是PWC的可学习权重矩阵,是连接操作,和分别是底部输入和输出特征图。总之,底部转换阶段重用前面的特征并利用廉价的 PWC来获取具有补充详细信息的特征。
融合:在进行转换之后,我们不是直接连接或添加两种类型的特征,而是利用简化的SKNet方法[18]自适应地合并上转换阶段和下转换阶段的输出特征和,如图3的Fuse部分所示。我们首先应用全局平均池化(Pooling)来收集全局空间信息,通道统计信息计算如下:
接下来,我们将上部分和下部分的全局通道描述子、堆叠在一起,并使用通道注意力操作来生成特征重要性向量、,如下所示:
最后,在特征重要性向量、的指导下,通过以通道的方式合并上特征和下特征来获得通道精细化特征,如下所示:
简而言之,我们采用CRU,使用Split-Transform-and-Fuse策略,以进一步减少空间细化特征图在通道维度上的冗余。此外,CRU通过轻量级卷积操作提取丰富的代表性特征,同时使用廉价操作和特征重用方案进行冗余特征的处理。总体而言,CRU可以单独使用或与SRU操作结合使用。通过以顺序方式排列SRU和CRU,建立了提出的SCConv,它具有高效率且能够替代标准卷积操作。
2.3、复杂性分析
我们的SCConv被设计为即插即用模块,可轻松嵌入各种现有设计良好的神经网络架构中,以减少计算和存储成本。在SCConv模块中,所有参数都集中在转换阶段。因此我们分析理论内存使用量的减少。标准卷积的参数可以计算如下:
其中是卷积的核大小,和分别是输入和输出特征通道的数量。
所提出的SCConv模块的参数包括:
3、实验
为了评估所提出的SCConv的有效性,在本节中,对图像分类和目标检测进行了一系列实验,SCConv模块只替换了广泛使用的3 × 3核。图像分类基准包括CIFAR-10 [15], CIFAR100[15]和ImageNet-1K[16]。目标检测基准包括PASCAL VOC[6]和MS COCO[21]。Top-1准确率作为图像分类的评价指标,均值平均精度(mean average precision, mAP)用于衡量目标检测的准确性。为了公平的比较,每个实验中的所有模型,包括重新实现的基线和配备scconv的模型,都是在2个NVIDIA Tesla V100 gpu上从头开始训练的,使用默认的数据增强和训练策略,没有使用其他技巧。在每个实验中,我们使用相同的配置进行多次训练,以防止波动的影响,并报告结果的中位数。
3.1、实验设置
数据集。CIFAR数据集包括CIFAR-10和CIFAR-100,由50k训练图像和10k验证图像组成,分别分为10类和100类。ImageNet-1K数据集是一个大规模的图像分类数据集,包含来自1k类的128万张训练图像和50万张验证图像。PASCAL VOC数据集有20个类,包含超过22k张用于训练的图像和5k张用于验证的图像。MS COCO数据集分为80个类别,有超过118k张图像用于训练,5k张图像用于验证。
训练和推理。1)对于CIFAR-10和CIFAR100,我们在[10]中遵循类似的训练方案。使用SGD优化器对网络进行200次训练,权重衰减为5 × e−4,动量为0.9。学习率初始化为0.05,并在100和150个epoch时衰减0.1。它在一个GPU上以128的小批量大小进行训练。此外,根据不同的网络架构,我们对ResNet, WideResNet, ResNeXt设置(h, w)为(8,8),对DenseNet设置为(4,4)。2)对于ImageNet-1K数据集,遵循标准做法,通过随机裁剪到224 × 224像素来进行数据增强。应用SGD,动量为0.9,权重衰减为1 × e−4。初始学习率设置为0.1,并除以每30个epoch,共100个epoch。3)对于PASCAL VOC数据集,我们使用SGD优化器并将批处理大小设置为32。初始学习率设置为0.1,预热500次。我们总共训练了20k次迭代,并在10k次和18k次时将学习率降低了10倍。4)对于MS COCO数据集,我们使用SGD优化器,并将初始学习率设置为0.1,批量大小设置为16。总迭代次数设置为180k,学习率在120k和160k迭代时除以10。
SRU和CRU。我们的SCConv模块包括一个空间重构单元(SRU)和一个信道重构单元(CRU)。首先,我们只在ResNet50上应用SRU或CRU来检查单个单元的效率。如表1所示,仅嵌入SRU (ResNet50+S)可以在不增加FLOPs的情况下获得近1%的改进,而仅嵌入CRU (ResNet50+C)可以节省38%的参数和FLOPs, Top-1精度提高0.8%。结果表明,单单元嵌入模型显著提高了识别精度。此外,我们比较了SRU和CRU的三种不同排列方式:顺序空间通道(S+C),顺序通道空间(C+S)和并行使用两个单元(C&S)。我们发现空间一阶(S+C)比其他组合方法获得了最好的精度。因此,我们采用顺序空间优先组合(S+C)策略来制定我们的SCConv,进一步提高模型性能。
分割比α的分析。为了探究CRU模块中不同分裂比α的影响,我们将分裂比从1/8逐渐变化到7/8,并比较了CIFAR-100上的精度和FLOPs。如图4所示,scconvo嵌入ResNet50的准确率随着分割比α的增加而上升。α值越高,表示模型在CRU变换阶段可以获得更丰富的特征信息,从而提高模型的整体性能。当α = 1/2时,整个网络达到最佳的flops - accuracy权衡。因此,在接下来的实验中,我们采用SCConv的最佳分割比α = 1/2,以更好地权衡性能和效率。
可视化。为了探索所提出的SRU方法的特征表示,我们在图5中可视化了原始ResNet50和嵌入SRU的ResNet50的第一阶段的特征映射。可以看出,与原始ResNet50相比,嵌入sru的ResNet50的特征模式更加丰富。在减少冗余特征的同时,强化了代表性特征,使之多样化。可视化显示了SRU能够生成具有代表性和表现力的特征
3.3、基于CIFAR的图像分类
在研究了所提出的scconvv模块的高效特征学习结构之后,我们继续在各种基线模型上评估scconvv嵌入式架构,并进一步在CIFAR-10和CIFAR-100数据集上与SOTA方法在分类精度、参数数量和FLOPs方面进行比较。相关的SOTA方法包括OctConv[3]、GhostNet[8]、SPConv[32]、SlimConv[23]、TiedConv[28]。所有的实验都是用相应的卷积方法替换原有的卷积层来完成的。
如表2所示,在所有情况下,我们的SCConvembedded模型在准确性方面优于所有先前的网络。对于ResNet-56模型,scconvr - r56只需要对应ResNet56的62.7%的参数和FLOPs,而在两个数据集上的精度都提高了1%以上。对于ResNet-50模型,scconvr - r50达到了更好的准确度(接近1%和1.3%),但大约37%的参数和34%的FLOPs比对应的CIFAR-10和CIFAR-100上的ResNet50降低。此外,scconvr - r50的计算成本与slimconvr - r50相同,但精度提升幅度更高(超过1%)。为了显示所提出方法的通用性,我们将SCConv和其他SOTA方法应用于ResNeXt-29, WideResNet-28和DenseNet-121。可以看出,与其他具有可比模型计算的作品相比,嵌入sccv的模型仍然具有优越的性能。例如,scconvr - rx29在计算与GhostNet-RX29相当的情况下,精度提高了2.3%以上。scconvr - wrn28比slimconvr - wrn28具有更好的精度(近1.3%),同时节省了11.7%和15.5%的参数和FLOPs。
3.4、基于ImageNet的图像分类
我们在ImageNet1K数据集上对ResNet50进行了实验,将我们的方法与最近的SOTA方法(包括OctConv [3], SPConv [32], GhostNet [8], SlimConv [23], PfLayer [7], TiedConv[28]等)的性能进行了比较。注意,我们只是用相应的卷积方法替换瓶颈3 × 3卷积。如表3所示,我们的sccon - r50 α=1/2与ResNet50模型相比,计算量减少了34.4%,准确率提高了0.26%。当我们进一步将分割比α增加到3/4时,我们的方法在精度增长方面获得了优于所有其他最先进方法的性能。
例如,SCConv-R50 α=3/4实现了超过0.6%的精度提高,而计算与PfLayer-R50 max相当。此外,SCConv-R50 α=1/2比SlimConv-R50 k=4/3具有更好的性能。为了进一步证明SCConv的有效性,我们将其嵌入到深度模型ResNet101中。我们的SCConv-R101在计算成本接近62%的情况下,比基线模型的精度提高了0.68%
3.5、物体检测
为了进一步评估SCConv的泛化能力,我们在两个数据集上进行了目标检测任务的实验。采用一级retanet[20]作为检测框架。我们采用ResNet-50、ResNet-101骨干网,scconvn嵌入模型作为骨干网特征提取器的替代。
对于PASCAL VOC数据集,如表4所示,AP@[.5]使用SCConv-R50和 SCConvR101的 SCConvR101 分别为78.68%和80.36%,分别比原ResNet50和ResNet101分别提高了0.8%和1.1%,参数和FLOPs分别降低了34.1%和37%。对于MS COCO数据集,如表5所示,AP@[。[5] SCConv-R50的RetinaNet 为55.1%,优于原始ResNet-50 0.9%,超过22G FLOPs下降。
此外,我们的方法在两个数据集上始终超过当前最先进的方法。例如,mAP@[.5,.95]在PASCAL VOC和MS COCO数据集上,SCConv-R50比SlimConv-R50分别高出近0.8%和0.6%。总之,这些结果证明SCConv模块不仅带来了性能的提高,而且帮助网络用更少的参数学习到更好的代表性特征,使得在资源有限的设备上部署目标检测成为可能。
4、结论
本文提出了一种新的空间和通道重建模块(SCConv),一种有效的结构单元,通过减少标准卷积中广泛存在的空间和通道冗余来降低计算成本和模型存储,同时提高CNN模型的性能。通过两个独特的模块SRU和CRU来减少特征图中的冗余,在减少大量计算负荷的同时实现了可观的性能提升。此外,SCConv是即插即用模块,具有通用性,无需任何模型结构调整即可替换标准卷积。此外,对各种SOTA方法在图像分类和目标检测上的广泛实验表明,嵌入SCConv的模型在性能和模型效率之间取得了更好的权衡。最后,希望提出的方法能对建筑设计的研究有所启发。
- 点赞
- 收藏
- 关注作者
评论(0)