GhostNet: More Features from Cheap Operations论文初读

文章目录

  • 一、论文的工作
    • (一)问题发现
    • (二)解决问题
  • 二、Introduction
  • 三、Related Work
    • (一) Model Compression
    • (二) Compact Model Design
  • 四、Approach
    • (一)Ghost Module for More Features
    • (二)Building Efficient CNNs
  • 五、Experiments
    • (一)Efficiency of Ghost Module
      • 1、Toy Experiment.
      • 2、CIFAR-10
      • 3、Large Models on ImageNet
    • (二)Ghost on Visual Benchmarks
      • 1、ImageNet Classification
      • 2、Object Detection
  • 六、Conclusion

一、论文的工作

(一)问题发现

  • 有限的内存和计算资源使得CNNs在嵌入式设备上部署很困难。
  • CNNs一个很重要的特点是—特征冗余,但在神经架构设计的时候,很少关注到这个问题。

(二)解决问题

  • 提出了Ghost模块,简单的操作可产生更多的特征图。基于一组内在特征图,应用了一系列代价很小的线性转换产生许多Ghost特征图,这些Ghost特征图充分揭示了内在特征图的潜在信息。
  • Ghost模块即插即用,很方便地升级现有的卷积神经网络。
  • 堆叠Ghost模块获得Ghost bottlenecks,轻量化的GhostNet便轻松地建立起来了。
  • benchmarks实验表明,用Ghost模块代替基准模型中的卷积层是可行的,并且在ImageNet ILSVRC-2012分类数据集上做实验,GhostNet具有比MobileNetV3更高的识别性能(例如,75.7%top-1精度)。

二、Introduction

  • 深度卷积神经网络已经在各种计算机视觉任务上显示出出色的性能,比如图像识别,目标检测,语义分割。传统的CNNs通常需要大量的参数和浮点运算才能达到令人满意的精确度。ResNet-50具有大约25.6M参数,需要4.1B FLOPs来处理尺寸为224*224的图像。因此,进来的深度神经网络设计趋势是探索可移动设备(例如智能手机和自动驾驶汽车)具有可接受性能的便携且高效的网络架构体系。

  • 多年来,提出了一系列研究压缩神经网络的方法,比如网络剪枝,低位量化,只是蒸馏等。Han等人提出剪去神经网络中不重要的权重。《Pruning filters for efficient convnets》利用l1-norm正则化修剪CNNs滤波器,《Xnor-net:Imagenet classification using binary convolutional neural networks》量化权重和对1-bit数据的激活实现较大的压缩比和加速比。《Distilling the knowledge in a neural network》介绍了知识蒸馏方法,将知识从较大模型转换为较小模型。然而,这些方法的性能通常会受到其baselines的预训练深度神经网络的上限的约束。

  • 除此之外,有效的神经架构设计在建立具有较少参数和计算量的高效深度网络方面具有很大的潜力,最近取得了相当可观的成果。这些方法还可为自动搜索方法提供新的搜索单元。例如,MobileNet利用depthwise和pointwise卷积构建出近似原始卷积层的单元,这个单元具有较大滤波器,达到了可观的性能。ShuffleNet进一步探索通道shuffle操作,以增强轻量级模型的性能。

  • 训练有素的深度神经网络的特征图中的大量信息,甚至是冗余信息,通常可以保证全面了解输入数据。例如,图1展示的ResNet-50产生的一些特征图,其中存在许多相似的地方,就像彼此的重影。特征图的荣誉对一个成功地深度神经网络是一个重要的特征,与其去避免使用冗余的特征图,我们更愿意接纳它,以一种cost-efficient的方式。

  • 在本文中,我们介绍了一个全新的Ghost模块,使用较少的参数产生更多的特征。特别地,深度神经网络中的一般的卷积层被分成两部分。第一部分是普通卷积,但它们的总数被严格控制着。对第一部分的内在特征图进行一系列简单的线性操作以产生更多的特征图。与普通卷积神经网络相比,在不改变输出的特征图大小的情况下,该Ghost模块所需的参数总数和计算复杂度均已降低。基于Ghost模块,我们建立了有效的神经架构,名叫GhostNet。首先,我们替换基准神经机构上的普通卷积层以证明Ghost模块的有效性,然后在多个基准视觉数据集上验证GhostNets的优越性。实验结果表明,Ghost模块能够在保留相似的识别性能的同时降低通用卷积层的计算代价,GhostNets在不同的任务上超过MobileNetV3等先进的高效深度模型,在移动设备上能够快速识别。

  • 论文的剩余部分安排如下:第2节简要总结了这个领域的相关工作,接着第3节提出Ghost模块和GhostNet,第4节是实验和分析,最后,第5节总结工作。

三、Related Work

这部分我们重新审视轻量化神经网络的方法:模型压缩和紧凑模型设计。

(一) Model Compression

对于开放式神经网络,模型压缩目标是减少计算、能源和存储代价。

  1. 修剪连接断开神经元间不重要的连接。
  2. 通道修剪的目标在于移除无用的通道,以便在实践中更加轻松地加速。
  3. 模型量化表示能够压缩和加速计算的神经网络中具有离散值的权重和激活函数。具体来说,仅具有1-bit值的二值化方法可以通过有效的二进制运算极大地加速模型。
  4. 张量分解利用权重的冗余和低秩属性减少参数或者计算量。
  5. 知识蒸馏利用较大模型为较小模型讲授知识,从而提高较小模型的性能。

这些方法的性能通常取决于给定的与训练模型。基础操作和体系结构的改进将使模型拥有更长久的生命力。

(二) Compact Model Design

由于嵌入式设备上部署神经网络的需求,几年来提出了一系列紧凑模型。

  • SqueezeNet 使用bottleneck方法以少50倍的参数达到AlexNet级别的精度。
  • Xception 利用deepwise卷积操作来更有效地使用模型参数。
  • MobileNets是一系列基于深度可分离卷积的轻量化深度神经网络。
  • MobileNetV2提出了反向残差块。
  • MobileNetV3进一步利用AutoML技术以更少的FLOP实现了更好的性能。
  • ShuffleNet引入了通道shuffle操作,以改善通道组之间的信息流交换。
  • ShuffleNetV2进一步考虑了紧凑模型设计时目标硬件的实际速度。
    尽管这些模型仅用很少的FLOP即可获得出色的性能,但从未充分利用特征图之间的相关性和冗余性。

四、Approach

在这一节中,我们将介绍利用一些小的滤波器从原始卷积层中产生更多特征图的Ghost模块,然后构建非常高效且具有高性能的GhostNet。

(一)Ghost Module for More Features

  • 深度卷积神经网络通常由大量的卷积组成,导致大量的计算成本。尽管诸如MobileNet和ShuffleNet之类的最新工作已经引入了深度卷积或shuffle操作,以使用较小的卷积滤波器(浮点数运算)来构建有效的CNN,但是其余的1×1卷积层仍会占用大量内存和FLOPs。
    GhostNet: More Features from Cheap Operations论文初读_第1张图片
  • 如图1所示,主流CNN计算出的中间特征图中存在广泛的冗余,我们建议减少所需资源,即 用于生成中间特征图的卷积滤波器。 给定输入数据 X ∈ R c × h × w X\in \mathbb{R}^{c\times h\times w} XRc×h×w,其中 c c c是输入通道数, h h h w w w分别是输入数据的高度和宽度,用于生成 n n n个特征图的任意卷积层的操作可以表述为
    Y = X ∗ f + b (1) Y=X*f+b\tag{1} Y=Xf+b(1)
    ∗ * 代表卷积操作, b b b是偏置项, Y ∈ R h ′ × w ′ × n Y\in \mathbb{R}^{h^{'}\times w^{'}\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是本层的卷积核。此外, h ′ h^{'} h w ′ w^{'} w是输出数据的高和宽, k × k k\times k k×k是卷积滤波器 f f f的卷积核大小。卷积操作所需的FLOPs可以这样计算: n ⋅ h ′ ⋅ w ′ ⋅ c ⋅ k ⋅ k n\cdot h^{'}\cdot w^{'}\cdot c\cdot k\cdot k nhwckk,由于滤波器的数目n和信道数目c非常大(例如256或512),FLOPs通常多达数十万。
  • 根据等式(1),要优化的参数数量( f f f b b b中)由输入和输出特征图的尺寸确定。 如图1所示, 如图1所示,卷积层的输出特征图通常包含大量冗余,其中一些彼此相似。 我们指出,没有必要使用大量的FLOPs和参数一一生成这些冗余特征图。 假设输出特征图是少数内部特征图经过简单转换得到的“ghosts”。 这些内在特征图通常具有较小的尺寸,由普通的卷积滤波器生成。 具体来说,使用基本的卷积生成 m m m个内在特征图 Y ′ ∈ R h ′ × w ′ × m Y^{'}\in \mathbb{R}^{h^{'}\times w^{'}\times m} YRh×w×m
    Y ′ = X ∗ f ′ , (2) Y^{'}=X*f^{'},\tag{2} Y=Xf,(2)
    f ′ ∈ R c × k × k × m f^{'}\in \mathbb{R}^{c\times k\times k\times m} fRc×k×k×m表示使用的滤波器, m ≤ n m\leq n mn,且为简单起见,省略了偏置项。超参数,诸如滤波器大小,步长,填充,与普通卷积(公式(1))相同,保持输出特征图的空间大小(即 h ′ h^{'} h w ′ w^{'} w)是一致的。进一步,为了获得 n n n个特征图,我们提出在每一个内在特征 Y ′ Y^{'} Y上进行一些列简单的线性操作来产生 s s s个ghost特征,由下面的公式计算:
    y i j = Φ i , j ( y i ′ ) , ∀ i = 1 , . . . , m , j = 1 , . . . , s , 3 ) (() y_{ij}=\Phi _{i,j}(y_{i}^{'}), \forall i=1,...,m, j=1,...,s,\tag(3) yij=Φi,j(yi),i=1,...,m,j=1,...,s,3)(()
    y i ′ y_{i}^{'} yi Y ′ Y^{'} Y中第 i i i个内在特征图,上述公式中的 Φ i , j \Phi _{i,j} Φi,j是产生第 j j j个ghost特征图y_{ij}的第 j j j次(除最后一次以外)线性操作,也就是说, y i ′ y_{i}^{'} yi可以由一个或者多个ghost特征图 { y i j } j = 1 s \left \{ y_{ij} \right \}_{j=1}^{s} {yij}j=1s。最后一次的 Φ i , s \Phi _{i,s} Φi,s是用于保存内在特征图的identity mapping,如图2(b)所示。利用公式(3),我们可以得到 n = m ⋅ s n=m\cdot s n=ms个特征图,如图2(b)所示, Y = [ y 11 , y 12 , ⋅ ⋅ ⋅ , y m s ] Y=\left [ y_{11},y_{12},\cdot \cdot \cdot ,y_{ms} \right ] Y=[y11,y12,,yms]是Ghost模块的输出。注意,在每个通道上的线性操作 Φ \Phi Φ的计算代价比普通卷积小很多。实际上,一个Ghost模块可以由几种不同的线性操作,例如, 3 × 3 3\times 3 3×3 5 × 5 5\times 5 5×5的线性核,实验部分将对此进行分析。
    GhostNet: More Features from Cheap Operations论文初读_第2张图片
  • 与现有方法的不同之处
    Ghost模块与现有的有效卷积方案有很大的不同。
    i) 与使用 1 × 1 1\times 1 1×1pointwise卷积单元相比,Ghost模块中的基本卷积可以自定义核大小。
    ii) 现有方法采用pointwise卷积来处理跨通道的特征,然后采用depthwise卷积来处理空间信息。相比之下,Ghost模块采用普通卷积首先生成一些内部特征图,然后利用简单的线性运算来增强特征并增加通道。
    iii) 在先前的架构中,处理每个特征图的操作仅限于depthwise卷积或移位操作,而Ghost模块中的线性操作具有多样性。
    iv)此外,identity mapping与Ghost模块中的线性变换并行,以保留内在特征图。
  • 复杂度分析
    我们可以利用等式3的Ghost模块生成与普通卷积层相同数量的特征图,我们可以轻松地将Ghost模块集成到现有设计良好的神经体系结构中,以降低计算成本。在这里,我们通过使用Ghost模块来进一步分析内存使用和理论上加速的效益。 例如,存在1个identity mapping和 m ⋅ ( s − 1 ) = n s ⋅ ( s − 1 ) m\cdot (s-1)=\frac{n}{s}\cdot (s-1) m(s1)=sn(s1)线性运算,每个线性运算的平均内核大小等于 d × d d\times d d×d。 理想情况下, n ⋅ ( s − 1 ) n\cdot (s-1) n(s1)线性运算可以具有不同的形状和参数,但是特别是考虑到CPU或GPU卡的实用性,在线推理将受到阻碍。 因此,我们建议在一个Ghost模块中采用大小相同(例如 3 × 3 3\times 3 3×3 5 × 5 5\times 5 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) r_{s} =\frac{n\cdot h^{'}\cdot w^{'}\cdot c\cdot k\cdot k}{\frac{n}{s}\cdot h^{'}\cdot w^{'}\cdot c\cdot k\cdot k+(s-1)\cdot \frac{n}{s}\cdot h^{'}\cdot w^{'}\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.\tag{4} rs=snhwckk+(s1)snhwddnhwckk=s1ckk+ss1ddckks+c1scs.(4)
    d × d d\times d d×d k × k k\times k k×k大小相似,且 s ≪ c s\ll c sc。相似地,压缩比如下
    r c = n ⋅ c ⋅ k ⋅ k n s ⋅ c ⋅ k ⋅ k + s − 1 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+\frac{s-1}{s}\cdot d\cdot d}\approx \frac{s\cdot c}{s+c-1}\approx s.\tag(5) rc=snckk+ss1ddnckks+c1scs.5)(()
    与使用Ghost模块加速比相等。

(二)Building Efficient CNNs

GhostNet: More Features from Cheap Operations论文初读_第3张图片
Ghost Bottlenecks.
利用Ghost模块的优势,我们引入专门为小型CNN设计的Ghost bottleneck(G-bneck)。 如图3所示,Ghost瓶颈似乎类似于ResNet中一些卷积层与短连接中的基本残差块。 Ghost bottleneck主要由两个堆叠的Ghost模块组成。 第一个Ghost模块用作扩展层,增加了通道数。 我们将输出通道数与输入通道数之比称为扩展比。 第二个Ghost模块减少了通道数以匹配shortcut path。 然后,将shortcut连接到这两个Ghost模块的输入和输出之间。 在每一层之后应用批处理归一化(BN)和ReLU非线性,受MobileNetV2的启发,ReLU在第二个Ghost模块之后不使用。上述Ghost bottleneck适用于stride= 1。 对于stride = 2的情况,shortcut path由下采样层,在两个Ghost模块之间插入了stride = 2的depthwise卷积。 实际上,出于效率考虑,Ghost模块中主要的卷积是pointwise卷积。
GhostNet.
基于ghost bottleneck,我们提出的GhostNet,如表1所示。出于其优越性,我们依照MobileNetV3的基本体系结构,并用我们的Ghost bottleneck替换MobileNetV3中的bottleneck block。GhostNet主要是堆叠Ghost bottleneck组成,其中以Ghost模块为基块。 第一层是具有16个滤波器的标准卷积层,然后是一系列Ghost bottlenecks,通道逐渐增加。 这些Ghost bottlenecks根据其输入图的大小分为不同的组。 所有Ghost bottlenecks都以stride = 1进行应用,每个阶段的最后一个是stride = 2。 最后,利用全局平均池化和卷积层将特征图转换为1280维特征向量以进行最终分类。如表1所示,SE模块中也适用于某些Ghost bottlenecks中的残差层。与MobileNetV3相比,由于延迟长,我们不使用非线性函数。 尽管进一步的超参数调整或基于自动架构搜索的Ghost模块将进一步提高性能,但所提出的架构为基本设计提供了参考。
GhostNet: More Features from Cheap Operations论文初读_第4张图片
Width Multiplier.
尽管表7中给出的体系结构可以提供低延迟和有保证的准确性,但是在某些情况下,我们可能需要在特定任务上使用更小更快的模型或更高的准确性。 为了根据需要定制网络,我们可以简单地在每一层为通道数乘以因子 α \alpha α。该因数 α \alpha α被称为宽度倍增器,因为它可以改变整个网络的宽度。 宽度乘数可以控制模型的大小,计算成本由 α 2 \alpha^{2} α2所控制。 通常,较小的 α \alpha α导致低延迟和低性能,反之亦然。

五、Experiments

本节中,我们首先用Ghost模块替换普通的卷积层,以验证其有效性。然后,进一步在图像分类和目标检测数据集上测试使用新的模块构建的GhostNet。
Datasets and Setting
为了验证Ghost模块和GhostNet的有效性,我们在几个视觉数据集上做实验,包括CIFAR-10,ImageNet ILSVRC 2012数据集,和MS COCO目标检测。
CIFAR-10数据集用于分析所提出方法的属性,由10类60,000张 32 × 32 32\times 32 32×32的彩色图像组成,50,000张训练图像和10,000张测试图像。 采用随机裁剪和镜像的通用数据增强方案。
ImageNet是一个大型图像数据集,包含超过1000个类别的120万张训练图像和50K张验证图像。 在训练期间应用了随机裁剪和翻转的通用数据预处理策略。我们还使用MS COCO数据集进行了目标检测实验。按照惯例,我们在COCO trainval35k(联合80 K训练图像和来自验证集的图像的随机生成的35 K子集)上训练模型,并用5 K图像对最小分割进行评估。

(一)Efficiency of Ghost Module

1、Toy Experiment.

我们在图1中指出了存在一些相似的特征图对,可以使用一些有效的线性运算生成这些特征图对。在这里,我们首先进行一个Toy实验,以观察原始特征图和生成的重影特征图之间的重建误差。 以图1中的三对(即红色,绿色和蓝色)为例,使用ResNet-50的第一个残差块提取特征。 将左侧的特征作为输入,将另一个作为输出,我们利用一个小的depthwise卷积滤波器来学习映射,即它们之间的线性运算 Φ \Phi Φ。 卷积滤波器 d d d的大小在1到7的范围内,每对具有不同d的MSE(均方误差)值如表2所示。
GhostNet: More Features from Cheap Operations论文初读_第5张图片
在表2中可以发现,所有MSE值都非常小,这表明在深度神经网络中的特征图之间存在很强的相关性,并且这些冗余特征图可以由多个内在特征图生成。 除了上述实验中使用的卷积之外,我们还可以探索仿射变换和小波变换等其他低成本线性运算来构造Ghost模块。然而,卷积是当前硬件能够支持的一种有效操作,它可以覆盖许多广泛使用的线性操作,例如平滑,模糊,运动等。此外,尽管我们还可以学习每个滤波器的大小。 线性运算 Φ \Phi Φ时,不规则模块会降低计算单元(例如CPU和GPU)的效率。 因此,我们建议让Ghost模块中的d为固定值,并利用depthwise卷积实现公式3,在以下实验中构建高效的深度神经网络。

2、CIFAR-10

我们使用CIFAR-10数据集在两种流行的网络架构(即VGG-16和ResNet-56)上评估了Ghost模块。 由于VGG-16最初是为ImageNet设计的,因此我们使用其变体,该变体在文献中广泛用于进行以下实验。 这两个模型中的所有卷积层都被Ghost模块替换,新模型分别表示为Ghost-VGG-16和Ghost-ResNet-56。我们的训练策略与《Deep residual learning for image recognition》中的设置相近,包括动量,学习率等。我们首先分析Ghost模块中两个超参数s和d,然后将Ghost模型与最先进的方法进行比较。
超参数分析
如公式3所述,为有效的深度神经网络提出的Ghost模块具有两个超参数, 如图3所示,即 s s s用于生成 m = n / s m = n/s m=n/s个内在特征图,以及线性运算的核大小 d × d d\times d d×d(即depthwise卷积滤波器的大小),用于计算重影特征图。 在VGG-16上测试了这两个参数的影响。
首先,我们设置 s = 2 s = 2 s=2,d在 { 1 , 3 , 5 , 7 } \left \{ 1,3,5,7 \right \} {1,3,5,7}中取值,并在表3中列出在CIFAR-10验证集上的结果。我们可以看到,d = 3的Ghost模块的性能优于较小或较大的d。 这是因为大小为1×1的核无法在特征图上引入空间信息,而较大的核(例如d = 5或d = 7)会导致过拟合和更多计算量。 因此,在以下实验中我们采用d = 3来提高有效性和效率。
GhostNet: More Features from Cheap Operations论文初读_第6张图片
在研究了Ghost模块中使用的核大小之后,我们设置 d = 3 d = 3 d=3并在 { 2 , 3 , 4 , 5 } \left \{ 2,3,4,5 \right \} {2,3,4,5}范围内调整其他超参数s。 实际上, s s s与所得网络的计算成本直接相关,即,较大的 s s s导致较大的压缩和加速比,如公式5和4中的分析。 根据表4的结果,当我们增加s时,FLOPs显着降低,并且精度逐渐降低,这与预期的一样。 尤其是当 s = 2 s = 2 s=2时,这意味着将VGG-16压缩2倍,我们的方法比原始模型的性能要好一些,这说明了所提出的Ghost模块的优越性。
GhostNet: More Features from Cheap Operations论文初读_第7张图片
与最新模型比较
我们将GhostNet与具有代表性的架构VGG-16和ResNet-56进行了比较。 比较的方法包括不同类型的模型压缩方法,KaTeX parse error: Undefined control sequence: \l at position 1: \̲l̲_{1}修剪,SBP,通道修剪(CP)和AMC。 对于VGG-16,我们的模型可以获得比原始模型高2倍的加速度的精度,这表明VGG模型具有相当大的冗余度。 我们的Ghost-VGG-16( s = 2 s = 2 s=2)以最高的性能(93.7%)胜过竞争对手,FLOPs明显减少。 对于已经比VGG-16小得多的ResNet-56,我们的模型可以以2倍的加速率达到与baseline相当的精度。 我们还可以看到,其他具有相似或更大计算成本的最新模型所获得的准确性低于我们的模型。
GhostNet: More Features from Cheap Operations论文初读_第8张图片
可视化特征图
我们还可视化了Ghost模块的特征图,如图4所示。尽管生成的特征图来自主要特征图,但它们之间确实存在显着差异,这意味着生成的特征足够灵活,可以满足特定任务的需求。
GhostNet: More Features from Cheap Operations论文初读_第9张图片
GhostNet: More Features from Cheap Operations论文初读_第10张图片

3、Large Models on ImageNet

接下来,我们将Ghost模块嵌入到标准的Res​​Net50中,并在大型ImageNet数据集上进行实验。ResNet-50具有约25.6M参数和4.1B FLOPs,top-5误差为7.8%。 我们使用Ghost模块替换ResNet50中的所有卷积层以获得紧凑的模型,并将结果与​​几种最先进的方法进行比较,如表6所示。优化器,学习率, 和batch size与《Deep residual learning for image recognition》中的完全相同,以便进行公平比较。
GhostNet: More Features from Cheap Operations论文初读_第11张图片
从表6的结果可以看出,我们的Ghost-ResNet-50( s = 2 s = 2 s=2)获得了大约2倍的加速和压缩比,同时保持了与原始ResNet-50相同的精度。 与最近的最新方法(包括Thinet,NISP,多功能滤波器和稀疏结构选择(SSS)相比,我们的方法在2倍加速设置下可以获得更好的性能。 当我们将s进一步增加到4时,基于Ghost的模型的准确度下降仅为0.3%,计算加速比约为4倍。 相反,具有相似权重或FLOPs的方法的性能要比我们的低得多。

(二)Ghost on Visual Benchmarks

在证明了所提出的Ghost模块可有效地生成特征图的优越性之后,我们随后分别使用Ghost bottlenecks分别在图像分类和目标检测任务上评估了设计好的GhostNet体系结构,如表7所示。
GhostNet: More Features from Cheap Operations论文初读_第12张图片

1、ImageNet Classification

为了验证所提出的GhostNet的优越性,我们在ImageNet分类任务进行了实验。 我们使用《Shufflenet: An extremely efficient convolutional neural network for mobile devices》中大多数训练设置,除了在8个GPU上实验,batch size为1,024,初始学习率设置为0.4。 在ImageNet验证集上所有结果展示top-1的性能。 对于GhostNet,为简单起见,我们在主要的卷积中将核大小设置为 k = 1 k = 1 k=1,在所有Ghost模块中设置 s = 2 s = 2 s=2 d = 3 d = 3 d=3
选择了几种现代小型网络体系结构作为对比者,包括MobileNet系列,ShuffleNet系列,IGCV3,ProxylessNAS,FBNet,MnasNet等。 结果总结在表7中。这些模型分为四个级别的计算复杂性,通常用于移动应用程序,即 ∼ 50 \sim 50 50 ∼ 150 \sim 150 150和200-300个MFLOPs。 从结果中我们可以看到,通常较大的FLOPs在这些小型网络中会导致更高的准确性,这表明了它们的有效性。 我们的GhostNet在各种计算复杂度级别上始终优于其他竞争对手,因为GhostNet在利用计算资源生成特征图方面更加高效。
GhostNet: More Features from Cheap Operations论文初读_第13张图片
Actual Inference Speed
由于GhostNet是为移动应用程序设计的,因此我们使用TFLite工具进一步测量了GhostNet在基于ARM的手机上的实际速度。 按照《Mobilenets: Efficient convolu-
tional neural networks for mobile vision applications》,《Mobilenetv2: Inverted
residuals and linear bottlenecks》中的常规设置,我们使用batch size为1的单线程模式。从图7的结果中可以看出,在相同的延迟下,GhostNet的top-1精度比MobileNetV2高出约0.5%, 和GhostNet需要更少的运行时来达到相似的性能。 例如,精度为75.0%的GhostNet仅具有40毫秒的延迟,而精度类似的MobileNetV3大约需要45毫秒来处理一张图像。 总体而言,我们的模型通常优于著名的最新模型,即MobileNet系列,ProxylessNAS,FBNet和MnasNet。
GhostNet: More Features from Cheap Operations论文初读_第14张图片

2、Object Detection

为了进一步评估GhostNet的泛化能力,我们在MS COCO数据集上进行了目标检测实验。 我们使用trainval35k split作为训练数据,依照《Feature pyramid
networks for object detection》和《Focal loss for dense object detection》,展示minival split的均平均精度(mAP)。 具有特征金字塔网络(FPN)的两阶段Faster R-CNN 和一阶段的RetinaNet都用作我们的框架,而GhostNet充当了主干特征提取器的替代品。 我们使用SGD训练ImageNet预训练的参数,训练了12个epoch,并使用《Feature pyramid
networks for object detection》和《Focal loss for dense object detection》中的超参数。 将输入图像的短边调整为800的短边,长边不超过1333。表8显示了检测结果,其中FLOPs通常使用224×224图像计算。 显着降低了计算成本的同时,GhostNet可以在一阶段的RetinaNet和两阶段的Faster R-CNN框架上实现与MobileNetV2和MobileNetV3实现相近的mAP。
GhostNet: More Features from Cheap Operations论文初读_第15张图片

六、Conclusion

为了减少最新的深度神经网络的计算成本,本文提出了一种用于构建有效的神经体系结构的新型Ghost模块。 基本的Ghost模块将原始卷积层分为两部分,并使用较少的过滤器来生成多个内在特征图。然后,将进一步应用一定数量的低成本变换操作以有效地生成重影特征图。 在基准模型和数据集上进行的实验表明,该方法是一种即插即用模块,用于将原始模型转换为紧凑模型,同时保持可观的性能。 此外,在效率和准确性方面,使用提出的新模块构建的GhostNet均优于最新的移动端神经体系结构。

你可能感兴趣的:(GhostNet: More Features from Cheap Operations论文初读)