设计具有小参数和Flops的轻量化CNN模型是一个突出的研究问题。然而,在当前的轻量化神经网络中仍然存在3个重要问题:
- 缺乏架构一致性,导致冗余和容量比较受阻,以及架构选择和性能增强之间的因果关系不明确;
- 单分支深度卷积的使用损害了模型的表示能力;
- depth-wise占了参数和Flops的很大比例,但缺乏使其轻量化的有效方法。
为了解决这些问题,本文将轻量化CNNs的4个重要组成部分从粗到细分解并重新设计:
- 设计了一个称为LightNet的轻量化整体架构,该架构通过简单地实现其他轻量化CNN的BasicBlock来获得更好的性能;
- 抽象了一个Meta Light Block,它由空间算子和通道算子组成,并统一描述当前的BasicBlock;
- 提出了构造多个空间算子分支的RepSO,以增强表示能力;
- 提出了感受范围的概念,在此基础上提出了RefCO来稀疏因子化通道算子。
基于以上4个重要组成部分,作者提出了一个新的轻量化CNN模型FalconNet。实验结果表明,与现有的轻量化神经网络相比,FalconNet可以以更低的参数和浮点数实现更高的精度。
1、介绍
卷积神经网络(CNNs)具有表示高维复杂函数的能力,已成功应用于各种真实视觉场景。神经网络具有比ViTs更低的计算复杂度和更高的效率,在计算机视觉应用中仍然占据主导地位。对于在移动设备上实现真实世界的应用,计算和存储资源总是有限的,需要具有减少的参数和低Flops的轻量化CNN模型,同时保持有竞争力的性能。
MobileNetV1中提出的深度可分离卷积(DSConv)将规则卷积分解为深度卷积(DW-Conv)和点卷积(PW-Conv)。因此,DS-Conv减少了大量的计算和参数,并已成为后续轻量化神经网络和现代大型神经网络的Basic设计组件。MobileNetv2提出了反向残差Block(IRB),以减轻对特征的破坏并增强表征能力。利用IRB的范式作为BasicBlock,提出了许多具有不同整体架构(Stage、宽度、深度)的轻量化模型。除了IRB,还设计了许多具有不同结构的有效BasicBlock,以提高轻量化神经网络的表征能力。
然而,体系结构的不一致性导致了可以通过统一来整合的冗余结构,并且使用不同的BasicBlock和不同的体系结构导致了不公平的容量比较,并模糊了体系结构选择和性能增强之间的因果关系。
此外,虽然一些工作将DW-Conv分解为并行的低秩分支以节省计算成本,但追求更低Flops和参数的轻量化模型的主要分支在于PW-Conv。如图1所示,PW-Conv占轻量化模型参数的大部分,而DW-Conv仅占很小的比例。ShuffleNet将通道分成组并对通道进行Shuffle操作,然而,不同组中的通道之间的信息通信不足。
IGC提出了交错群卷积,以用多个置换的群卷积层取代规则卷积,同时结构变得复杂。ChannelNet为PW-Conv引入了稀疏连接,而一个输出通道只能处理一小部分输入通道,因此由于信息通信不足,仅应用于最后一个PW-Conw层。
本文提出了一种新的轻量化CNN模型,该模型在保持竞争性能的同时具有少量的参数。鉴于上述问题,作者分解了构建轻量化神经网络的4个重要组成部分,即整体架构、Meta Basic Block、空间算子和通道算子。
具体而言:
- 首先设计了一种称为LightNet的轻量化整体架构,它指的是现代神经网络的结构设计,有4个Stage,每个Stage都堆叠着Basic Block。通过在LightNet上简单地实现其他轻量化CNN的Basic Block,可以获得更好的性能。
- 抽象并分析了一个由空间算子和通道算子(特别是PW-Conv)组成的Meta Basic Block,用于轻量化CNN模型设计。Meta Basic Block的范式统一描述了当前的Basic Block,例如MobileNets和EfficientNets中的IRB、Sandglass Block和FasterNet Block,推断Meta Basic Block的框架为模型提供了Basic能力,而模型性能的差异本质上来自不同的结构实例化。通过大量的实验,将Meta Basic Block进一步简化为Meta Light Block,从而获得更好的性能。
- 引入RepSO作为Meta-Light Block的空间运算符。根据权值大小的指导,RepSO构造了多个额外的分支,以补偿可学习参数的减少,增强模型的表示能力。RepSO进一步利用结构重参化方法将这些不同的分支等效地转换为推理中的单个分支。
- 引入了通道维度对应的感受范围的概念和空间维度的感受场的概念。感受范围阐述了PW-Conv中输出和输入神经Meta 之间的连接方式,声称一个输出神经Meta 应该直接或间接地关注所有输入神经Meta ,以获得完整的感受范围。基于感受范围的概念,进一步提出了RefCO,它通过将稀疏性引入到与空间卷积对应的密集通道连接中,来因子化Meta-Light Block中的PW-Conv。此外,RefCO利用结构重参化,同时构建多个稀疏因子化的PW-Conv,以补偿通道连接的减少。
最后,基于上述4个重要组成部分,作者提出了一个新的轻量化CNN模型,称为FalconNet。实验结果表明,与现有的轻量化CNN相比,FalconNet可以用更少的参数和Flops实现更高的精度。
2、本文方法
2.1、设计整体架构
首先,尽管某些轻量化神经网络使用类似的Basic Block,但它们的整体架构不同,导致了不必要的冗余,这些冗余可以通过统一来整合。
其次,某些轻量化的神经网络包含了不同的Basic Block,但它们仍然表现出不同的整体架构。这导致了BasicBlock之间容量的不公平比较,并掩盖了架构选择和性能改进之间的因果关系。因此,首先打算构建一个整体架构,特别是针对轻量化CNN模型。参考强大的CNN和ViT模型的现代架构,作者提出了LightNet,其架构如图2所示。
「Stem:」是指模型的起始部分。希望在开始时通过多个Conv层来捕捉更多细节,而不是使用具有相对较大Stride的单个Conv层。在Stride为2的第一个3×3规则Conv层之后,作者使用3×3 DW-Conv层来捕获低电平模式,然后使用1×1 PW-Conv和另一个3×3 DW-Conv层进行二次采样。还有一个ShortCut方式,如图2所示。
「Stage:」Stage1-4由几个重复的Basic Block组成,例如IRB。根据1:1:3:1的Stage计算比率,每个Stage中的Block数设置为[3,3,9,3]。遵循金字塔原理并考虑减少参数,每个Stage中的通道维度设置为[32,64,128,256]。
「Subsampling Layers:」在Stage之间添加单独的子采样层。使用2×2 Conv层,具有输入通道维度组和2的Stride,用于将空间分辨率减半。2×2的对流层也使通道尺寸加倍。随后安排一个BN层来稳定训练。
「Head」,在第4 Stage之后,是模型的最后一部分。首先使用1×1 Conv层来进一步交互信息,然后利用全局平均池化来获得特征向量,随后将其输入到最后一个FC分类器中,并获得最终输出。
实验结果表明,在LightNet上简单地实现其他轻量化CNNs的BasicBlock比原始模型具有更好的性能。
2.2、探索 Meta Basic Block
Basic Block是轻量化神经网络的关键组件。如图3所示,不同的Basic Block通常可以抽象为Meta Basic Block(图3a),Meta Basic Block由空间算子和通道算子(即PW-Conv)交替组成。Meta Basic Block的框架为模型提供了基本的表征能力,这意味着将这些空间算子实例化为不可学习的Identity映射仍然可以实现有效的性能,而模型性能的差异本质上来自Meta Basic Block不同的结构实例化,例如,FasterNet Block将第一个空间算子实例化为PConv,并将另外两个空间算子初始化为同一映射,如图3a所示。
通过进行广泛的实验可以观察到第一个和最后一个算子层对模型性能的增强没有好处,而两个通道算子层之间的第二空间算子层是显著的。
因此,作者进一步将Meta Basic Block简化为Meta Light Block(图4a),它由两个PW-Conv层(具有扩展比λ)和介于两者之间的单个空间算子层组成。
2.3、Strengthen the Spatial Operator
尽管Meta Light Block在一定的整体架构下保证了模型的Basic性能,但强大的空间算子可以显著提高模型的表示能力。因此,作者构造了多个通用空间算子分支,以丰富表示空间。假设kernel的位置往往更重要,如果它具有更大的平均kernel大小[8,9,16,18,19]。
作者首先计算并可视化了4个流行的轻量化神经网络的平均kernel-size矩阵,如图5所示。可以观察到,与中心的3×3位置相比,5×5中最外圆的位置的重要性可以忽略不计,因此作者使用了3×3卷积 kernel,其也具有较少的参数和浮点运算。为了补偿减少的特征通道,作者构造了N个(默认情况下N=3)并行的3×3 DW-Conv分支。
此外,图5显示,与这些角位置相比,3×3 kernel的骨架模式中的位置占据了很大的重要性,因此作者额外构建了水平的1×3和垂直的3×1 DW-Conv分支。此外,观察到中心位置总是具有最高的重要性得分(几乎为1),因此作者构造了一个额外的1×1DW-Conv分支来进一步增强中心位置。最后但同样重要的是,由于Meta Block提供了Basic容量,作者还向空间运算符层添加了一个Identity分支。所获得的多分支算子被称为RepSO(重参化空间算子),如左图6所示,所有这7个分支都单独配备了一个BN层,然后逐Meta添加每个分支的归一化输出。
如图6右所示,根据卷积的可加性和同质性以及结构重参化的方法,这7个分支在推理中可以等价地转换为单个3×3 DW-Conv分支。这不会产生额外的推理成本。
2.4、Factorize the Channel Operator
1、Receptive Range
由于1×1 Conv在模型参数和Flops中占很大比例,作者希望使其重量轻。从本质上讲,作者可以改变输入和输出神经元之间的连接,以改变参数的数量。
因此,作者提出了感受范围的概念作为建立这些联系的引导。感受范围的概念是专门针对通道维度引入的,类似于空间维度的感受野。某个输出神经元的感受范围的值是它直接(通过权重)或间接关注的输入神经元的数量。
图7显示了不同1×1 Conv的连接和相应的感受范围。假设C是输入神经Meta 的数量(通道数),正如所观察到的,密集的1×1 Conv的每个输出神经元都可以直接关注所有输入神经元,因此感受范围为C。对于具有组的1×1 Conv组,感受范围为,因此不同组可以建立信息连接,导致表示能力显著降低。
对于窗口大小为的通道1×1Conv,感受范围为,因此每个输出神经元只能关注少量的输入神经元,导致通道信息聚集不足。因此,为了使通道信息充分聚合,从而保证模型表示能力,每个输出神经元都应该具有完整的感受范围,即每个输出神经元应该直接或间接地连接到所有输入神经元。
2、Sparsely Factorized 1×1 Conv
在全局感受范围的指导下,作者试图将稀疏性引入到密集连接的1×1卷积中,以模拟空间卷积。作者提出了稀疏因子分解1×1Conv(简称SF Conv),它被认为是通道稀疏连通性的一个新范式。
如图8所示,SF Conv将一个密集连接的1×1 Conv分解为两个稀疏连接的1×1 Conv,即第一和第二 SF Conv,以保证完整的感受范围。
给定张量的输入特征图,其中,是空间大小,是输入通道数。输出特征图为,其中λλ。对于某些运算,作者只考虑参数的数量,因为参数,其中,是固定的。
对于SF-Conv,作者可以将中每个像素的视为实际的输入特征映射,其空间大小为和通道为1,因此作者可以对其进行标准卷积,这引入了稀疏连接。第1个SF Conv具有通道缩减系数R(超参数,默认情况下R=2)来控制隐藏特征图的神经元数量,从而控制参数。因此在中存在神经元。假设一个空间大小为K×1的卷积核。
考虑单通道的情况,在输入上滑动,Stride为,产生个输出神经元。因此,要生成隐藏神经元,卷积核应具有通道,即,隐藏神经元的特征图为。
为了在获得最大感受范围的同时实现最小连接,Stride S为。此外,为了增强表征能力和增加自由度,作者使 kernel权重在空间维度上不共享,即每组输入神经元由一组单独的权重操作。因此,第1个SF Conv的权重是,并且第1个SF Conv的输出是。因此,第1个SFConv具有=参数。
对于第1个SF Conv的每个输出神经元,其感受范围为K,而对于的某个通道中的一组神经元,其总感受范围为C。因此,通过关注的特定通道中的这组神经元,SF Conv的输出神经元可以以最小数量的参数具有完整的感受范围。因此,第2个SFConv以为输入,并对其进行DW-Conv,因此第2个SF-Conv 的权重具有个空间size。
为了获得λ输出通道,应该具有λ的宽度乘数,因此λ具有λ参数。对于中的像素,第2个SF-Conv的输出特征映射为λ。通过在的所有空间位置上操作共享的SF Conv,作者可以获得。
SF Conv的总参数为λ。给定一定的通道缩减率R,为了实现最小的参数,将kernel大小K设置为λ,根据、λ和进行动态调整。SF Conv的参数总数变为λ。对于λ的1×1Conv有λ参数。因此,SF Conv的参数计数仅为PW-Conv参数计数的λ。通过这种方式,SF Conv可以将稀疏性引入通道连接,并保持完整的接收范围(如图7所示),从而减少参数和Flops的数量,同时获得有竞争力的表示能力。
3、RefCO
作者进一步提出RefCO作为重参化的因子化通道算子。RefCO还采用结构重参化方法来补偿减少的参数计数并增强表示。
如图9所示,在训练中,RefCO首先构造了C个K个并行的第1个SF Conv分支并相加输出,然后构造了K个平行的第2个SF Conv支路并相加K个输出特征图以获得最终输出。在推断中,这些并行的第1/2 SF Conv分支可以等效地转换为单个SF Conv分支。
2.5、FalconNet
基于LightNet总体架构、Meta Light Block、RepSO空间算子和RefCO通道算子这4个重要组成部分,作者获得了一个新的轻量化CNN模型FalconNet(轻量化ConvNet的因子分解)。图9展示了具有RepSO和RefCO的Meta Light Block,它被用作FalconNet的BasicBlock。后来的实验结果证实,与现有的轻量化神经网络相比,FalconNet可以用更少的参数和浮点数实现更高的精度。
3、实验
4、参考
[1].FalconNet: Factorization for the Light-weight ConvNets.