GhostNet:廉价操作得到更多的特征

文章目录

  • 摘要
  • 1. 简介
  • 2. 相关工作
    • 2.1. 模型的压缩
    • 2.2. 紧凑的模型设计
  • 3.方法
    • 3.1. 提供更多特征的Ghost模块
    • 3.2. 构建高效的cnn
  • 4. 实验
    • 4.1. Ghost模块的效率
      • 4.1.1 Toy实验。
      • 4.1.2 CIFAR-10。
      • 4.1.3 ImageNet上的大模型
    • 4.2. GhostNet关于可视化基准测试
      • 4.2.1 ImageNet分类
      • 4.2.2目标检测
  • 5. 结论

摘要

论文链接:https://arxiv.org/pdf/1911.11907.pdf
GhostNet:廉价操作得到更多的特征_第1张图片

由于内存和计算资源的限制,在嵌入式设备上部署卷积神经网络(CNNs)非常困难。特征映射的冗余性是成功的神经网络的一个重要特征,但在神经结构设计方面的研究很少。本文提出了一种新的Ghost模块,可以通过低成本操作生成更多的特征图。我们在一组内在特征映射的基础上,以较低的代价进行一系列线性变换,生成许多能充分揭示内在特征信息的Ghost特征映射。提出的Ghost模块可以作为即插即用组件来升级现有的卷积神经网络。Ghost瓶颈被设计成堆叠Ghost模块,这样就可以轻松建立轻量级的GhostNet。在基准测试上进行的实验表明,提出的Ghost模块是基线模型中卷积层的一个令人印象深刻的替代方案,我们的GhostNet在ImageNet ILSVRC-2012分类数据集上的计算成本与MobileNetV3相似,可以实现更高的识别性能(例如75.7%的top-1精度)。代码可从https://github.com/huawei-noah/ghostnet获得。

1. 简介

深度卷积神经网络在各种计算机视觉任务中表现出出色的性能,如图像识别[30,13]、目标检测[43,33]和语义分割[4]。传统的CNNs通常需要大量的参数和浮点运算(FLOPs)才能达到令人满意的精度,例如ResNet-50[16]的参数约为25.6M,处理大小为224 × 224的图像需要4.1B FLOPs。因此,深度神经网络设计的近期趋势是探索移动设备(如智能手机和自动驾驶汽车)性能可接受的便携、高效网络架构。

多年来,人们提出了一系列研究紧凑深度神经网络的方法,如网络修剪[14,39]、低位量化[42,26]、知识蒸馏[19,57]等。Han等人[14]提出修剪神经网络中不重要的权重。[31]利用’ 1范数正则化来修剪滤波器以获得高效的cnn。[42]将权重和激活量化为1位数据,以实现较大的压缩和加速比。[19]引入了知识蒸馏,将知识从较大的模型转移到较小的模型。然而,这些方法的性能通常是被预先训练的深度神经网络作为基线的上界。

除此之外,高效的神经体系结构设计在建立高效的深度网络方面具有非常大的潜力,并且使用较少的参数和计算,最近已经取得了相当大的成功。这类方法还可以为自动搜索方法提供新的搜索单元[62,55,5]。例如,MobileNet[21,44,20]利用深度卷积和点卷积构造一个单元,用更大的滤波器近似原始卷积层,并取得了相当的性能。ShuffleNet[61,40]进一步探索了信道洗牌操作来增强轻量级模型的性能。
GhostNet:廉价操作得到更多的特征_第2张图片

训练有素的深度神经网络特征图中丰富甚至冗余的信息通常保证了对输入数据的全面理解。例如,图1展示了ResNet-50生成的输入图像的一些特征映射,其中存在许多相似的特征映射对,就像彼此的幽灵。特征映射的冗余可能是一个成功的深度神经网络的重要特征。我们倾向于接受它们,而不是避免冗余的功能映射,但是以一种成本效益的方式。

