美文网首页
轻量化网络模块GhostNet-More Features fr

轻量化网络模块GhostNet-More Features fr

作者: 孤独患者_d589 | 来源:发表于2020-02-25 19:13 被阅读0次

    介绍

    本文是CVPR2020最新出炉的文章,文章主要介绍了新型的轻量化模块——Ghost模块。Ghost模块的核心思想是基于一组固有特征图,应用了一系列成本低廉的线性变换,生成了许多可以充分揭示潜在固有特征信息的幻影(Ghost)特征图。提出的Ghost模块可以作为即插即用组件用于升级现有的卷积神经网络。

          作者指出在训练好的神经网络中包含大量的甚至是冗余的信息来确保对于输入数据的理解,例如图1中展示的是输入图像经ResNet50产生的特征图,里面有许多成对的相似特征图,像是彼此的幻影。冗余的特征信息是成功的深度神经网络的重要特征, 除了避免使用多余的特征图之外,作者倾向于以经济高效的方式将其包含在里面。

    Fig.1 特征图可视化

            Ghost模块将普通的卷积层分解为两个部分,第一部分包含了正常的卷积,但是卷积的数量会被严格控制。给在定第一部分的固有特征图之后,然后应用一系列简单的线性运算以生成更多特征图。与普通卷积神经网络相比,在不更改输出特征图大小的情况下,该Ghost模块中所需的参数总数和计算复杂度均已降低。在Ghost模块的基础上,作者构建了GhostNet。作者首先在基准神经体系结构中替换原始的卷积层,以证明Ghost模块的有效性,然后在多个基准视觉数据集上验证GhostNet的优越性。 实验结果表明,文章所提出的Ghost模块能够在保持相似识别性能的同时降低通用卷积层的计算成本,并且GhostNets可以在各种任务上超过MobileNetV3 [16]等先进的有效深度模型。 在移动设备上实现快速的前向推理。


    模型介绍

    Ghost模块

    Fig.2 Ghost模块

    作者首先对于传统的卷积进行了计算量的分析,传统的卷积中,设输入特征图为CxHxW,其中c代表通道数量,H和W分别代表输入特征图的高和宽,卷积核的尺寸为CxkxkxN,其中k指的是卷积核的大小,而N指的是输出特征图的通道数,则可以得到输出的特征图尺寸为:NxH'xW'。总的计算量为H'xW' x k^2 x N x C。下面来着重讲一下Ghost模块是如何进行卷积的。首先,输入的特征图也是CxHxW,Ghost模块先利用通道数是m的正常卷积对特征图进行卷积,此时的特征图的尺寸是H‘ x W' x m。接下来就是将这个特征图的m个通道分别进行线性的映射,采用的也是卷积。这里有一个非常重要的参数s,这个s代表的是这m个通道分别被线性映射几次,作者指出这里的线性映射是(s-1)次,为什么是(s-1)次呢,作者这里是将m个通道在堆叠到映射之后的特征图上,如图2所示。由于这里对于m个通道进行分别的卷积,所以使得Ghost模块中的线性映射具有很大的多样性。

            那如何计算Ghost模块和普通卷积之间的计算量的区别呢,如图3所示。

    Fig.3

    图3中的上下两个公式代表的是计算量的压缩比例和参数量的压缩比例,如图可以看出,Ghost模块相较于普通的卷积,压缩比例都是s,这个s就是我们前面提到的超参数。,而d代表的是对m个通道进行分别线性映射时的核的大小。

    Ghost bottleneck

    Fig.4 Ghost bottleneck

            在Ghost模块的基础上,作者搭建了Ghost bottleneck来建立轻量化的模型。如图4所示。第一个Ghost模块用作扩展层,增加了通道数。作者将输出通道数与输入通道数之比称为扩展比。第二个Ghost模块减少了通道数,然后与输入进行相加。BN和Relu应用在了每个网络模块后,除了第二个Ghost模块(参考了Mobilenetv2的建议)。上述是针对于步长为1的情况,对于步长为2的情况,在两个Ghost模块之间插入了stride = 2的深度卷积。 在实践中,Gh为了提高效率,两个Ghost模块间插入的是点卷积。

    宽度乘数

            尽管原文中表1(原文是表7,不知道是不是作者笔误)提供的GhostNet网络已经能够提供一个低延时和有准确率保证的网络,但是某些场景下,应该需要更小更快或者是更高准确率的网络,为了使网络适应这些情况,作者设计了一个alpha因子,称作宽度乘数。简单地在每一层上均匀地将因子α乘以通道数,用来改变整个网络的宽度。宽度乘数可以控制模型的大小,并且以α的平方的比例来减少计算量。通常小的α会有低的延迟和低的准确率,反之亦然。

    实验结果

            作者首先用建议的Ghost模块替换原始的卷积层,以验证其有效性。 然后,将在图像分类和对象检测基准上进一步测试使用新模块构建的GhostNet架构。

            作者首先进行实验来观察原始特征图和生成的ghost特征图之间的重建误差,以图一中的红、绿、蓝三对来举例,特征是经过ResNet50的第一个残差块提取得到的。将左侧的特征作为输入,将另一个作为输出,作者利用一个小的深度卷积滤波器来学习映射,即它们之间的线性运算Φ。 卷积滤波器d的大小在1到7的范围内,每对具有不同d的MSE(均方误差)值如图5所示。在表2中可以发现,所有MSE值都非常小,这表明在深度神经网络中的特征图之间存在很强的相关性,并且这些冗余特征图可以从多个固有特征图生成。除了上述实验中使用的卷积之外,作者指出还可以探索仿射变换和小波变换等其他低成本线性运算来构造Ghost模块。但是卷积是当前硬件已经很好地支持的一种有效操作,它可以覆盖许多广泛使用的线性操作,例如平滑,模糊,运动等。此外,尽管还可以通过学习来获得每个线性运算Φ中滤波器的大小,但是不规则模块会降低计算单元(例如CPU和GPU)的效率。因此,作者建议让Ghost模块中的d为固定值。

    Fig.5 Fig.6

    超参数分析

            Ghost模块有两个超参数,分别是上面说的s,用来产生m=n/s固有特征图和线性映射中的卷积核dxd的大小。这两个参数的影响,作者是在VGG16的基础上进行实验的。首先固定s=2,然后测试d={1,3,5,7},图6表3的结果是网络在CIFAR-10上的表现,可以看出d=3的表现最好,这是因为1x1的卷积核无法在特征图上引入空间信息,而d为5或者是7导致了过拟合核更大的计算量,因此,作者采取d=3来进行接下来的有效性和效率的实验。接下来是固定d=3,然后测试s={2,3,4,5}。实际上,s直接关系到计算量和网络的表现,因为大的s导致了更大的压缩和加速比例(图3中的公式4,5)图6表4中的结果显示,当增加s,无论是速度还是准确率都出现下降,当s为2时,代表着VGG16被压缩了两倍,作者提出的方法表现比VGG16还要好一点,体现出作者的Ghost模块的优越性。

    与SOTA对比

            作者将VGG16和ResNet56与SOTA的压缩模型在CIFAR10数据集上进行对比,作者的模型可以在达到更高的准确率的同时,减少网络的推理速度。结果展示在原文中的表5。

    特征图可视化

            尽管生成的特征图都是基于同一个特征图产生的,但是它们之间确实有很大的不同,如图7所示。这意味着生成的特征更加的灵活多变,可以满足特定任务的需求。(这里可以看出Ghost其实使得同一个特征图中不同通道包含了不同的特征信息,增强了模型的表现力)。

    Fig.7 特征图展示

    ImageNet 上的分类表现

    Fig.7 IimageNet 数据集表现

    作者按照FLOPs的数量级将图7中的表格分为了四类,例如~50,~150等。从结果中我们可以看到,通常较大的FLOP在这些小型网络中会导致更高的准确性,这表明了它们的有效性。并且GhostNet在各种计算复杂度级别上始终优于其他的对比网络,因为GhostNet在利用计算资源生成特征图方面更加有效。 

    目标检测

    Fig.8 MS COCO数据集上目标检测结果

            为了进一步评估GhostNet的泛化能力,作者在MS COCO数据集上进行了目标检测实验。 作者将拆分出来的trainval35k作为训练数据,以mAP作为评价的指标。作者采用了 具有特征金字塔网络(FPN)的两阶段Faster R-CNN 和一阶段的RetinaNet 来作为实验的框架,而GhostNet被用来作为特征提取器。 作者使用的预训练模型是在ImageNet上使用SGD训练12个epochs的模型,将输入图像的大小调整为800的短边和不超过1333的长边。 图8显示了检测结果,其中FLOP是使用224×224尺寸的输入图像计算出来的。实验结果表明GhostNet大大降低了计算成本,无论在RetinaNet还是在Faster R-CNN框架上,都可以达到与MobileNetV2和MobileNetV3相同水准的mAP。

    相关文章

      网友评论

          本文标题:轻量化网络模块GhostNet-More Features fr

          本文链接:https://www.haomeiwen.com/subject/wwrxchtx.html