生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第1张图片

作者 | VincentLee

编辑 | 贾伟

本文转载自微信公众号:晓飞的算法工程笔记

​CVPR 2020 已经公布录用结果,其中有效投稿 6656 篇,最终录用 1470 篇,接收率 22.1 % 。CVPR 2020 将于6月14日-6月19日在美国西雅图举办。
虽然在近三年来,CVPR 的论文投稿量都在持续大涨(CVPR 2018有 3300 篇有效投稿、CVPR 2019有 5160 篇有效投稿、CVPR 2020有效投稿达6656),然而在接收率方面,已是“二连降”(CVPR 2018 收录论文 979 篇、接收率为 29%左右;CVPR 2019 收录论文 1300 篇,接收率为25%左右;CVPR 2020 收录论文 1470篇、接收率为 22%左右)。

今天要介绍的是 CVPR 2020上被录用的文章《GhostNet: More Features from Cheap Operations》。

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第2张图片

论文地址:https://arxiv.org/abs/1911.11907

为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果。该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特征图。从实验来看,对比其它模型,GhostNet的压缩效果最好,且准确率保持也很不错,论文思想十分值得参考与学习。

一、背景

目前,神经网络的研究趋向于移动设备上的应用,一些研究着重于模型的压缩方法,比如剪枝,量化,知识蒸馏等,另外一些则着重于高效的网络设计,比如MobileNet,ShuffleNet等。

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第3张图片

训练好的网络一般都有丰富甚至冗余的特征图信息来保证对输入的理解,如图1 ResNet-50的特征图,相似的特征图类似于对方的ghost。冗余的特征是网络的关键特性,论文认为与其避免冗余特征,不如以一种cost-efficient的方式接受,获得很不错的性能提升,论文主要有两个贡献:

1)提出能用更少参数提取更多特征的Ghost模块,首先使用输出很少的原始卷积操作(非卷积层操作)进行输出,再对输出使用一系列简单的线性操作来生成更多的特征。这样,不用改变其输出的特征图,Ghost模块的整体的参数量和计算量就已经降低了;

2)基于Ghost模块提出GhostNet,将原始的卷积层替换为Ghost模块。

二、方法

1、Ghost Module for More Features

33029fbeec179bdfff41c0212bc662fe.png

对于输入数据

,卷积层操作如公式1,
为输出的n维特征图,
为该层的卷积核,可得该层的计算量为
,这个数值通常成千上万,因为
一般都很大。公式1的参数量与输入和输出的特征图数息息相关,而从图1可以看出中间特征图存在大量冗余,且存在相似的特征(Ghost),所以完全没必要占用大量计算量来计算这些Ghost

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第4张图片

c92a0f7647f8473a8ae6ec0e727453cb.png

假设原输出的特征为某些内在特征进行简单的变换得到Ghost,通常这些内在特征数量都很少,并且能通过原始卷积操作公式2获得,

为原始卷积输出,
为使用的卷积核,
,bias直接简化了:

185db920a2d7598903c0f37fd013a3ba.png

为了获得原来的

维特征,对
的内在特征分别使用一系列简单线性操作来产生
维ghost特征,
为生成
-th ghost特征图的线性变换函数,最后的
为保存内在特征的identity mapping,整体计算如图2b。
  • Difference from Existing Methods

与目前主流的卷积操作对比,Ghost模块有以下不同点:

  1. 对比Mobilenet、Squeezenet和Shufflenet中大量使用
    pointwise卷积,Ghost模块的原始卷积可以自定义卷积核数量;
  2. 目前大多数方法都是先做pointwise卷积降维,再用depthwise卷积进行特征提取,而Ghost则是先做原始卷积,再用简单的线性变换来获取更多特征;
  3. 目前的方法中处理每个特征图大都使用depthwise卷积或shift操作,而Ghost模块使用线性变换,可以有很大的多样性;
  4. Ghost模块同时使用identity mapping来保持原有特征。
  • Analysis on Complexities

假设Ghost模块包含1个identity mapping和

个线性操作,每个线性操作的核大小为

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第5张图片

ddddbc4f07ebb024c38e5716e3f1dcdc.png

理论的加速比如公式4,而理论的压缩比如公式5,让

相似且

2、Building Efficient CNNs

  • Ghost Bottlenecks

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第6张图片

Ghost Bottleneck(G-bneck)与residual block类似,主要由两个Ghost模块堆叠二次,第一个模块用于增加特征维度,增大的比例称为***expansion ration***,而第二个模块则用于减少特征维度,使其与shortcut一致。G-bneck包含stride=1和stride=2版本,对stride=2,shortcut路径使用下采样层,并在Ghost模块中间插入stride=2的depthwise卷积。为了加速,Ghost模块的原始卷积均采用pointwise卷积。

  • GhostNet

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第7张图片

基于Ghost bottleneck,GhostNet的结构如图7所示,将MobileNetV3的bottleneck block替换成Ghost bottleneck,部分Ghost模块加入了SE模块。

  • Width Multiplier

尽管表7的结构已经很高效,但有些场景需要对模型进行调整,可以简单地使用

对每层的维度进行扩缩,
称为***width multiplier***,模型大小与计算量大约为
倍。

三、实验

1、Efficiency of Ghost Module

  • Toy Experiments

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第8张图片

论文对图1的ghost pair进行了不同核大小的线性变化测试,将左图作为输出右图作为输入训练depthwise卷积,然后使用训练的结果对左图进行变换,计算其变换后与右图的MSE。可以看到,不同的核大小下差值都很小,说明线性变换是有效的,而且核大小的影响不大,所以用核固定为d的depthwise卷积来进行公式3计算。

  • CIFAR-10

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第9张图片

将VGG的卷积层替换成Ghost模块进行超参数测试,表3的

,表4的

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第10张图片

可以看到使用Ghost模块不仅比其它压缩方法更能降低模型的体量,也最能保持模型准确率。

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第11张图片

对Ghost模块产生的特征进行了可视化,尽管从内在特征线性变换而来,但还是有明显的差异,说明线性变换足够灵活。

  • Large Models on ImageNet

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第12张图片

在大型网络上使用Ghost模块,压缩效果和准确率依然很不错

2、GhostNet on Visual Benchmarks

  • ImageNet Classification

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第13张图片

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第14张图片

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第15张图片

使用

,
,
的GhostNet,结果如表7,不同的模型大小使用不同的
值进行调整,整体而言,GhostNet最轻量且准确率最高。
  • Object Detection

生成特征_GhostNet: 使用简单线性变换生成特征图,超越MobileNetV3的轻量级网络_第16张图片

在one-stage和two-stage检测算法上,GhostNet能降低大部分计算量,而mAP与其它主干网络差不多。

四、结论

为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果。该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特征图。从实验来看,对比其它模型,GhostNet的压缩效果最好,且准确率保持也很不错,论文思想十分值得参考与学习。

你可能感兴趣的:(生成特征)