在本文中,我们引入了一种新的Ghost模块,它可以用更少的参数生成更多的特征。具体来说,将深度神经网络中的普通卷积层分为两部分。第一部分涉及普通的卷积,但它们的总数将被严格控制。在第一部分的固有特征映射的基础上,通过一系列简单的线性运算生成更多的特征映射。与普通卷积神经网络相比,该Ghost模块在不改变输出特征映射大小的情况下,降低了所需的参数总数和计算复杂度。基于Ghost模块,我们建立了一个高效的神经体系结构,即GhostNet。我们首先替换基准神经体系结构中原有的卷积层,以演示Ghost模块的有效性,然后验证我们的GhostNets在几个基准视觉数据集上的优越性。实验结果表明,所提出的Ghost模块能够在保持相似识别性能的同时降低通用卷积层的计算成本,并且在移动设备上的各种快速推理任务中,GhostNets可以超过目前最先进的高效深度模型如MobileNetV3 [20]。

本文的其余部分组织如下:第2节简要总结了该领域的相关工作,第3节介绍了提出的Ghost模块和GhostNet,第4节进行了实验和分析,最后在第5节给出了结论。

2. 相关工作

本文从模型压缩和紧致模型设计两部分回顾了现有的神经网络轻量化方法。

2.1. 模型的压缩

对于给定的神经网络,模型压缩旨在减少计算、能量和存储成本[14,48,11,54]。剪枝连接[15,14,50]切断了神经元之间不重要的连接。信道修剪[51,18,31,39,59,23,35]进一步目标是去除无用的信道,以便在实践中更容易加速。模型量化[42,24,26]表示具有离散值的神经网络的权重或激活,用于压缩和计算加速。具体来说,只有1位值的二值化方法[24,42,38,45]可以通过高效的二进制操作极大地加速模型。张量分解[27,9]通过利用权重的冗余和低秩特性,减少了参数或计算量。知识蒸馏[19,12,3]利用较大的模型来教授较小的模型,这提高了较小模型的性能。这些方法的性能通常取决于给定的预训练模型。对基本操作和体系结构的改进将使它们走得更远。

2.2. 紧凑的模型设计

随着在嵌入式设备上部署神经网络的需求,近年来提出了一系列紧凑模型[7,21,44,20,61,40,53,56]。例外[7]利用深度卷积运算更有效地利用模型参数。MobileNets[21]是一系列基于深度可分卷积的轻量级深度神经网络。MobileNetV2[44]提出了反向残留块,而MobileNetV3[20]进一步利用了AutoML技术[62,55,10],以更少的flop实现了更好的性能。ShuffleNet[61]引入信道洗牌操作,改善信道组之间的信息流交换。ShuffleNetV2[40]进一步考虑了目标硬件上的实际速度,以便进行紧凑模型设计。虽然这些模型以很少的flop获得了良好的性能,但特征映射之间的相关性和冗余性从来没有得到很好的利用。

3.方法

在本节中,我们将首先介绍Ghost模块,利用一些小过滤器从原始的卷积层生成更多的特征映射,然后开发一个具有非常高效的架构和高性能的新的GhostNet。

3.1. 提供更多特征的Ghost模块

深度卷积神经网络[30,46,16]通常由大量的卷积组成,导致大量的计算成本。尽管最近的工作如MobileNet[21,44]和ShuffleNet[40]引入了深度卷积或shuffle操作,使用更小的卷积滤波器(浮点数操作)构建高效的cnn,但剩余的1 × 1卷积层仍将占用大量内存和FLOPs。

考虑到主流cnn计算的中间特征图(如图1所示)普遍存在冗余,我们建议减少所需资源,即用于生成中间特征图的卷积滤波器。在实际操作中,给定输入数据 X ∈ R c × h × w X \in \mathbb{R}^{c \times h \times w} XRc×h×w,其中c为输入通道数,h和w分别为输入数据的高度和宽度,则任意卷积层生成n个特征图的操作可表述为
Y = X ∗ f + b (1) Y=X * f+b \tag{1} Y=Xf+b(1)

其中,*是卷积运算,b是偏置项, Y ∈ R h ′ × w ′ × n Y \in \mathbb{R}^{h^{\prime} \times w^{\prime} \times n} YRh×w×n是有n个通道的输出特征映射, f ∈ R c × k × k × n f \in \mathbb{R}^{c \times k \times k \times n} fRc×k×k×n是该层的卷积滤波器。其中h0和w0分别为输出数据的高度和宽度,k × k分别为卷积滤波器f的核大小。在这个卷积过程中,所需的flop数量可以计算为 n ⋅ h 0 ⋅ w 0 ⋅ c ⋅ k ⋅ k n·h0·w0·c·k·k nh0w0ckk,由于滤波器n的数量和通道数量c通常非常大(例如256或512),这个数字通常高达数十万。

GhostNet:廉价操作得到更多的特征_第3张图片

根据公式1,f和b中待优化参数的数量由输入和输出特征映射的尺寸显式决定。从图1中可以观察到,卷积层的输出特征映射通常包含很多冗余,其中一些特征映射可能彼此相似。我们指出,对于大量的flop和参数,没有必要逐个生成这些冗余的特征映射。假设输出特征映射是一些带有一些廉价转换的内在特征映射的“ghost”。这些固有特征图通常较小,由普通卷积滤波器产生。具体地说,m个固有特征映射 Y ′ ∈ R h ′ × w ′ × m Y^{\prime} \in \mathbb{R}^{h^{\prime} \times w^{\prime} \times m} YRh×w×m是使用初级卷积生成的:
Y ′ = X ∗ f ′ (2) Y^{\prime}=X * f^{\prime} \tag{2} Y=Xf(2)
其中 f ′ ∈ R c × k × k × m f^{\prime} \in \mathbb{R}^{c \times k \times k \times m} fRc×k×k×m为所使用的滤波器,m≤n,为简便省略了偏置项。滤波器大小、步幅、填充等超参数与普通卷积(公式1)中的超参数相同,以保持输出特征映射的空间大小(即 h ′ h^{\prime} h w ′ w^{\prime} w)一致。为了进一步获得所需的n个特征映射,我们建议对 Y ′ Y^\prime Y中的每个固有特征进行一系列廉价的线性操作,根据以下函数生成s个鬼特征:
y i j = Φ i , j ( y i ′ ) , ∀ i = 1 , … , m , j = 1 , … , s (3) y_{i j}=\Phi_{i, j}\left(y_{i}^{\prime}\right), \quad \forall i=1, \ldots, m, \quad j=1, \ldots, s \tag{3} yij=Φi,j(yi),i=1,,m,j=1,,s(3)
其中 y i ′ y_{i}^{\prime} yi Y ′ Y^\prime Y中的第i个固有特征映射, Φ i , j \Phi_{i, j} Φi,j上述函数中的j为生成第j个Ghost特征映射 y i j y_{i j} yij的第j个(除最后一个)线性操作,即 y i ′ y_{i}^{\prime} yi可以有一个或多个Ghost特征映射 { y i j } j = 1 s \left\{y_{i j}\right\}_{j=1}^{s} {yij}j=1s。最后一个 Φ i , s \Phi_{i, s} Φi,s是用于保留固有特征映射的标识映射,如图2(b)所示。利用式3,我们可以得到n = m·s特征映射 Y = [ y 11 , y 12 , ⋯   , y m s ] Y=\left[y_{11}, y_{12}, \cdots, y_{m s}\right] Y=[y11,y12,,yms]作为Ghost模块的输出数据,如图2(b)所示。注意,线性运算Φ操作在每个通道上,其计算成本比普通卷积小得多。在实际操作中,Ghost模块中可能存在几种不同的线性操作,例如3 × 3和5 × 5线性核,这将在实验部分进行分析。

与现有方法的区别。 提出的Ghost模块与现有的高效卷积方案有很大的不同。i)与[21,61]中广泛利用1×1点卷积的单元相比,Ghost模块中的主卷积可以自定义内核大小。ii)现有方法[21,44,61,40]采用点卷积处理信道间的特征,然后采用深度卷积处理空间信息。相比之下,Ghost模块采用普通卷积先生成一些固有特征映射,然后利用廉价的线性运算对特征进行增广,增加信道。iii)在以往高效的体系结构中,处理每个特征图的操作仅限于深度卷积或移位操作[21,61,53,28],而Ghost模块中的线性操作可以具有较大的多样性。iv)此外,在Ghost模块中将身份映射与线性变换并行,以保留固有特征映射。

复杂性分析。 由于我们可以利用公式3中提出的Ghost模块来生成与普通卷积层相同数量的特征映射,我们可以轻松地将Ghost模块集成到现有设计良好的神经体系结构中,以减少计算成本。在这里,我们进一步分析了使用Ghost模块在内存使用和理论加速方面的收益。例如,有1个标识映射和 m ⋅ ( s − 1 ) = n s ⋅ ( s − 1 ) m \cdot(s-1)=\frac{n}{s} \cdot(s-1) m(s1)=sn(s1)个线性操作,每个线性操作的平均内核大小等于d × d。理想情况下,n·(s−1)个线性操作可以有不同的形状和参数,但尤其考虑到CPU或GPU卡的效用,在线推理会受到阻碍。因此,我们建议在一个Ghost模块中采用相同大小的线性操作(例如3 × 3或5 × 5),以便有效地实现。用Ghost模块升级普通卷积的理论加速比为
r s = n ⋅ h ′ ⋅ w ′ ⋅ c ⋅ k ⋅ k n s ⋅ h ′ ⋅ w ′ ⋅ c ⋅ k ⋅ k + ( s − 1 ) ⋅ n s ⋅ h ′ ⋅ w ′ ⋅ d ⋅ d = c ⋅ k ⋅ k 1 s ⋅ c ⋅ k ⋅ k + s − 1 s ⋅ d ⋅ d ≈ s ⋅ c s + c − 1 ≈ s , (4) \begin{aligned} r_{s} &=\frac{n \cdot h^{\prime} \cdot w^{\prime} \cdot c \cdot k \cdot k}{\frac{n}{s} \cdot h^{\prime} \cdot w^{\prime} \cdot c \cdot k \cdot k+(s-1) \cdot \frac{n}{s} \cdot h^{\prime} \cdot w^{\prime} \cdot d \cdot d} \\ &=\frac{c \cdot k \cdot k}{\frac{1}{s} \cdot c \cdot k \cdot k+\frac{s-1}{s} \cdot d \cdot d} \approx \frac{s \cdot c}{s+c-1} \approx s, \end{aligned} \tag{4} rs=snhwckk+(s1)snhwddnhwckk=s1ckk+ss1ddckks+c1scs,(4)
其中d × d的大小与k × k相似, s ≪ c s \ll c sc。同样,压缩比可以计算为
r c = n ⋅ c ⋅ k ⋅ k n s ⋅ c ⋅ k ⋅ k + ( s − 1 ) ⋅ n s ⋅ d ⋅ d ≈ s ⋅ c s + c − 1 ≈ s (5) r_{c}=\frac{n \cdot c \cdot k \cdot k}{\frac{n}{s} \cdot c \cdot k \cdot k+(s-1) \cdot \frac{n}{s} \cdot d \cdot d} \approx \frac{s \cdot c}{s+c-1} \approx s \tag{5} rc=snckk+(s1)snddnckks+c1scs(5)

与利用Ghost模块得到的加速比相等。

GhostNet:廉价操作得到更多的特征_第4张图片

3.2. 构建高效的cnn

Ghost Bottlenecks。 利用Ghost模块的优点,介绍了专为小型cnn设计的Ghost Bottlenecks(G-bneck)。如图3所示,Ghost Bottlenecks看起来类似于ResNet[16]中的基本残留块,其中集成了几个卷积层和快捷方式。所提出的Ghost Bottlenecks主要由两个堆叠的Ghost模块组成。第一个Ghost模块充当一个扩展层,增加通道的数量。我们把输出通道的数量与输入通道的数量之比称为膨胀比。第二个Ghost模块减少了与快捷路径匹配的通道数量。然后在这两个Ghost模块的输入和输出之间连接快捷方式。批处理归一化(BN)[25]和ReLU非线性应用于每一层之后,除了根据MobileNetV2[44]的建议在第二个Ghost模块之后不使用ReLU。上面描述的Ghost Bottlenecks是针对stride=1的。对于stride=2的情况,通过下采样层实现快捷路径,并在两个Ghost模块之间插入一个stride=2的深度卷积。在实际应用中,Ghost模块的主要卷积为点卷积,以提高效率。

GhostNet。 基于Ghost Bottlenecks,我们提出了如表7所示的GhostNet。由于MobileNetV3[20]的优势,我们基本上遵循了它的架构,用我们的Ghost Bottlenecks代替了MobileNetV3中的Bottleneck 块。GhostNet主要由一堆Ghost Bottlenecks组成,Ghost模块作为构建块。第一层是一个标准的卷积层,有16个滤波器,然后是一系列的Ghost Bottleneck 和逐步增加的通道。根据输入特征映射的大小,这些Ghost Bottleneck 被分组到不同的阶段。除了每个阶段的最后一个Bottleneck 是stride=2之外,所有Ghost Bottleneck 都是用stride=1应用的。最后利用全局平均池和卷积层将特征映射转换为1280维的特征向量进行最终分类。注意力激励(SE)模块[22]也应用于一些Ghost Bottlenecks的残差层,如表7所示。与MobileNetV3相比,我们没有使用hard-swish非线性函数,因为它有很大的延迟。所提出的体系结构提供了一个可供参考的基本设计,但进一步的超参数调优或基于Ghost模块的自动体系结构搜索将进一步提高性能。

宽度乘数。 尽管表7中给出的体系结构已经可以提供低延迟和保证精度,但是在某些场景中,我们可能需要更小、更快的模型,或者对特定任务要求更高的精度。为了根据需要定制网络,我们可以简单地在每一层的通道数量上均匀地乘以一个因子α。这个因子α被称为宽度乘数,因为它可以改变整个网络的宽度。我们将宽度乘子为α的GhostNet表示为GhostNet-α×。宽度乘法器可以通过α2对模型大小和计算代价进行二次控制。通常较小的α会导致较低的延迟和较低的性能,反之亦然。
GhostNet:廉价操作得到更多的特征_第5张图片

4. 实验

在本节中,我们首先用提出的Ghost模块替换原有的卷积层,以验证其有效性。然后,使用新模块构建的GhostNet体系结构将在图像分类和目标检测基准上进一步测试。

数据集和设置。为了验证所提出的Ghost模块和GhostNet架构的有效性,我们在几个基准可视化数据集上进行了实验,包括cifr -10[29]、ImageNet ILSVRC 2012数据集[8]和MS COCO对象检测基准[34]。

利用CIFAR-10数据集分析了该方法的性质,该方法由10类6万张32 × 32彩色图像组成,其中5万张训练图像和1万张测试图像。采用了一种常见的数据增强方案,包括随机裁剪和镜像[16,18]。ImageNet是一个大型的图像数据集,包含超过1.2M的训练图像和属于1000个类的50K验证图像。训练过程中采用了常用的数据预处理策略,包括随机裁剪和翻转[16]。我们还在MS COCO数据集[34]上进行了目标检测实验。按照惯例[32,33],我们在COCO trainval35k分割(80K训练图像和来自验证集的随机35K图像子集的联合)上训练模型,并在使用5K图像的minival分割上评估模型。

4.1. Ghost模块的效率

4.1.1 Toy实验。

我们在图1中给出了一个图表,指出存在一些相似的特征映射对,可以通过一些高效的线性操作来高效地生成。在这里,我们首先进行了一个toy实验,观察原始特征图与生成的Ghost特征图之间的重构误差。以图1中的三对(即红色、绿色和蓝色)为例,使用ResNet-50[16]的第一个残留块提取特征。我们将左边的特征作为输入,另一个特征作为输出,利用一个小型深度卷积滤波器学习映射,即它们之间的线性运算Φ。卷积滤波器d的大小在1到7之间,每对不同d的MSE(均方误差)值如表2所示。
GhostNet:廉价操作得到更多的特征_第6张图片
从表2中可以发现,所有的MSE值都非常小,这说明深度神经网络中的特征映射之间具有很强的相关性,这些冗余特征映射可以由几个固有特征映射生成。除了上述实验中使用的卷积,我们还可以探索其他一些低成本的线性运算来构造Ghost模块,如仿射变换和小波变换。然而,卷积是一种高效的运算,目前的硬件已经很好地支持它,它可以涵盖许多广泛使用的线性运算,如平滑、模糊、运动等。此外,虽然我们也可以了解每个过滤器w.r.t的大小。线性操作Φ,不规则模块将降低计算单元(如CPU和GPU)的效率。因此,我们建议将Ghost模块中的d设为固定值,并在接下来的实验中利用深度卷积实现Eq.3来构建高效的深度神经网络。
GhostNet:廉价操作得到更多的特征_第7张图片

4.1.2 CIFAR-10。

在CIFAR-10数据集上,我们在两种流行的网络架构(VGG-16[46]和ResNet-56[16])上评估了提出的Ghost模块。由于VGG-16最初是为ImageNet设计的,所以我们使用文献中广泛使用的VGG-16的变体[60]进行下面的实验。将两个模型中的卷积层全部替换为Ghost模块,新模型分别命名为Ghost- vgg -16和Ghost- resnet -56。我们的训练策略与[16]的设置密切相关,包括动量、学习速率等。我们首先分析了Ghost模块中两个超参数s和d的影响,然后将Ghost模型与现有方法进行了比较。

超参数分析。如等式3所述,提出的高效深度神经网络的Ghost模块具有两个超参数,即s用于生成m = n / s n / s n/s的固有特征映射,以及计算Ghost特征映射的线性操作的核大小d × d(即深度卷积滤波器的大小)。在VGG-16架构上测试了这两个参数的影响。

首先,我们固定s = 2,在{1,3,5,7}范围内调整d,并在表3中列出CIFAR-10验证集的结果。我们可以看到,d = 3的Ghost模块比更小或更大的模块性能更好。这是因为大小为1 × 1的核无法在特征图上引入空间信息,而d = 5或d = 7等较大的核会导致过拟合和更多的计算。因此,为了提高有效性和效率,我们在接下来的实验中采用d = 3。

在研究了提议的Ghost模块中使用的内核大小之后,我们保持d = 3,并在{2,3,4,5}的范围内调优其他超参数s。事实上,s与生成的网络的计算成本直接相关,即如Eq. 5和Eq. 4所分析的,s越大,压缩和加速比就越大。从表4的结果来看,当我们增加s时,flop明显减少,精度逐渐降低,这与预期一致。特别是当s = 2,即对VGG-16压缩2倍时,我们的方法甚至比原模型略好,说明了所提出的Ghost模块的优越性。
GhostNet:廉价操作得到更多的特征_第8张图片

与SOAT的比较。我们将GhostNet与VGG-16和ResNet-56架构上的几个代表性的最先进模型进行比较。比较的方法包括不同类型的模型压缩方法, ℓ 1 \ell_{1} 1剪枝[31,37],SBP[18],通道剪枝(CP)[18]和AMC[17]。对于VGG-16,我们的模型在2倍加速度下可以获得比原模型略高的精度,这说明VGG模型存在相当大的冗余。我们的Ghost-VGG-16 (s = 2)以最高的性能(93.7%)胜过竞争对手,但显著减少了flop。对于已经比VGG-16小很多的ResNet-56,我们的模型可以以2倍的加速达到与基线相当的精度。我们还可以看到,其他最先进的模型具有类似或更大的计算成本,但其精度低于我们的模型。
GhostNet:廉价操作得到更多的特征_第9张图片

特征地图的可视化。我们还将幽灵模块的特征映射可视化,如图4所示。虽然生成的特征图来自于主特征图,但它们之间却有着显著的差异,这意味着生成的特征具有足够的灵活性,能够满足特定任务的需要。

4.1.3 ImageNet上的大模型

接下来,我们将Ghost模块嵌入到标准ResNet-50[16]中,并在大规模的ImageNet数据集上进行实验。ResNet-50的参数约为25.6M, flop为4.1B, top-5误差为7:8%。我们使用我们的Ghost模块替换ResNet-50中的所有卷积层来获得紧凑的模型,并将结果与几种最先进的方法进行比较,如表6所示。训练设置(如优化器、学习率和批处理大小)与[16]中的设置完全相同,以便进行公平的比较。
GhostNet:廉价操作得到更多的特征_第10张图片

