当前位置: 首页 > news >正文

神经网络学习笔记15——高效卷积神经网络架构GhostNet

系列文章目录


文章目录

  • 系列文章目录
  • 前言
    • 模型的发展
      • 更大更强
      • ​​更小更快
    • 高效卷积神经网络架构
      • 模型名称
      • 参数量
      • 乘加运算量
      • 评价指标
      • 高效卷积神经网络的比较
  • 一、GhostNet
    • 1、GhostNet V1
      • 1.Ghost模块​​工作原理
      • 2.层结构与模型结构
    • 2、GhostNet V2
      • 1.解耦全连接注意力机制DFC Attention
      • 2.层结构与模型结构
    • 3、GhostNet V3
      • 1.层结构与模型结构
  • 总结


前言

模型的发展

从2012年发展至今,神经网络模型经历了从卷积神经网络CNN到注意力机制Transformer等范式性的演进。然而,贯穿始终的核心研究驱动力始终围绕着两个相辅相成又看似矛盾的方向:

更大更强

追求模型的​​极致能力​​和​​认知边界突破​​。
能够学习更多的信息,捕捉更细的特征,提升泛化能力,解决开放域问题等。
目的是为了能处理更复杂的任务,比如通用人工智能、自然语言理解与生成、科学计算模拟等。主要通过增大模型参数规模、增加训练数据量、构建复杂的架构以及优化训练技术来实现这一目标。

​​更小更快

​​追求模型的​​实用效率​​和​​普适部署​​。
能够为了在能维持一定精度的前提下减少参数量和运算量。
目的是满足边缘/终端设备的低功耗、实时性、低成本、隐私保护要求,降低云端推理成本、提高响应速度,主要通过设计更高效的模型架构,进行裁剪、量化、蒸馏对模型进行压缩,优化特定算子和结合AI硬件加速来实现这一目标。

高效卷积神经网络架构

在这里插入图片描述

模型名称

表示轻量化神经网络模型的名称,名称中包含着几个重要信息:
1、不同的架构家族 (如 squeezenet, Mobilenet, ShuffleNet, EfficientNet, GhostNet, DeiT, ConvVT)。
2、不同的版本/变体标识 (如V1, V2, V3)。
3、不同的规模/宽度乘子 (如 0.5, 0.75, 1.0, 1.5x, 2x, -Small, -Large)。
4、其他配置参数 (如 160, 224 通常指输入图像的尺寸, g=3/8 对 ShuffleNet 指分组卷积的分组数,还有像b0/b1/b2/b3、S/M/L、A1/A2/A3、lite0/lite1/lite2/lite3/lite4等模型设置,特指不同尺寸或者不同复杂度)。

参数量

​​参数量是指模型中需要学习的参数总数。
1、参数量决定模型的内存占用(如显存和内存)和数据加载和传输时间,参数需从内存频繁读取到计算单元,高参数量可能导致​​内存带宽瓶颈​​,拖慢推理速度(尤其在移动设备)。
2、参数量与模型的​​复杂度、学习能力和表达能力有紧密关系(通常参数越多,模型越复杂,理论上拟合能力越强)。
3、参数量也是衡量模型​​“轻量化”​​程度的最关键指标之一,轻量化模型的核心目标就是在保持一定性能的前提下,尽可能减少参数量。​​

乘加运算量

乘加运算量是指模型进行一次前向推理(处理一张图片)所需完成的 ​​乘法累加操作的总次数。一次乘加运算通常指 a * b + c 这样的计算。​​
1、乘加运算量是衡量模型​​计算复杂度​​和​​推断速度​​(尤其是在硬件上)的最常用指标之一,与模型的​​耗电量​​(对移动设备尤为重要)强相关。
2、乘加运算量是衡量模型​​“轻量化”​​程度的核心指标,直接决定计算时间(如GPU/CPU的浮点运算耗时),需要在满足性能要求下降低此值。
​​3、神经网络中的主要计算(如卷积、全连接层)绝大部分都是由大量的乘加操作构成的,统计乘加次数能有效反映整体的计算负担。

评价指标

ImageNet fp32 top1 accuracy评价指标是衡量不同轻量化模型分类​​准确性的核心依据。它直观地告诉我们在识别 1000 类物体时,模型猜中“第一名”的概率是多少。用户可以通过这个值直接比较不同模型在相同的权威数据集和评估标准下的表现优劣。数值越高越好。

1、fp32是模型在运行/评估时使用的​​数值精度​​,代表 ​单精度浮点数(Single-precision floating-point format)​​,是一种在计算机中表示实数的格式,使用 32 位(4 字节)存储一个数字。有些轻量化模型在部署时可能会使用更丰富的精度选择,比如fp16、int8、int4、int2以及混合精度,通过对模型量化以加速和减小模型体积,但在学术论文和基准对比中,通常报告 fp32 精度以保证公平比较。

2、​​ImageNet数据集是一个巨大的、公开的​​图像数据集​​,具体是指 ​​ILSVRC 2012​​ 数据集(ImageNet Large Scale Visual Recognition Challenge 2012)。它包含超过 ​​140万​​ 张训练图像,​​5万​​ 张验证图像,​​10万​​ 张测试图像,涵盖了 ​​1000 个不同的物体类别​​(如“猫”、“狗”、“汽车”、“杯子”等)。

3、top1 accuracy是评估图像分类任务最直接、最重要的​​性能指标​​。在推理过程中对验证/测试集中的每一张图片都会输出一个包含 1000 个类别的​​概率分布也就是置信度​。而​​top1 accuracy指的是模型预测的​​概率最高的那个类别恰好等于图片真实标签的比例​​。有时还会使用top5 accuracy​​,它指的是​​图片的真实标签出现在模型预测的前5个最高概率类别之中的比例​​。​​

高效卷积神经网络的比较

在这里插入图片描述

在这里插入图片描述


一、GhostNet

1、GhostNet V1

GhostNet V1论文地址

在这里插入图片描述
在深度卷积神经网络中,中间层的输出特征图通常会包含丰富甚至冗余的特征图,其中一些特征图可以通过对另一些特征图基于某种简单的操作变换获取,比如仿射变换和小波变换这些低成本的线性运算。
截取一份经过卷积处理的特征图组,其中一些特征图具有一定的相似性。 可以通过廉价操作将一个特征图变换为另一个相似的特征图,可以认为变换后的特征图是变换前特征图的一种幻像。

1.Ghost模块​​工作原理

在这里插入图片描述

(a)标准卷积层
Y=X∗f+bY = X \ast f + bY=Xf+b

XXX表示输入特征图,X∈Rh×w×cX \in\mathbb{R}^{h×w×c}XRh×w×chhh表示输入特征图的高度,www表示输入特征图的宽度,ccc表示输入特征图的通道数。
fff表示卷积核,f∈Rk×k×c×nf\in\mathbb{R}^{k×k×c×n}fRk×k×c×nk×kk×kk×k表示卷积核的尺度,ccc表示输入特征图的通道数,nnn表示输出特征图的通道数。
YYY表示输出特征图,Y∈Rh′×w′×nY \in \mathbb{R}^{h^{\prime}×w^{\prime}×n}YRh×w×nh′h^{\prime}h表示输出特征图的高度,w′w^{\prime}w表示输出特征图的宽度,nnn表示输出特征图的通道数。
bbb表示可选的偏置项,∗\ast表示卷积操作。

Fstd=DK⋅DK⋅M⋅N⋅DF⋅DF=k⋅k⋅c⋅n⋅h′⋅w′F_{std} = D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F= k \cdot k \cdot c \cdot n \cdot h^{\prime}\cdot w^{\prime}Fstd=DKDKMNDFDF=kkcnhw

在这里插入图片描述

在这里插入图片描述

(b)Ghost模块

​​第一步:生成内在特征图Intrinsic Feature Maps

Y′=X∗f′Y^{\prime} = X \ast f^{\prime}Y=Xf

XXX表示输入特征图,X∈Rh×w×cX \in\mathbb{R}^{h×w×c}XRh×w×chhh表示输入特征图的高度,www表示输入特征图的宽度,ccc表示输入特征图的通道数。
f′f^{\prime}f表示更少数量​​的卷积核,f′∈Rk×k×c×mf^{\prime}\in\mathbb{R}^{k×k×c×m}fRk×k×c×mk×kk×kk×k表示卷积核的尺度,ccc表示输入特征图的通道数,mmm表示​​更少数量​​的输出特征图通道数,其中m=Coutsm = \frac{C_{out}}{s}m=sCout,s是一个压缩系数。
Y′Y^{\prime}Y表示内在特征图,Y′∈Rh′×w′×mY^{\prime}\in\mathbb{R}^{h^{\prime}×w^{\prime}×m}YRh×w×mh′h^{\prime}h表示输出特征图的高度,w′w^{\prime}w表示输出特征图的宽度,mmm表示​​更少数量​​的输出特征图通道数,其中m=Coutsm = \frac{C_{out}}{s}m=sCout,s是一个压缩超参数。
∗\ast表示1×1标准卷积操作。

第二步:生成幻影特征图Ghost Feature Maps

yij=Φi,j(yi′),∀i=1,...,m;j=1,...,s;y_{ij} = \Phi_{i,j}(y_i^{\prime}),\ \forall \ i = 1,...,m; \ j = 1,...,s;yij=Φi,j(yi),  i=1,...,m; j=1,...,s;

yi′y_i^{\prime}yi表示内在特征图Y′Y^{\prime}Y的第iii个通道的特征图,i=1,...,mi = 1,...,mi=1,...,m
Φi,j\Phi_{i,j}Φi,j表示​​一个廉价线性变换操作,通常指DWConv,对于​​每一张​​内在特征图yi′y_i^{\prime}yi,都会应用s次不同的Φ\PhiΦ操作,j=1,...,sj = 1,...,sj=1,...,s,从而生成s张新的特征图。
yijy_{ij}yij表示由第i个内在特征图经过第j个变换后得到的Ghost特征图。

FGhost=k⋅k⋅c⋅m⋅h′⋅w′+m⋅(s−1)⋅yijF_{Ghost} = k \cdot k \cdot c \cdot m \cdot h^{\prime}\cdot w^{\prime} + m\cdot(s-1)\cdot y_{ij}FGhost=kkcmhw+m(s1)yij

第三步:特征图拼接
对于第一步生成的mmm个内在特征图Intrinsic Feature Maps,使用快捷分支Identity恒等映射到输出特征图中,然后将第二步生成的m⋅(s−1)m\cdot(s-1)m(s1)个 Ghost 特征图按照顺序在通道维度上进行拼接,共同构成最终的n=m+m⋅(s−1)=m⋅sn = m + m\cdot(s-1) = m\cdot sn=m+m(s1)=ms个输出特征图。

2.层结构与模型结构

在这里插入图片描述
左边模块结构:
第一层Ghost module+BN+ReLU:对输入特征进行通道升维和特征提取,然后进行归一化和激活处理。
​​第二层Ghost module+BN:对输入特征进行通道降维和特征提取,然后进行归一化处理。
第三层​​Add:Stride步长为1,使用跳跃连接将​​第二层的输出与第一层的​​输入​​直接进行​​元素级相加。

右边模块结构:
第一层Ghost module+BN+ReLU:对输入特征进行通道升维和特征提取,然后进行归一化和激活处理。
​​第二层DWConv+BN:Stride​​步长为2,对输入特征进行下采样​​,将尺寸减半通道降维以及特征提取,然后进行归一化处理。
​​第三层Ghost module+BN:对输入特征进行通道降维和特征提取,然后进行归一化处理。
第四层DWConv+PWConv:由于第二层的下采样操作,导致不能直接进行跳跃连接,所以在实际实现中旁路会先使用DWConv对输入特征进行下采样​​,将尺寸减半通道降维。再使用1×1标准卷积调整通道数,使得输入和输出特征图的形状一致。上图并没有把旁路的操作绘制出来。
第五层​​Add:Stride步长为2,使用跳跃连接将​​第三层的输出与第四层的​​输入​​直接进行​​元素级相加。

在这里插入图片描述
​​Input:表示输入特征图的尺寸
Operator:表示该阶段所使用的网络模块或算子。
exp:表示ghost模块第一层的升维通道数。
out:表示ghost模块降维后的输出通道数。
SE:表示是否使用SE注意力机制,1代表使用,-代表未使用。
Stride:表示步长,在模块的第一个3×3 Conv或DWConv中会使用Stride=2操作进行下采样。
G-bneck:表示ghost模块。

​​在整个模型早期,使用带步长的卷积和少量的模块堆叠对特征图快速降维​​,减少计算量。在模型中后期时候,对于小尺寸特征图使用更多的模块堆叠加强特征学习。

一方面使用廉价线性变换操作替代大量冗余的标准卷积,在保证表现力的前提下极致地压缩了计算量FLOPs和参数量,另一方面使用倒残差结构的先升维再降维操作提高梯度流动和特征表达,最后还对控制每一层模型的通道数数量,减少宽度方向的计算量。

模型在部分关键层使用SE模块,以极小的计算代价换取显著的性能提升,目的是为了避免因为对模型计算量的过度压缩而导致的精度大幅下滑。​​

2、GhostNet V2

GhostNet V2论文地址

1.解耦全连接注意力机制DFC Attention

卷积网络模型中常见的注意力机制有SE(Squeeze-and-Excitation)、CBAM(Convolutional Block Attention Module)和CA(Coordinate Attention),而DFC(Decoupled Fully Connected)注意力机制是在前三者的基础之上提出的。

在这里插入图片描述
Input feature:表示C×H×W大小的输入特征图。
Down-sample:表示下采样操作,通常是使用池化下采样或卷积下采样来实现。
Vertical FC:表示垂直全连接层,对​​每列数据进行全连接操作,处理同一列内不同行的信息,捕获特征在​​垂直方向​​上的长期依赖关系。
Horizontal FC:表示水平全连接层,对​​每行数据进行全连接操作,处理同一行内不同列的信息,捕获特征在​​水平方向​​上的长期依赖关系。
Up-sample:表示上采样操作,通常使用插值上采样或转置卷积上采样来实现。
Attention map:表示C×H×W大小的输出注意力特征图。

DFC注意力机制通过下采样降低计算量,再通过垂直和水平方向对全连接层进行解耦,高效地建模空间上的远距离依赖关系,最终生成一张注意力图对特征图实现增强重要特征,抑制无用特征。​

ahw=∑h′,w′Fhw,h′w′⨀zh′w′a_{hw} = \sum_{h^{\prime},w^{\prime}}F_{hw,h^{\prime}w^{\prime}} \bigodot z_{h^{\prime}w^{\prime}}ahw=h,wFhw,hwzhw
ahw′=∑h′=1HFh,h′wH⨀zh′w,h=1,2,...,H;w=1,2,...,W;a^{\prime}_{hw} = \sum^H_{h^{\prime}=1}F^H_{h,h^{\prime}w} \bigodot z_{h^{\prime}w},h=1,2,...,H;w=1,2,...,W;ahw=h=1HFh,hwHzhw,h=1,2,...,H;w=1,2,...,W;
ahw=∑w′=1WFw,hw′W⨀ahw′′,h=1,2,...,H;w=1,2,...,W;a_{hw} = \sum^W_{w^{\prime}=1}F^W_{w,hw^{\prime}} \bigodot a^{\prime}_{hw^{\prime}},h=1,2,...,H;w=1,2,...,W;ahw=w=1WFw,hwWahw,h=1,2,...,H;w=1,2,...,W;

ah,wa_{h,w}ah,w:表示一个长度为C一维向量,由输出特征图中所有通道的特征矩阵中的(h,w)(h,w)(h,w)位置上的特征点组成的。
h,w,h′,w′h,w,h^{\prime},w^{\prime}h,w,h,w:表示输入和输出特征图的高与宽,也表示在某个位置上的坐标
F​​hw,h′w′F​​_{hw,h^{\prime}w^{\prime}}Fhw,hw:表示二维注意力权重矩阵,每一项对应一个输出位置(h,w)(h,w)(h,w)与一个输入位置(h′w′)(h^{\prime}w^{\prime})(hw)的权重向量,每一个位置指向的是一个标量。
Fh,h′wHF^H_{h,h^{\prime}w}Fh,hwH:表示垂直方向注意力权重矩阵
Fw,hw′WF^W_{w,hw^{\prime}}Fw,hwW:表示水平方向注意力权重矩阵
zh′,w′z_{h^{\prime},w^{\prime}}zh,w:表示一个长度为C一维向量,由输入特征图中所有通道的特征矩阵中的(h′,w′)(h^{\prime},w^{\prime})(h,w)位置上的特征点组成的。
zh′,wz_{h^{\prime},w}zh,w:表示一个长度为C一维向量,由一个固定列中所有通道的特征矩阵中的(h′,w)(h^{\prime},w)(h,w)位置上的特征点组成的。
ah,w′′a^{\prime}_{h,w^{\prime}}ah,w:表示一个长度为C一维向量,由一个固定行中所有通道的特征矩阵中的(h,w′)(h,w^{\prime})(h,w)位置上的特征点组成的。
HWHWHW:表示注意力权重矩阵​​的高与宽,表示在某个位置上的行或列
​​⨀​​​​\bigodot​​​​​​:表示逐元素相乘。
∑\sum:表示对输入特征图的所有空间位置进行求和。

公式1是一个理想的全局注意力机制。
在公式一中,为了得到输出特征图ah,wa_{h,w}ah,w上的目标位置(h,w)(h,w)(h,w)上的值,需要让输入特征图上所有位置与权重F​​hw,h′w′F​​_{hw,h^{\prime}w^{\prime}}Fhw,hw进行逐元素相乘,然后对每个位置的结果进行求和。

公式2和公式3是基于公式1分解而来的垂直+水平注意力机制。
在公式2中,为了得到垂直处理的输出特征图ah,w′a^{\prime}_{h,w}ah,w上的目标位置(h,w)(h,w)(h,w)的值,需要让输入特征图上固定列的每行位置与权重Fh,h′wHF^H_{h,h^{\prime}w}Fh,hwH进行逐元素相乘,然后对固定列上所有位置的结果进行求和。

在公式3中,为了得到水平处理的输出特征图ah,wa_{h,w}ah,w上的目标位置(h,w)(h,w)(h,w)的值,需要让输入的垂直处理特征图上固定行的每列位置与权重Fw,hw′WF^W_{w,hw^{\prime}}Fw,hwW进行逐元素相乘,然后对固定行上所有位置的结果进行求和。

输入特征图有C个通道,那么在位置(h′,w′)(h^{\prime},w^{\prime})(h,w)上,会有C个值可以组成一个一维向量,这个一维向量在DFC注意力机制计算中会和同一个权重FFF相乘,然后与同通道不同位置的值相加,最后输出的也是一个长度为C的一维向量。

在这里插入图片描述
在以上图片中,从左到右开始,第一个是输入特征图zh′,w′z_{h^{\prime},w^{\prime}}zh,w,第二个是垂直处理的中间态特征图,第三个是垂直处理输出特征图ah,w′a^{\prime}_{h,w}ah,w,第四个是水平处理的中间态特征图,第五个是水平处理输出特征图ah,wa_{h,w}ah,w

在这里插入图片描述
Vertical/Horizontal Attention:表示垂直和水平注意力,也就是DFC Attention,是公式二和三的体现,计算复杂度为O(N)。
Full Attention:表示全注意力,也就是传统二维注意力机制,是公式一的体现,计算复杂度为O(N²)。
Layer 5,10,15:表示不同深度的网络层。
热力刻度条:表示注意力权重的大小。

对比DFC Attention与Full Attention在不同网络深度下的表现:
在Layer 5时期,Full Attention对于特征图上的所有特征点都有丰富的注意力表达。而DFC Attention只有少部分特征点赋予注意力表达,大部分特征点没有变化。
在Layer 10时期,Full Attention对于特征图上的所有特征点都有丰富的注意力表达。而DFC Attention能够对大部分特征点赋予注意力表达,只有小部分特征点没有变化。
在Layer 15时期,Full Attention对于特征图上的所有特征点都有丰富的注意力表达。而DFC Attention能够对所有特征点赋予注意力表达。

所以DFC Attention随着网络深度的增加,注意力的表达能力会不断增强,逐渐追上Full Attention的性能。

2.层结构与模型结构

在这里插入图片描述
Input:表示输入特征图。
Ghost Branch:表示使用Ghost模块处理的分支。
Attention Branch:表示使用注意力模块处理的分支。
Multiply:表示将两个分支的输出进行​​逐元素相乘。
Output:表示输出特征图。
Focused patch:表示目标特征点。
Participated patches in Ghost branch:表示使用Ghost模块计算目标特征点时参与处理的特征点。
Participated patches in Attention branch:表示使用注意力模块计算目标特征点时参与处理的特征点。

在模型结构中,对于计算特征图上的某个特征点需要使用两个分支进行。
使用Ghost模块的分支会对目标特征点周围的特征点进行关联计算,这里常用的是3×3DWConv,输出的是一个特征图,感受野为3×3。
使用注意力模块的分支会对目标特征点所在的特征图的所有特征点进行关联计算,这里常用的是DFC Attention,输出的是一个[0,1]的注意力权重矩阵,感受野为H×W。
将两个分支的输出进行​​逐元素相乘,使用注意力权重对目标特征点进行动态校准,增强重要特征,抑制无用特征。

在这里插入图片描述

右边模块结构:
第一层Down-sample​​:对输入特征进行下采样,以降低计算成本。
​​第二层1×1 Convolution + BN:对输入特征进行卷积操作,实现通道变换和特征提取,然后进行归一化处理。
第三层Horizontal FC + BN:在​​水平方向​​上对每一行数据做一次高度为1宽度为W的全连接操作,以捕获全局水平信息,然后进行归一化处理。
第四层Vertical FC:在​​垂直方向​​上对每一列数据做一次高度为H宽度为1的全连接操作,以捕获全局垂直信息。
​​第五层Sigmoid:通过Sigmoid函数,将输出值归一化到[0, 1]范围,形成最终的注意力图。

左边模块结构:
第一层Ghost module+BN+ReLU:对输入特征进行通道升维和特征提取,然后进行归一化和激活处理。
​​第二层DFC Attention:根据输入特征​​计算一个注意力图,注意力图的大小与第一层的Ghost Module的输出相同。
​​第三层Mul:将​​第二个Ghost Module的输出​​与​​DFC Attention模块输出的注意力图​​进行​​逐元素相乘,对输入特征进行​​加权,增强重要特征,抑制无用特征。
​​第四层Ghost module+BN:对输入特征进行通道降维和特征提取,然后进行归一化处理。
第五层​​Add:Stride步长为1,使用跳跃连接将​​第二层的输出与第一层的​​输入​​直接进行​​元素级相加。

中间模块结构:
第一层Ghost module+BN+ReLU:对输入特征进行通道升维和特征提取,然后进行归一化和激活处理。
​​第二层DFC Attention:根据输入特征​​计算一个注意力图,注意力图的大小与第一层的Ghost Module的输出相同。
​​第三层Mul:将​​第二个Ghost Module的输出​​与​​DFC Attention模块输出的注意力图​​进行​​逐元素相乘,对输入特征进行​​加权,增强重要特征,抑制无用特征。
​​第四层DWConv+BN:Stride​​步长为2,对输入特征进行下采样​​,将尺寸减半通道降维以及特征提取,然后进行归一化处理。
​​第五层Ghost module+BN:对输入特征进行通道降维和特征提取,然后进行归一化处理。
第六层DWConv+PWConv:由于第二层的下采样操作,导致不能直接进行跳跃连接,所以在实际实现中旁路会先使用DWConv对输入特征进行下采样​​,将尺寸减半通道降维。再使用1×1标准卷积调整通道数,使得输入和输出特征图的形状一致。上图并没有把旁路的操作绘制出来。
第七层​​Add:Stride步长为2,使用跳跃连接将​​第五层的输出与第六层的​​输入​​直接进行​​元素级相加。

一方面通过廉价的DWConv操作和线性操作来“幻化”出更多的特征图,从而用更少的参数和计算量生成与普通卷积层相同数量的特征图。
另一方面通过轻量级的 ​​DFC Attention​​ 模块,为Ghost模块生成的特征图提供丰富的​​空间注意力权重​​,从而显著增强模型的表征能力。

3、GhostNet V3

GhostNet V3论文地址

1.层结构与模型结构

在这里插入图片描述
Training of 3×3 DWConv:表示在训练阶段使用的深度卷积重参数化结构,对输入特征图同时使用一个1×1DWConv、一个Identity快捷分支和n个3×3DWConv进行计算,最后对所有输出的特征图进行相加操作。
Training of 1×1 Conv:表示在训练阶段使用的标准卷积重参数化结构,对输入特征图同时使用n个1×1DWConv和一个Identity快捷分支进行计算,最后对所有输出的特征图进行相加操作。
DFC Attention:表示一个注意力机制,先使用下采样降低计算量,再通过垂直和水平方向对全连接层进行解耦,高效地建模空间上的远距离依赖关系,最终生成一张注意力图。
Ghost Module:表示一个Ghost模块,主要使用1×1 Conv生成内在特征图,3×3 DWConv生成幻影特征图,然后使用Concat沿通道方向拼接两个特征图。

Training of 3×3 DWConv和Training of 1×1 Conv主要在训练阶段替代Ghost模块中的3×3 DWConv操作和1×1 Conv操作。而在推理时会将这些多分支重参数化结构等价地“折叠”或“融合”成一个单一的3×3 DWConv操作和1×1 Conv操作,所以在推理时的使用的模型结构会和原来一样简洁高效,但性能却得到了提升。

此外在GhostNet V3中还提及使用知识蒸馏、学习率调度和数据增强等模型优化策略。

GhostNetV3网络模型在目标检测上的性能参数对比图:
在这里插入图片描述


总结

GhostNet系列是面向移动端的高效轻量化CNN架构。V1创新提出Ghost模块,通过廉价操作生成冗余特征图,大幅减少FLOPs和参数量。V2在V1基础上引入硬件友好的注意力机制DFC,增强特征表达能力,进一步提升精度与速度的平衡。V3则针对训练不稳定问题,改进激活函数为ReLU的变体,在保持轻量特性的同时优化了收敛性和性能。三代演进始终围绕“轻量化+性能提升”核心,持续优化架构效率。

http://www.dtcms.com/a/391893.html

相关文章:

  • Mysql的Exists条件子查询
  • 电脑系统windows10怎么合盘
  • 一文详解Stata回归分析
  • GPS 定位:连接时空的数字导航革命
  • Rust 特有关键字及用法
  • 关于C++游戏开发入门:如何从零开始实现一个完整的游戏项目!
  • OpenRank结合游戏及算法技术原理
  • 协方差矩阵、皮尔逊相关系数
  • Redis 三大架构模式详解:主从复制、哨兵、Cluster 搭建全指南
  • [x-cmd] 如何安全卸载 x-cmd
  • 整体设计 语言拼凑/逻辑拆解/词典缝合 之 3 词典缝合(“他”):显露词典编纂行列式项的 “自然”三“然”:自然本然/ 自然而然/自然实然
  • linux配置ssh,亲测简单可用
  • SNMP 模块化设计解析
  • 2025的Xmind自定义安装(实测版)
  • AI“闻香识酒”:电子鼻+机器学习开启气味数字化新纪元
  • Coze工作流拆解:成语故事类小红书图文批量创作全流程
  • PyQt6之进度条
  • 【AI编程】Trae配置rules与配置和使用一些目前比较好用的MCP
  • 音乐家不会被束缚,MusicGPT+cpolar让创作更自由
  • python笔记之面向对象篇(六)
  • Linux中处理nohup日志太大的问题
  • vLLM应该怎么学习
  • 实测AI Ping,一个大模型服务选型的实用工具——技术原理与核心技巧解析
  • rag-anything —— 一站式 RAG 系统
  • 第十周文件包含漏洞和远程命令执⾏漏洞
  • 2021年下半年 系统架构设计师 综合知识
  • 佳易王宠物医院管理系统软件:核心功能详解
  • Berkeley DB: 一款高性能的嵌入式键值对数据库
  • BGE-large-zh-v1.5微调
  • Merkle Patricia Tree