IJCV22 | 已开源 | 华为GhostNet再升级,全系列硬件上最优极简AI网络 - 知乎
GhostNets on Heterogeneous Devices via Cheap Operations
论文链接: GhostNets on Heterogeneous Devices via Cheap Operations | SpringerLink
arXiv: https://arxiv.org/abs/2201.03297
PyTorch代码链接: GitHub - huawei-noah/Efficient-AI-Backbones: Efficient AI Backbones including GhostNet, TNT and MLP, developed by Huawei Noah's Ark Lab.
MindSpore代码: models: Models of MindSpore - Gitee.com
现有的轻量级推理网络(MobileNet, EfficientNet, ShuffleNet,GhostNet)都是针对CPU、ARM等移动设备设计而成,在GPU等基于大吞吐量设计的处理单元上的表现却不尽人意,推理速度甚至比传统的卷积神经网络更慢。
因此,新版GhostNet重点关注在GPU设备上能快速推理的卷积神经网络,设计出用更少计算量和参数量达到更高推理速度和更高测试精度的模型。
GPU版GhostNet(G-GhostNet)巧妙引入跨层廉价操作,减少计算量的同时减少的内存数据搬运。
实验表明,G-GhostNet在现有GPU设备上达到了速度和精度的最佳平衡。在华为自研NPU昇腾310上,G-GhostNet的速度比同量级ResNet要快30%以上。
GhostNet由Ghost模块搭建而成。Ghost模块首先采用普通卷积生成少量特征图,并使用廉价操作(如Depthwise)来生成更多的特征图。这样,Ghost模块使用更少计算量更廉价的方式生成了和普通卷积层一样多的特征图。Depthwise等廉价操作对于流水线型CPU、ARM等移动设备更友好,对于并行计算能力强的GPU则不太友好。
除了FLOPs和参数量,也可以用activations(卷积张量元素数)来描述模型的复杂度。
activation的定义:conv的output feature map中的元素数量
GPU上的延迟与activations更相关。也就是说,如果我们减少特征图的数量,从而减少activations,就能够减小GPU延迟。
另外,CNN的主体部分通常由一些分辨率递减的stage组成,每个stage又由几个block组成。我们希望能够减少stage之间的冗余信息,从而大幅度减少中间特征,减轻相关的计算量和内存占用。
图中显示了ResNet34的第二stage的第一个block和最后一个block的特征图。
最后一个块的其中一些特征与第一个块的特征非常相似,这意味着这些特征可以通过简单的转换从低级特征中获得。
因此我们将特征分成complicated和ghost两种,complicated仍然由堆叠的block来得到,ghost特征则由浅层的特征通过简单的廉价操作来获取。
我们提出两种基于跨层廉价操作的stage结构:
G-Ghost stage:给定模块的输入输出通道数(一般情况下输入通道数和输出通道数相同),第二层开始所有的卷积层的通道数都是输出通道数的(1-λ)倍,剩下的λC通道的输出特征由第一层卷积层的输出经廉价操作产生。廉价操作C(·)包括但不限于1x1卷积、残差连接等。(图中λ=0.5)
带mix操作的G-Ghost stage:特征产生的方法和上述描述类似,会利用多个廉价操作生成多个Ghost特征。然后进行mix。
τ指转换函数,首先对C'*H*W使用全局平均池化来聚合特征C',然后使用全连接层来作为转换函数(乘以W,加上b)λC。最后加到cheap后的Y1上 λC。
(类似于SENet,只不过SE最后是相乘,这里是相加)
最终的推理网络由基于核心模块设计的stage堆叠而成,具体网络结构如表2所示。
cheap操作为1*1卷积,ghost ratio=0.4
Block代表传统的残差模块,output代表输出特征图的大小,#out代表输出特征图的通道数。
G-Ghost结构可用于改造不同神经网络架构,如ResNet、RegNet中。在图像分类数据集ImageNet的结果如下表所示。
Without mix模型与-0.8x的FLOPs和GPU延迟相似,但是G的效果更好。
With mix模型与resnet达到了相近的精确度,并实现了16%的GPU延迟减少。
与其他的网络剪枝方法相比,G-Ghost实现了最好的推理精度。
在RegNet上使用G-Ghost结构,G比-0.75x实现了1.5%的top1精度提升(延迟相近)。
尽管EfficientNet实现了最优的FLOPs与精度的平衡,但它存在很大的GPU延迟。
而G-G-RegNet同时实现了最优的精度-FLOPs与精度-延迟的平衡。
在轻量神经网络对比中,G-GhostNet同时达到最快的推理速度和最高的推理精度。如下图所示,G-GhostNet(with RandAugment)在24ms的推理时延下,达到了超过77.5%的ImageNet正确率,远超其他网络如MobileNetV3和EfficientNet。
现有的目标检测模型一般由特征提取网络和专门的检测网络组成。用G-Ghost RegNet结构替换目标检测器的特征提取网络,并在数据集COCO上进行实验。G-Ghost RegNet结构产生的目标检测网络在达到最高mAP的同时还具有最快的推理速度,达到每秒25.9帧。
新版GhostNet提出的跨层廉价操作,可用于不同网络结构中,进一步优化模型运行所需的内存,提升GPU等设备上的运行速度。至此,GhostNet系列已经打通ARM、CPU、GPU甚至NPU的常用设备,能够在不同硬件需求下达到最佳的速度和精度的平衡。
MobileNet v1提出的width multipliers: