轻量化模型系列--GhostNet:廉价操作生成更多特征

简介: 由于内存和计算资源有限,在嵌入式设备上部署卷积神经网络 (CNN) 很困难。特征图中的冗余是那些成功的 CNN 的一个重要特征,但在神经架构设计中很少被研究

由于内存和计算资源有限,在嵌入式设备上部署卷积神经网络 (CNN) 很困难。特征图中的冗余是那些成功的 CNN 的一个重要特征,但在神经架构设计中很少被研究。

论文提出了一种新颖的 Ghost 模块,可以从廉价操作中生成更多的特征图。提出的 Ghost 模块可以作为即插即用的组件来升级现有的卷积神经网络。堆叠Ghost Module建立了轻量级的 GhostNet。


GhostNet 可以实现比 MobileNetV3 更高的识别性能(例如 75.7% 的 top-1 准确率),并且在 ImageNet ILSVRC-2012 上具有相似的计算成本。


出发点


多年来,已经提出了一系列方法来研究紧凑型深度神经网络,例如网络剪枝、低位量化、知识蒸馏等。网络剪枝修剪神经网络中不重要的权重、利用正则化来修剪过滤器以获得高效的 CNN; 低位量化将权重和激活量化为 1 位数据,以实现大的压缩和加速比;知识蒸馏,将知识边缘从较大的模型转移到较小的模型。


然而,这些方法的性能通常受预训练的神经网络作为其基线的上限。

 

778a79c26aae12c42f3a372a2731447c.png


训练好的深度神经网络的特征图中的丰富甚至冗余信息通常可以保证对输入数据的全面理解。例如,上图展示了 ResNet-50 生成的输入图像的一些特征图,并且存在许多相似的特征图对,就像彼此的幽灵。特征图中的冗余可能是成功的深度神经网络的一个重要特征。我们倾向于采用它们,而不是避免冗余的特征图,但以一种具有成本低的方式。

这里补充一句:一个训好的正常大小的网络中,存在大量的冗余特征图,模型剪枝(或模型压缩)、正则化属于减少冗余特征图的方式,而这篇论文认为这些冗余信息会对于正确识别或检测具有重要的作用。


推荐阅读《我们真的需要模型压缩吗》更好理解上面这段话。

 

 

主要贡献


 

引入了一个新的 Ghost 模块,通过使用更少的参数来生成更多的特征。 具体来说,深度神经网络中的一个普通卷积层会被分成两部分。第一部分涉及普通卷积,但它们的总数将受到严格控制。给定第一部分的内在特征图,然后应用一系列简单的线性操作来生成更多的特征图。在不改变输出特征图的大小的情况下,与普通卷积神经网络相比,这个 Ghost 模块所需的总体参数数量和计算复杂度有所降低。


基于 Ghost 模块,建立了一个高效的神经架构,即 GhostNet。 首先替换基准神经架构中的原始卷积层以证明 Ghost 模块的有效性,然后验证 GhostNets 在几个基准视觉数据集上的优越性。


实验结果表明,所提出的 Ghost 模块能够降低通用卷积层的计算成本,同时保持相似的识别性能,并且 GhostNets 可以在各种任务上超越SOTA高效深度模型,如 MobileNetV3 移动设备上的快速推理。

 

Methods


Ghost module

d258e1b506305e584d7d6a2c7921e236.png

d258e1b506305e584d7d6a2c7921e236.png

如上图所示,Ghost module先通过正常卷积,将input通道数减少,再通过一个depthwise卷积和identity(恒等变换)。


1. 前面的卷积既可以使用1x1卷积,也可以使用正常的3x3或5x5卷积。


2. 这里的Φ即为cheap operation,既可以是depthwise卷积,也可以是其它方式的卷积,例如分组卷积。这部分的作用就是生成了相似特征图。也就是前面说的,用成本更低的方式,保留了那些冗余信息。


3. 恒等映射与 Ghost 模块中的线性变换并行以保留内在特征映射。

 

复杂度分析


假设我们输入特征图的尺寸是h*w*c,输出特征图的尺寸是h’*w’*n,卷积核大小为k*k。

在cheap operation变换中,我们假设特征图的channel是m,变换的数量是s,最终得到的新的特征图的数量是n,那么我们可以得到等式:


n = m ∗ s


由于Ghost的变换过程中最后存在一个恒等变换(Identity),所以实际有效的变换数量是s-1,所以上式可以得到如下公式:


m ∗ ( s − 1 ) = n / s ∗ ( s − 1 )


所以,理论的速度比为:


3595b83dc2272256c75d1add11cc9af1.png

理论的压缩比为:

82882925fccd4c2114897f080d4d4657.png

其中,s远小于c。

c29f01d9ce25276402ae8a0d0fd2ad9f.png

470ed27ea02d6499fd603a6f85375d6b.png

Conclusion

9d8cf18bdcce74eb95818ac96e15599b.png

717aed4806023ca657e8757b20c222a3.png

21bc4c0bb88e05d7b599e5f8981e5c01.png

相关文章
|
机器学习/深度学习 计算机视觉 知识图谱
YoloV8最新改进手册——高阶篇
本专栏是讲解如何改进Yolov8的专栏。改进方法采用了最新的论文提到的方法。改进的方法包括:增加注意力机制、更换卷积、更换block、更换backbone、更换head、更换优化器等;每篇文章提供了一种到N种改进方法。 评测用的数据集是我自己标注的数据集,里面包含32种飞机。每种改进方法我都做了测评,并与官方的模型做对比。 代码和PDF版本的文章,我在验证无误后会上传到百度网盘中,方便大家下载使用。 这个专栏,求质不求量,争取尽心尽力打造精品专栏!!! 专栏链接: ''' https://blog.csdn.net/m0_47867638/category_12295903
2364 0
|
Python Windows
Python 获取视频时长(附代码) | Python工具
Python 获取视频时长(附代码) | Python工具
Python 获取视频时长(附代码) | Python工具
|
Java Shell 程序员
解决:bash: syntax error near unexpected token `(‘ ...【亲测有效】
解决:bash: syntax error near unexpected token `(‘ ...【亲测有效】
10056 0
|
2月前
|
存储 JavaScript Java
2025版基于springboot的企业考勤管理系统
本系统基于Spring Boot、Vue与MySQL,实现企业考勤自动化管理,集成生物识别与GPS定位,支持多端操作与数据可视化,提升考勤准确性与管理效率,助力企业数字化转型。(239字)
|
7月前
|
人工智能 物联网 Android开发
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
394 92
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
1874 2
|
人工智能 数据处理 计算机视觉
AI计算机视觉笔记十六:yolov5训练自己的数据集
本文介绍了一种利用云服务器AutoDL训练疲劳驾驶行为检测模型的方法。由于使用本地CPU训练效率低下,作者选择了性价比高的AutoDL云服务器。首先,从网络获取了2000多张疲劳驾驶行为图片并使用labelimg软件进行标注。接着,详细介绍了在云服务器上创建实例、上传数据集和YOLOv5模型、修改配置文件以及开始训练的具体步骤。整个训练过程耗时约3小时,最终生成了可用于检测的模型文件。
|
Java 测试技术 开发者
Java中的多线程实现与性能优化
【4月更文挑战第3天】 在现代软件开发中,多线程技术是提高程序执行效率和响应速度的重要手段。Java语言提供了丰富的多线程支持,包括原生的Thread类和Runnable接口,以及java.util.concurrent包中的高级并发工具。然而,不当的多线程使用可能导致程序性能下降、死锁等问题。本文将探讨Java中多线程的具体实现方法,并着重讨论如何通过合理的设计和编码实践来优化多线程应用的性能。我们将分析线程创建与管理的基本概念,深入理解同步机制,并探讨并发集合、线程池等高级特性的使用。文章的目的是为开发者提供一套实用的多线程性能优化策略,帮助他们在面对并发编程挑战时能够编写出更加高效、稳定
227 1
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】 YOLOv8 更换骨干网络之GhostNetV2 长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干 (论文笔记+引入代码)
该专栏聚焦YOLO目标检测的创新改进与实战,介绍了轻量级CNNs和注意力机制在移动设备上的应用。文章提出了一种名为GhostNetV2的新架构,结合了硬件友好的DFC注意力机制,强化了特征表达能力和全局信息捕获,同时保持低计算成本和高效推理。GhostNetV2在ImageNet上以167M FLOPs达到75.3%的top-1准确率,优于同类模型。创新点包括DFC注意力、模型结构优化和效率提升。源代码可在GitHub和MindSpore平台上找到。此外,还提到了YOLOv8的相关实现和任务配置。