【目标检测】G-GhostNet

1、论文

论文题目:《GhostNets on Heterogeneous Devices via Cheap Operations》
论文地址: https://arxiv.org/pdf/2201.03297.pdf
代码地址: https://github.com/huawei-noah/CV-Backbones

2、引言

本文针对网络部署时面临的内存和资源有限的问题,提出两种不同的Ghost模块,旨在利用成本低廉的线性运算来生成Ghost特征图。
C-Ghost模块被应用于CPU等设备,并通过简单的模块堆叠实现C-GhostNet。
进一步考虑GPU设备的高效网络。不需要在构建阶段涉及太多gpu效率低的操作(例如,深度卷积),建议利用阶段性特征冗余来制定gpu效率高的G-Ghost stage结构。将某一stage的特征分为两部分,其中第一部分使用输出通道较少的原始块来生成内在特征,而另一部分使用利用阶段冗余的廉价操作来生成。
在基准上进行的实验证明了提出的C-Ghost模块和G-Ghost stage的有效性。C-GhostNet和G-GhostNet可以实现精度和延迟的最佳权衡。

3、发现问题

3.1

虽然C-GhostNets在保持高性能的同时保持准确度不变,但用于生成更多特性的廉价操作在GPU上仍不是非常廉价和高效。具体来说,深度卷积的运算强度通常较低,即计算与内存运算的比率,不能充分利用并行计算能力。如何在精度和GPU延迟之间取得更好的平衡,仍然是一个被忽视的问题。
除了FLOPs和参数数量,Radosavovic等人引入了激活度activations来测量网络的复杂性,即所有卷积层的输出张量的大小。GPU上的延迟更多的是与activations相关,而不是与FLOPs相关,也就是说,如果可以移除部分feature map,减少activations,就可以以高概率减少GPU上的延迟。

3.2

作者等人发现,现有大多数CNN架构中,主体通常由几个分辨率逐渐降低的stage组成,一个stage通常包括几个卷积层/块,同时在每个stage中的不同层/块,特征图的尺寸大小相同。因此一种猜想是:特征的相似性和冗余性不仅存在于一个层内,也存在于该stage的多个层之间。
下图验证了这种想法(如右边第三行第二列和第七行第三列的特征图存在一定相似性)。
【目标检测】G-GhostNet_第1张图片
如下图所示,以残差卷积神经网络(ResNet-50,作图省略残差连线)为例,相同stage之间,不同层/块的输出特征具有较高的相似性,不同stage之间,特征的相似性较低。因此我们利用相同stage之间跨层的廉价操作来让网络生成这些与关键特征相似性高的Ghost特征。

【目标检测】G-GhostNet_第2张图片

3.3 复杂特征和Ghost特征

在CNN的某个stage中,深层特征分为:
(1)Ghost特征是由该stage中,第一个卷积层/块浅层廉价操作所生成的;
(2)复杂特征是由该stage中,一系列连续的卷积层/块所生成的。

3.4

普通的CNN中每个阶段有n层/块L1​,L2​,⋅⋅⋅,Ln。给定输入特征映射X,则第一个和最后一个层/块的输出分别是:
在这里插入图片描述
为了得到输出特征 Yn​,需要执行一系列块来对输入数据进行处理和聚合,即需要大量的计算成本。

G-Ghost中设每个stage具有n个卷积层/块,该stage的最终输出是Y ∈ R c * h * w ,经过n层/块,即最后一个层/块生成的复杂特征Y_n^c∈ R (1-λ) c * h * w :
【目标检测】G-GhostNet_第3张图片
将复杂特征和Ghost特征进行concatenating就可以得到该阶段的最终输出:
在这里插入图片描述

4、G-Ghost核心思想

4.1 G-Ghost stage

下图λ = 0.5 的 G-Ghost stage示意图可表示3.4.2的过程。
【目标检测】G-GhostNet_第4张图片
图(b)G-Ghost stage:给定模块的输入输出通道数(一般情况下输入通道数和输出通道数相同),第二层开始所有的卷积层的通道数都是输出通道数的1/2,剩下的1/2通道的输出特征由第一层卷积层的输出经廉价操作产生。

4.2 带mix操作的G-Ghost stage

4.2.1 mix操作

复杂特征经过逐层提取,包含更丰富的语义信息;而Ghost特征由浅层进行廉价操作所得,可能缺乏一部分深层信息。为了弥补信息的不足,作者提出利用复杂路径中的中间特征来增强廉价运算的表示能力。
下面是mix操作的过程(如何利用复杂路径的中间特征增强廉价操作的表示能力,从而得到语义信息丰富的Ghost特征):
【目标检测】G-GhostNet_第5张图片
【目标检测】G-GhostNet_第6张图片

4.2.2 带mix操作的G-Ghost stage

下图是λ = 0.5的带有mix操作的G-Ghost阶段示意图
【目标检测】G-GhostNet_第7张图片
注意:图(c)带mix操作的G-Ghost stage是在G-Ghost stage的基础上,将复杂特征与经过mix操作后的Ghost特征进行concat融合。此时的Ghost特征的语义信息是丰富的。

5、复杂度分析

【目标检测】G-GhostNet_第8张图片

6、G-GhostNet网络结构

【目标检测】G-GhostNet_第9张图片
G-GhostNet是由G-Ghost stage核心思想所设计的stage堆叠起来形成的

  • block:采用残差模块
  • output:输出特征图的大小
  • out:输出特征图的通道数
  • stride:步距

注意:
(1)使用带mix操作的G-Ghost stage,使用1×1卷积作为cheap廉价运算,λ=0.4
(2) resiual bottleneck中的expansion(扩展)因子=3,并对每个残差模块引入SE机制
(3)使用ReLU激活函数

你可能感兴趣的:(目标检测,目标检测,计算机视觉,深度学习)