摘要
摘要:将卷积神经网络(CNN)部署在嵌入式设备上是困难的,因为嵌入式设备的内存和计算资源有限。特征图的冗余是成功的 CNN 的一个重要特征,但在神经网络架构设计中很少被研究。作者提出了一种新颖的 Ghost 模块,用于通过廉价操作生成更多的特征图。基于一组内在特征图,我们应用一系列成本低廉的线性变换来生成许多 ghost 特征图,这些特征图可以充分揭示内在特征的信息。提出的 Ghost 模块可以作为即插即用组件来升级现有的卷积神经网络。Ghost bottlenecks 设计用于堆叠 Ghost 模块,从而可以轻松建立轻量级的 GhostNet。在基准测试上进行的实验表明,提出的 Ghost 模块是基线模型中卷积层的一个令人印象深刻的替代品,并且我们的 GhostNet 可以在 ImageNet 分类数据集上以类似的计算成本实现比 MobileNetV3 更高的识别性能。
理论介绍
作者提出的Ghost模块与现有的高效卷积方案有主要区别。与广泛使用1×1逐点卷积的单元相比,Ghost模块中的主要卷积可以有定制的核大小。i现有方法采用逐点卷积处理跨通道特征,然后采用深度卷积处理空间信息。相比之下,Ghost模块采用普通卷积首先生成少量内在特征图,然后利用廉价的线性操作增强特征并增加通道。 以前的高效架构中处理每个特征图的操作限于深度卷积或移位操作,而Ghost模块中的线性操作可以有很大的多样性。此外,在Ghost模块中,恒等映射与线性变换并行,以保留内在特征图。卷积层和提出的 Ghost 模块输出相同数量特征图的示意图如下所示:
Ghost 模块工作原理: Ghost 模块通过先生成较少的内在特征图,再通过一系列廉价的线性变换生成幽灵特征图(ghost feature maps)。具体来说,给定输入X,卷积层的输出通常为:
其中,∗表示卷积操作,f为卷积核,b为偏置。Ghost模块的不同在于,首先使用常规卷积生成m个内在特征图:
然后,Ghost 模块通过简单的线性变换生成幽灵特征图:
最终输出n个特征图。
理论详解可以参考链接:论文地址
代码可在这个链接找到: