超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络

文章转自:知乎   原文链接:https://zhuanlan.zhihu.com/p/146513522

知乎作者:python小宗师

 

论文下载:GhostNet: More Features from Cheap Operations​arxiv.org

代码下载:huawei-noah/ghostnet​github.com

简介:

卷积神经网络由于内存和计算资源有限,在嵌入式设备上部署非常困难。特征图中的冗余是神经网络的一个重要特征,但在神经结构设计中却很少被研究。本文提出了一种新的Ghost模块,通过低成本的操作生成更多的特征图。在一组内在特征映射的基础上,应用一系列低成本的线性变换来生成许多能够充分揭示内在特征信息的特征映射。提出的Ghost模块可以作为即插即用组件,对现有卷积神经网络进行升级。设计了Ghost Inception来堆叠Ghost模块,从而可以轻松建立轻量级的GhostNet。在基准测试中进行的实验表明,提出的Ghost模块是基准模型中卷积层的一个令人印象非常好的替代方案,并且我们的GhostNet在类似于ImageNet ILSVRC-2012分类数据集的情况下,可以获得比MobileNetV3更高的识别性能(Top1 75.7%)。

方法:

Ghost Module for More Features

以往的卷积网络计算开销很大。最近的研究如MobileNet,ShuffleNet已经引入了深度卷积或shuffle操作,利用较小的卷积滤波器来构建高效的cnn,但1×1个卷积层仍然会占用相当大的内存和FLOPs。

问题说明:

卷积过程中需要的计算消耗FLOPs 是由c×n×w×h×k×k 决定的,优化是由输入和输出特征图的尺寸明确决定的。

超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络_第1张图片

其实Ghost Module很好理解,如上图(b),简单来说分两步卷积primary_conv得到的特征基本保留,在其基础上做第二步cheap_conv得到的特征cat在primary_conv的后面,取前[0 : output]个特征;

超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络_第2张图片

第一个Ghost module 作为扩展层来增加通道数量;

第二个Ghost module减少通道数量来匹配短跳链接的路径;

左边是stride为1的情况;右边是stride为2的情况,多了一个Depth-wise卷积层进行下采样。

模型总体框架:

超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络_第3张图片

实验结果:

超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络_第4张图片

总结:

为了降低现有深度神经网络的计算代价,本文提出了一种新的Ghost模型来构建高效的神经网络结构。基本的Ghost模块将原始的卷积层分成两部分,使用更少的过滤器来生成一些固有的特征图。在此基础上,进一步应用一定数量的低成本线性变换操作来更全面地生成Ghost特征图。在基准模型和数据集上的实验表明,该方法是一种即插即用的方法,可以将原始模型转换为紧凑的模型,同时保持性能的一致性。此外,使用提出的新模块构建的Ghost在效率和精度方面都优于目前最先进的轻量级神经网络。

你可能感兴趣的:(超越MobileNetV3!GhostNet|CVPR2020 简单的线性变换生成特征图的轻量级网络)