▊ 写在前面
本文旨在以极低的计算成本解决性能大幅下降的问题。作者发现有两个因素是可以有效提高精度的,分别是:稀疏连通性和动态激活函数。前者避免了网络宽度的大幅度缩减的危害,而后者则减轻了网络深度缩减的危害。
技术上,作者提出了微分解卷积(micro-factorized convolution),它将卷积矩阵分解成低秩矩阵,以将稀疏连通性整合到卷积中。此外,作者还提出了一个新的动态激活函数,称为Dynamic Shift Max,通过最大化输入特征图和圆形通道位移之间的多次动态融合来提高非线性。
基于这两个操作,作者提出一个新的网络系列:MicroNet,在低FLOP状态下,它取得了显著的性能提高。例如,在12M FLOPs的约束下,MicroNet在ImageNet分类上达到了59.4%的Top-1准确率,比MobileNetV3高出9.6%。
▊ 1. 论文和代码地址
MicroNet: Improving Image Recognition with Extremely Low FLOPs
代码语言:javascript复制论文:https://arxiv.org/abs/2108.05894
代码:https://github.com/liyunsheng13/micronet
▊ 2. Motivation
高效CNN架构的最新工作成功地将ImageNet分类的计算成本从3.8GFLOPs(ResNet-50)降低了两个数量级到约40M FLOPs,并且性能的下降在一个可接受的范围内。
然而,当进一步降低计算成本时,它们的性能会显著下降。例如,当计算成本从44M下降到21M和12M MAdds时,MobileNetV3的Top-1精度分别从65.4%显著下降到58.0%和49.8%。在本文中,作者的目标是在极低的FLOP下(从21M到4M MAdds)提高精度。
处理极低的计算成本(4-21M FLOPs)的问题非常具有挑战性,因为2.7M MAdds已经被一个stem层消耗。剩余的计算资源太有限了,因此设计卷积层和有效分类所需的1000个类分类器是非常困难的。通过减少有效的宽度或深度的策略,MobileNet和ShuffleNet等轻量级网络结构会有严重的性能下降(如上图所示)。
在本文中,作者从两个角度来处理极低的flop:节点的连通性和非线性(分别与网络的宽度和深度有关)。首先,作者证明了在给定的计算预算的情况下,降低节点连通性以扩大网络宽度为提供了一个很好的权衡 。
其次,作者依赖于改进的层非线性来弥补减少的网络深度,这决定了整个网络的非线性 。这两个因素激发了更有效卷积和激活函数的设计。
关于卷积,作者提出了一种微分解卷积(MF-Conv)来将Pointwise卷积分解成两组卷积层。其中,组数G适应于通道C的数量为:
R是通道减少率。在给定的计算成本下,这个等式在通道数和节点连接性之间实现了很好的权衡。数学上,Pointwise卷积矩阵由一个块矩阵(G×G块)近似,其块的rank为1。这保证了最小的路径冗余和最大的输入覆盖率 ,从而使网络能够为给定的计算预算实现更多的通道。
关于非线性,作者提出了一种新的激活函数(Dynamic Shift-Max ,DY-Shift-Max),用于非线性地将通道与动态系数融合。新的激活函数迫使网络学习融合输入特征图的不同圆形通道移动(使用适应输入的系数),并在这些融合中选择最好的,结果表明,这可以在计算成本较小的情况下增强了group分解的表示能力。
基于两个新的提出的运算符(MF-Conv和DYShift-Max),作者得到了一组新的模型MicroNet。从上图可以看出,在很少的计算量下,MicroNet远远超过其他轻量级网络的性能。12M和21M FLOPs的MicroNet模型在Top-1精度方面分别比MobileNetV3高出9.6%和4.5%。
尽管MicroNet是为了减少FLOPs手动设计的,但它在边缘设备上进行快速推理的性能依然优于MobileNetV3。此外,MicroNet在目标检测和关键点检测方面超过了MobileNetV3,但使用了更少计算量。
▊ 3. 方法
3.1. Micro-Factorized Convolution
微分解卷积(Micro-Factorized convolution)的目标是优化通道数和节点连接之间的trade-off。层的连通性E定义为每个输出节点的路径数,其中每条路径连接一个输入节点和一个输出节点。
3.1.1. Micro-Factorized Pointwise Convolution
首先,作者提出使用组自适应卷积来分解一个Pointwise卷积。为了简洁起见,这里假设卷积核W具有相同数量的输入和输出通道,并忽略了bias。核矩阵W被分解为两个组自适应卷积,其中组的数量G取决于通道的数量C:
其中W是一个C×C矩阵;Q是一个C×C/R矩阵,它将通道数压缩一个R倍;P是一个C×C/R矩阵,它将通道数扩展回C。P和Q是带有G块的对角块矩阵,每个矩阵都实现了组卷积实现。Φ是一个C/R×C/R的排列矩阵。分解层的计算复杂度为,过程如下图所示:
矩阵Φ的C/R通道表示为隐藏通道,分组结构限制了这些通道的数量。具体来说,每个隐藏通道连接到C/G个输入通道,每个输出通道连接到C/(RG)隐藏通道。每个输出通道的输入-输出连接数表示该层的连接E。
当计算预算和压缩因子R固定时,通道C和连通数E随G变化:
如下图所示:
随着G组数量的增加,C增加,而E减少。这两条曲线相交(C=E)时,满足:
在这种情况下,每个输出通道只连接到所有输入通道一次(E=C)。这保证了任何输入输出对之间不存在冗余路径(最小路径冗余度),同时保证了每对输入输出之间都存在一条路径(最大输入覆盖范围)。
这意味着组G的数量不是固定的,而是由通道数量C和压缩因子R定义,根据平方根定律,最优地平衡了通道数量C和输入/输出连通性。数学上,得到的卷积矩阵W分解为G×G个秩为1的block。
3.1.2. Micro-Factorized Depthwise Convolution
上图展示了如何将微分解应用于k×k深度卷积:卷积核被分解成k×1和1×k核。这样一来复杂度就从变成了
3.1.3. Combining Micro-Factorized Pointwise and Depthwise Convolutions
微分解的Pointwise 和Depthwise 卷积可以用两种不同的方式组合:常规组合和精简组合。
前者只是将这两个卷积连接起来。后者如下图所示,使用微分解的Depthwise 卷积,通过对每个通道应用多个空间滤波器来扩展通道的数量。然后,应用一个组自适应卷积来融合和压缩通道的数量。
与常规组合相比,它通过节省通道融合(Pointwise )计算,花费了更多的资源在学习空间滤波器上(Depthwise),实验证明,这对实现较低FLOPs的网络层是更有效的。
3.2. Dynamic Shift-Max
到目前为止,作者已经讨论了高效静态网络的设计,但是它们不会根据输入而改变它们的权重。然后,作者引入了一种新的动态非线性函数:动态Shift-Max(DY-ShiftMax),加强了由微分解创建的组之间的连接。这是一种对微分解pointwise卷积的补充,因为微分解pointwise卷积更加关注组内的交互。
设,,表示具有C通道的输入向量,C通道分为G组,每组C/G个通道。x的第j组
circular shift可以被表示为:
动态Shift-Max的输出为K个融合的最大值,其中第J组位移如下:
其中,、是一个取决于输入x的动态权重。它由平均池化,两个完全连接的层和一个Sigmoid层得到(类似SENet)。
这样,DY-Shift-Max就实现了两种形式的非线性:1)输出J组的K个融合的最大值;2)通过一个动态参数、来加权每个融合。
第一个非线性是对侧重于每一组内的连通性的微分解pointwise卷积的补充,从而加强了每一组之间的连接 。第二个非线性使网络能够根据输入x来调整这种增强功能 。这两种操作增加了网络的表示能力,弥补了减少的层数所固有的损失。
3.3. MicroNet
接下来,作者基于上面提出的两个模块,设计了MicroNet
3.3.1. Micro-Blocks
MicroNet模型由上图中的三个Micro-Blocks组成,它们以不同的方式结合了微分解的Pointwise和Depthwise卷积。
Micro-Block-A
Micro-Block-A如上图(a)所示使用微分解的pointwise和depthwise卷积的精简组合。通过微分解的depthwise卷积扩展了通道的数量,并通过组自适应卷积压缩它们。
Micro-Block-B
Micro-Block-B如上图(b)所示,用于连接Micro-Block-A和Micro-Block-C,它既压缩又扩展了通道的数量。
Micro-Block-C
Micro-Block-C如上图(c)所示,实现了微分解的pointwise卷积和depthwise卷积的常规组合。它最适合于更高的网络层,因为它比精简组合为通道融合分配更多的计算。
3.3.2. Architectures
上表展示了不同参数和计算量的MicroNet实例化结构。
▊ 4.实验
4.1. ImageNet Classification
4.1.1. Ablation Studies
From MobileNet to MicroNet
上表展示了从MobileNet到MicroNet的改变过程,表明Micro-Factorized卷积和Dynamic Shift-Max都是在计算成本极低的情况下实现网络的有效和互补的机制。
Number of Groups G
上表展示了固定组和自适应组的对比,表明组自适应卷积获得了更高的精度,证明了其在输入/输出连接性和通道数之间的最优权衡的重要性。
上表进一步证实了这一点,它比较了自适应组数量的不同选项。 可以看出,λ = 1是的performance最好。
Lite combination
上表展示了使用微分解pointwise和depthwise卷积的精简组合进行比较。可以看出,精简组合对低层更有效。
Activation functions
上表展示了Dynamic Shift-Max与以前的三个激活函数进行比较。可以看出,Dynamic Shift-Max在性能上有绝对优势。
Location of DY-Shift-Max
上表展示了不同位置的DY-Shift-Max的精度。可以看出,在所有结构中都使用DY-Shift-Max时,精度最高。
Hyper-parameters in DY-Shift-Max:
上表展示了不同超参J和K的结果。
4.1.2. Comparison to Prior Networks
上表展示了不同小型网络在ImageNet上结果,可以看出MicroNet在小于24M FLOPs的计算量下,实现了SOTA性能。
4.1.3. Inference Latency
上表展示了不同Inference Latency和FLOPs下的精度变化。
4.2. Object Detection
可以看出,在目标检测任务上,用更低的FLOPs,MicroNet-M3实现更高的mAP。
4.3. Human Pose Estimation
作者也测试了MicroNet的COCO单人关键点检测,可以看出,MicroNet-M2为更低的复杂度下实现了一个很好的trade-off。
▊ 5. 总结
在本文中,作者提出了MicroNet来处理极低计算成本下的网络性能。它建立在两个提出的算子的基础上:Micro-Factorized convolution和Dynamic Shift-Max。前者通过在pointwise和depthwise卷积上的低秩近似来实现通道数和输入/输出连接之间的平衡。
后者动态地融合了连续的通道组,增强了节点的连接性和非线性,以弥补深度的减少。在极低的FLOPs条件下,一个MicroNet对三个CV任务(图像分类、目标检测和人体姿态估计)都实现了明显的改进。
▊ 作者简介
厦门大学人工智能系20级硕士
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV