【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思想,到时候可以生成一些特征图来证明,确实存在冗余特征图,增强自己论文的说服力。
相关推荐
风象南5 小时前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia6 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮6 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬6 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia7 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区7 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两10 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪10 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat2325510 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源