【CVPR2025-DEIM】基础课程二十:顶会中的Partial创新思想,随意包装你想包装的!

文章目录

一、顶会中的Partial创新思想

Partial思想是近年来CNN、Transformer网络设计中的一个重要趋势,主要通过部分通道处理来降低计算复杂度并保持模型性能。

为什么需要介绍这个看起来非常简单的"Partial思想"?

  1. Partial思想是一种即插即用的思想,并且其还可以为原来的模块降低计算量和参数量,并且还可以已最简单的修改下"美化"自己的模块。
  2. Partial思想提出了一个关键假设:并非所有特征通道都需要经过相同的复杂处理。它将输入通道分为不同组,对不同组应用不同复杂度的操作,从而在保持表达能力的同时显著降低计算成本。<GhostNet已经证明这个问题>
  3. CVPR2020 GhostNet
  4. CVPR2023 FasterNet
  5. CVPR2024 SHVIT
  6. CVPR2025 MobileMamba

二、顶会中的Partial创新思想-GhostNet

2.1 Ghost发现了什么?

深度卷积神经网络中存在大量冗余的特征图,许多特征图彼此相似,如同 "幽灵" 一般。传统卷积层需要大量参数和计算来生成这些冗余特征图,这是不必要的。

  1. 假设输入的是 n 个特征图,先使用一个 Conv 生成 m 个特征图,其中 m ≤ n,通常 m = n/s。(s一般为2)
  2. 生成幽灵特征图,对这 m 个特征图做线性操作后再与这原始的 m 个特征图进行拼接得到输出。

线性操作的设计:

  • 主要使用深度卷积(depthwise convolution)
  • 核大小通常为 3×3 或 5×5
  • 计算成本远低于普通卷积

2.2 如何对 GhostModule 进行二次创新?

针对 GhostModule 中的 Conv 其存在以下问题:

  • 单一感受野:固定的卷积核大小限制了特征提取的多样性
  • 静态特征提取:无法根据输入内容自适应调整特征提取策略
  • 有限的语义理解:简单卷积难以捕获复杂的语义关系
  • 缺乏全局信息:局部卷积操作缺乏全局上下文感知能力
  1. 重参数化卷积
    DBB、DeepDBB、RepConv、DeConv...
    特性卷积
  2. DynamicSnakeConv、风车卷积 (PSConv)、ShiftWiseConv、ConvAttn、FDConv...
  3. 多尺度
    IDWC...
  4. 大感受野卷积
    FourierConv、FADC...
  5. 动态卷积
    DynamicConv...
  6. 可变形卷积
    DCNV2、DCNV3、DCNV4、DSA...

三、顶会中的Partial创新思想-FasterNet

3.1 FasterNet发现了什么?

  • 深度可分离卷积(DWConv)等操作虽然减少了FLOPs,但由于频繁的内存访问导致FLOPS降低
  • 为补偿精度损失,需要增加通道数,进一步增加了内存访问开销
  • 许多"快速"网络实际运行速度不如ResNet50
  • 个人的感觉FasterNet是GhostNet的简洁版。

仅对1/4的通道进行卷积处理,剩下的直接Identity处理。

FLOPs (Floating Point Operations)

FLOPs 表示浮点运算次数,是衡量模型计算复杂度的静态指标。

  • 静态度量:表示模型执行一次前向传播需要的浮点运算总数
  • 理论计算量:不考虑硬件实现,纯粹从算法角度计算
  • 常用定义:论文中采用广泛接受的定义,即乘加运算(multiply-adds)的数量

FLOPS (Floating Point Operations Per Second)

FLOPS 表示每秒浮点运算次数,是衡量实际计算速度的动态指标。

  • 动态度量:表示硬件设备实际执行浮点运算的速度
  • 硬件相关:同样的操作在不同设备上FLOPS可能差异很大
  • 实际性能:反映真实的计算效率和硬件利用率

l a t e n c y = F L O P s F L O P S latency = \frac{FLOPs}{FLOPS} latency=FLOPSFLOPs

论文中指出,导致FLOPS较低的原因是频繁的内存访问。所以这就是为什么普遍的一些轻量化模块用了之后,fps都会下降的原因,因为他们大部分都是用时间换空间,虽然FLOPs上是变小了,但实际其内部操作更复杂了,内存访问也更频繁了。

四、顶会中的Partial创新思想--SHViT

4.1 SHViT发现了什么?

  • 在DeiT-T模型中,后期阶段的平均头相似度高达78.3%(6头版本为64.8%)
  • 在Swin-T模型中也观察到类似的高相似度现象
  • 头消融实验显示,大多数注意力头可以被移除而不会显著影响性能

A方案:先进行通道压缩,再做Single-Head Attention,然后再升维。

B方案:全通道做Single-Head Attention。

C方案:对部分通道做Single-Head Attention。

从这个也可以看出Partial思想不论在创新上还是在效果上都要比普通的轻量化效果(A方案)要好。

五、顶会中的Partial创新思想--MobileMamba

多感受野特征交互(MRFFI)模块

MRFFI模块是MobileMamba的核心创新,将输入特征沿通道维度分为三部分:

  1. 长距离小波变换增强Mamba (WTE-Mamba):
  • 结合双向扫描Mamba模块进行全局建模
  • 通过Haar小波变换提取不同频率尺度的特征表示
  • 增强高频边缘细节信息的提取能力
  1. 高效多核深度卷积 (MK-DeConv):
  • 使用不同核大小的局部卷积操作捕获多尺度感受野
  • 实现多感受野信息交互
  1. 消除冗余恒等映射:
  • 对剩余通道应用恒等映射,减少高维空间中的特征冗余
  • 降低计算复杂度,提升处理速度
python 复制代码
class MobileMambaModule(torch.nn.Module):
    def __init__(self, dim, global_ratio=0.25, local_ratio=0.25,
                 kernels=3, ssm_ratio=1, forward_type="wstd", ):
        super().__init__()
        self.dim = dim
        self.global_channels = nearest_multiple_of_16(int(global_ratio * dim))
        if self.global_channels + int(local_ratio * dim) > dim:
            self.local_channels = dim - self.global_channels
        else:
            self.local_channels = int(local_ratio * dim)
        self.identity_channels = self.dim - self.global_channels - self.local_channels
        if self.local_channels != 0:
            self.local_op = DWConv2d_BN_ReLU(self.local_channels, self.local_channels, kernels)
        else:
            self.local_op = nn.Identity()
        if self.global_channels != 0:
            self.global_op = MWTConv2d(self.global_channels, self.global_channels, wt_levels=1, ssm_ratio=ssm_ratio, forward_type=forward_type)
        else:
            self.global_op = nn.Identity()

        self.proj = torch.nn.Sequential(torch.nn.ReLU(), Conv2d_BN(
            dim, dim, bn_weight_init=0, ))

    def forward(self, x):  # x (B,C,H,W)
        x1, x2, x3 = torch.split(x, [self.global_channels, self.local_channels, self.identity_channels], dim=1)
        x1 = self.global_op(x1)
        x2 = self.local_op(x2)
        x = self.proj(torch.cat([x1, x2, x3], dim=1))
        return x

X1,X2,X3 = Spilt(X)

X1 = Global(X1)

X2 = Local(X2)

Y = Concat([X1,X2,X3])

Global:

  1. Transformer
  2. Mamba
  3. 特性卷积(傅里叶卷积...)

Local:

众多的module,Conv都支持

六、顶会中的Partial创新思想-总结

  1. 我们利用一些变种卷积可以在GhostNet、FasterNet上继续做创新,轻松达到二次创新的效果。
  2. 我们可以模仿SHViT,用别的Transformer模块的时候,我们也可以利用上Partial思想,达到降低计算量和参数量的效果,并且也有二次创新的效果。
  3. 我们也可以模仿MobileMamba(Mamba+CNN+Partial),Mamba和CNN部分都可以换,然后也可以换成(Transformer+CNN+Partial)等等...
    如果使用到Partial思想,到时候可以生成一些特征图来证明,确实存在冗余特征图,增强自己论文的说服力。
相关推荐
DDC楼宇自控与IBMS集成系统解读2 小时前
IBMS智能化集成系统:构建建筑全场景协同管控中枢
大数据·网络·人工智能·能耗监测系统·ibms智能化集成系统·楼宇自控系统·智能照明系统
SimonSkywalke2 小时前
STS_Root_Cause_Analysis_Error.ipynb 工作流程解析
运维·人工智能
shao9185162 小时前
Gradio全解11——Streaming:流式传输的视频应用(5)——RT-DETR:实时端到端检测模型
人工智能·nms·objects365·rt-detr·rt-detrv2·高效混合编码器·iou交并比
chanalbert3 小时前
信息检索技术综述:从传统稀疏检索到现代深度学习方法
人工智能·深度学习·全文检索
vivo互联网技术3 小时前
聚焦结构化注意力,探索提升多模态大模型文档问答性能
人工智能
慧星云3 小时前
魔多 AI 支持 Kontext 在线训练 :超高角色一致性助您创作
人工智能·云计算·aigc
小周不长肉3 小时前
AI幻觉的罪魁祸首
人工智能
小关会打代码3 小时前
计算机视觉进阶教学之图像投影(透视)变换
人工智能·计算机视觉
星期天要睡觉3 小时前
(纯新手教学)计算机视觉(opencv)实战十四——模板与多个对象匹配
人工智能·opencv·计算机视觉