从表6的结果可以看出,我们的GhostResNet-50 (s=2)在保持原始ResNet-50精度的同时,获得了约2倍的加速度和压缩比。与目前的Thinet[39]、NISP[59]、Versatile filters[49]和Sparse structure selection (SSS)[23]等方法相比,本方法在2×加速度设置下的性能显著提高。当我们进一步将s增加到4时,基于ghost的模型只有0:3%的精度下降,计算加速比约为4倍。相比之下,具有相似权重或flop的比较方法[53,58]的性能要比我们的方法低得多。

4.2. GhostNet关于可视化基准测试

在演示了所提出的Ghost模块在高效生成特征映射方面的优越性之后,我们接着评估了精心设计的GhostNet体系结构,如表7所示,分别使用了图像分类和对象检测任务上的Ghost瓶颈。

4.2.1 ImageNet分类

为了验证所提出的GhostNet的优越性,我们在ImageNet分类任务上进行了实验。我们遵循[61]中使用的大部分训练设置,除了当批大小为1024时,8个gpu上的初始学习率设置为0.4。所有的结果都在ImageNet验证集上报告了单一作物的top-1性能。对于GhostNet,为了简单起见,我们在主卷积中设置内核大小k = 1,在所有Ghost模块中设置s = 2和d = 3。
GhostNet:廉价操作得到更多的特征_第11张图片

GhostNet:廉价操作得到更多的特征_第12张图片

选择了几个现代小型网络架构作为竞争对手,包括MobileNet系列[21,44,20],ShuffleNet系列[61,40],ProxylessNAS [2], FBNet [52],MnasNet[47]等。结果汇总见表7。模型被分为三个计算复杂度级别,通常用于移动应用程序,即~ 50mflops, ~ 150mflops和200- 300mflops。从结果中我们可以看到,通常更大的flop在这些小型网络中导致更高的准确性,这表明了它们的有效性。我们的GhostNet在各种计算复杂度水平上始终优于其他竞争对手,因为GhostNet在利用计算资源生成特征映射方面效率更高。
GhostNet:廉价操作得到更多的特征_第13张图片

实际推理速度。 由于所提出的GhostNet是为移动应用程序设计的,我们进一步使用TFLite工具[1]在基于arm的手机上测量GhostNet的实际推理速度。按照[21,44]中的常见设置,我们使用批处理大小为1的单线程模式。从图7的结果可以看出,在相同的延迟情况下,GhostNet获得的top-1精度比MobileNetV3高约0.5%,并且GhostNet需要更少的运行时才能达到类似的性能。例如,75.0%精度的GhostNet只有40毫秒的延迟,而具有类似精度的MobileNetV3处理一张图像需要大约45毫秒。总体而言,我们的模型总体优于著名的先进模型,即MobileNet系列[21,44,20]、ProxylessNAS[2]、FBNet[52]和MnasNet[47]。

4.2.2目标检测

GhostNet:廉价操作得到更多的特征_第14张图片

为了进一步评估GhostNet的泛化能力,我们在MS COCO数据集上进行了对象检测实验。我们使用trainval35k分割作为训练数据,并报告了在minival分割上的平均平均精度(mAP)结果,如下[32,33]。两级Faster R-CNN与特征金字塔网络(FPN)[43,32]和一级RetinaNet[33]都被用作我们的框架,GhostNet作为骨干特征提取器的临时替代品。我们使用SGD对所有模型进行12个周期的训练,这些模型来自ImageNet预训练的权值和[32,33]中建议的超参数。输入图像的短边大小为800,长边不超过1333。表8显示了检测结果,其中FLOPs的计算采用常用的224 × 224图像。GhostNet在单级视网膜网和两级Faster R-CNN框架上实现了与MobileNetV2和MobileNetV3类似的mAP,计算成本显著降低。

5. 结论

为了降低当前深度神经网络的计算成本,本文提出了一种新型的Ghost模块来构建高效的神经结构。基本的Ghost模块将原始卷积层分成两部分,并利用较少的过滤器生成几个内在特征映射。然后,进一步应用一定数量的廉价变换操作,高效生成鬼特征图。在基准模型和数据集上进行的实验表明,该方法是一种即插即用的模块,可以在保持相当性能的情况下将原始模型转换为紧凑模型。此外,使用提议的新模块构建的GhostNet在效率和准确性方面都优于最先进的便携式神经体系结构。

你可能感兴趣的:(图像分类,深度学习,人工智能)