【论文阅读笔记】GhostNet:More Features from Cheap Operations

论文地址:https://arxiv.org/abs/2010.14819
代码地址:https://github.com/huawei-noah/ghostnet

论文总结

  本文提出一种模块,可以用来直接替换平常的卷积层,叫做 Ghost Module,可以用作即插即用的组件。由 Ghost Module 直接构建的网络叫做 GhostNet(网络结构和 MobileNetv3一样,只是组件不一样)。网络的分类效果比同计算量的 MobileNetv3要好一些。

  Ghost Module 如下图所示,先产生一个相对较小的卷积 feature maps,然后由这个 feature maps 经过一些线性操作得到新的 feature maps,与这个 feature maps 进行 concat,即得到模块的输出。在本文中,线性操作是 depthwise conv(经过放射变化,小波变换(wavelet transform)等线性操作的选择后)。

  由 feature maps 经过线性变换得到的新的 faeture maps 进行组合的原因,在于作者发现由大网络学习的 feature maps 直接有一定的相似性,可以由一定数量的基本 feature maps 经过变换而成,这种与其他的 feature maps 类似的 pairs,作者将其称为 ghost。

论文介绍

  本文方法的提出,是由于发现了上图所示的feature maps之间的联系。其认为输出特征的一部分可以通过廉价的转换得到,即不是所有的特征都是要直接学来的。实际上,最后的廉价的转换,是通过 depthwise conv 得到。

  每个 Ghost Module 的结构,如上图所示。经过一定的系数 s 的扩展,再经过线性变换,组合成最后模块的输出。在实验的最后,一般使用 s = 2 s=2 s=2的压缩率(相比较想要的输出 channel 数量), k = 1 k=1 k=1的1*1卷积核,得到主 feature maps。再通过 k = 3 k=3 k=3的depth-wise卷积,得到其余的 channel 数(如果s=2,则得到与主 feature maps 相同通道数的feature map,如果是其他的,则得到更多)。

  Ghost bottleneck 如上图所示,与ResNet的basicBlock有类似的结构,需要注意的是当 stride为2 的时候,在两个 ghost module 之间插入一个 stride=2 的 depthwise conv。一般用于构成 bottlenect 时,会让第一个 Modules 的channel 数小一点,用来当做 expansion layer,增加 channel 数。第二个 Modules 的channel 数少一点,用以减少 channel,以匹配 ShortCut 的维度。与 MobileNetv2一样,在第二个 Module 的后面不使用 ReLU。

  GhostNet 如上表所示,与 MobileNetv3有一样的结构,只是bottleneck不同。在每个 stage,除了最后一个 block 的 stride 为2,其余的 stride 都为1。在进行精度的比较时,比如 Table 7 中的网络,在一些的 ghost bottleneck 中也加入了 SE 结构。由于考虑到耗时的问题,所以 GhostNet 没有采用 hard-swish。

  在进行线性操作的地方,除了 depthwise conv 外,还探索了放射变换、小波变换(wavelet transform)等,由于考虑到现有硬件平台上卷积操作支持的更好、卷积操作能覆盖很多线性运算(如平滑、模糊、运动等),所以本文选择了 depthwise conv。但文中并没有相关的其他线性操作的实验展示。

论文实验

  在CIFAR-10上,在两种网络结构 VGG-16 和 ResNet-56 上验证 Ghost Module,将卷积替换为 GHost Module。探索了固定压缩率 s=2的情况下,depthwise 的卷积核大小的影响和固定卷积核大小 d=3的情况下,压缩率的影响。可以从下表看出,s=2时,d=3有最好的结果。

  在CIFAR-10上,与两个网络进行对比。与此同时,实验其他的压缩网络的方法,查看相似压缩率方法能得到的精度。

  下图可视化了特征图,可以看出:虽然产生的feature maps 来自于主 feature maps 的线性映射,但也有显著的区别,意味着生成的特征足够灵活,可以满足特定任务的需要。

  在ImageNet 上,对ResNet-50进行实验,表现结果如下表所示:在2倍的压缩下,本文结果是最好的;在4倍的压缩下,其他压缩方法的损失更多。

  在网络的构成的性能上,GhostNet与其他轻量级网络在 ImageNet 上的对比如下:

  使用TF-lite,在ARM的手机上运行,速度如下图所示:40ms得到 MobileNetv3 需要45ms才能得到的性能。

  在目标检测的任务上,嵌入网络 Faster R-CNN 和 FPN,结果如下图所示:

猜你喜欢

转载自blog.csdn.net/qq_19784349/article/details/110405701
今日推荐