来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: CNN Mixture-of-Depths

创新点


  • 提出新的卷积轻量化结构MoD,在卷积块(Conv-Blocks)内通过动态选择特征图中的关键通道进行集中处理,提高效率。
  • CNN MoD保留了静态计算图,这提高了训练和推理的时间效率,而且不需要定制的CUDA内核、额外的损失函数或微调。
  • 通过将MoD与标准卷积交替使用,能够实现相等性能下的推理加速或相等推理速度下的性能提高。

CNN Mixture-of-Depths


MoD由三个主要组件组成:

  1. 通道选择器:根据输入特征图与当前预测的相关性选择前 \(k\) 个最重要的通道。
  2. 卷积快:从现有架构(如ResNetsConvNext)中进行改编,旨在增强选定通道的特征。
  3. 融合算子:将处理后的通道加到特征图的前 \(k\) 个通道上。

通道选择器

通道选择器主要分为两个阶段:

  1. 自适应通道重要性计算:通过自适应平均池化压缩输入特征图,随后通过一个具有瓶颈设计的两层全连接网络进行处理,设定 \(r = 16\) ,最后通过sigmoid激活函数生成一个分数向量 \(\mathbf{s} \in \mathbb{R}^C\) ,量化了相应通道的重要性。
  2. Top-k通道选择与路由:利用重要性分数 \(\mathbf{s}\) 选择前 \(k\) 个通道输入卷积块处理,原始特征图 \(X\) 则直接传递融合算子。

这个选择过程使得通道选择器能够高效地管理计算资源,同时保持固定的计算图,从而实现动态选择要处理的通道。

动态通道处理

每个卷积块中处理的通道数量 \(k\) 由公式 \(k = \lfloor \frac{C}{c} \rfloor\) 决定,其中 \(C\) 表示该块的总输入通道数, \(c\) 是一个超参数,用于确定通道减少的程度。例如在一个标准的ResNet瓶颈块中,通常处理1024个通道,设置 \(c = 64\) 会将处理减少到仅16个通道( \(k = 16\) )。

通过实验发现,超参数 \(c\) 应设置为第一卷积块中输入通道的最大数量,并在整个CNN中的每个MoD块中保持相同。例如,ResNet的 \(c = 64\) MobileNetV2的 \(c = 16\) 。

卷积块的最后一步涉及将处理后的通道与从自适应通道重要性计算中获得的重要性评分相乘,确保在训练过程中梯度能够有效地传递回通道选择器,这是优化选择机制所必需的。

融合机制

将处理后的特征添加到 \(X\) 的前 \(k\) 个通道中,保留其余未处理的通道。融合后的特征图 \(\bar{X}\) 具有与原始输入 \(X\) 相同的通道数 \(C\) ,从而保留了后续层所需的维度。

论文在实验中测试了多种将处理后的通道重新集成到特征图 \(X\) 中的策略,包括将处理后的通道添加回其原始位置,但结果并未显示任何改进。实验表明,始终在特征图中使用相同位置来处理信息似乎是有益的,将处理后的通道添加到后 \(k\) 个通道中得到了与添加到前 \(k\) 个通道时相当的结果。

集成到CNN结构

MoD可以集成到各种CNN架构中,例如ResNetsConvNextVGGMobileNetV2,这些架构被组织成包含多个相同类型(即输出通道数相同)的卷积块(Conv-Blocks)的模块。

实验表明,交替使用MoD块和标准卷积块在每个模块中是一种最有效的集成方法。需要注意的是,MoD块替换每第二个卷积块,从而保持原始架构的深度(例如,ResNet50中的50层)。每个模块以一个标准块开始,例如BasicBlock,然后是一个MoD块。

这种交替模式表明,网络能够处理显著的容量减少,只要定期进行全容量卷积。此外,该方法确保MoD块不会干扰通常发生在每个模块的第一个块中的空间维度缩减卷积。

主要实验






如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

MoD:轻量化、高效、强大的新型卷积结构 | ACCV'24的更多相关文章

  1. 卷积神经网络学习笔记——轻量化网络MobileNet系列(V1,V2,V3)

    完整代码及其数据,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 这里结合网络的资料和Mo ...

  2. 轻量化卷积神经网络MobileNet论文详解(V1&V2)

    本文是 Google 团队在 MobileNet 基础上提出的 MobileNetV2,其同样是一个轻量化卷积神经网络.目标主要是在提升现有算法的精度的同时也提升速度,以便加速深度网络在移动端的应用.

  3. 纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception

    近年提出的四个轻量化模型进行学习和对比,四个模型分别是:SqueezeNet.MobileNet.ShuffleNet.Xception. SqueezeNet https://arxiv.org/p ...

  4. CondenseNet:可学习分组卷积,原作对DenseNet的轻量化改造 | CVPR 2018

    CondenseNet特点在于可学习分组卷积的提出,结合训练过程进行剪枝,不仅能准确地剪枝,还能继续训练,使网络权重更平滑,是个很不错的工作   来源:晓飞的算法工程笔记 公众号 论文:Neural ...

  5. EfficientFormer:轻量化ViT Backbone

    论文:<EfficientFormer: Vision Transformers at MobileNet Speed > Vision Transformers (ViT) 在计算机视觉 ...

  6. 轻量化模型之MobileNet系列

    自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 ...

  7. 轻量化模型之SqueezeNet

    自 2012 年 AlexNet 以来,卷积神经网络在图像分类.目标检测.语义分割等领域获得广泛应用.随着性能要求越来越高,AlexNet 已经无法满足大家的需求,于是乎各路大牛纷纷提出性能更优越的 ...

  8. 56 Marvin: 一个支持GPU加速、且不依赖其他库(除cuda和cudnn)的轻量化多维深度学习(deep learning)框架介绍

    0 引言 Marvin是普林斯顿视觉实验室(PrincetonVision)于2015年提出的轻量化GPU加速的多维深度学习网络框架.该框架采用纯c/c++编写,除了cuda和cudnn以外,不依赖其 ...

  9. MobileNet——一种模型轻量化方法

    导言 新的CNN网络的提出,提高了模型的学习能力但同时也带来了学习效率的降低的问题(主要体现在模型的存储问题和模型进行预测的速度问题),这使得模型的轻量化逐渐得到重视.轻量化模型设计主要思想在于设计更 ...

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

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

随机推荐

  1. element-plus 如何点击其它位置触发文件上传

    原文链接:https://www.xiandanplay.com/article/view?id=16925669181947904&articleCategoryId=16078840161 ...

  2. 使用 nuxi init 创建全新 Nuxt 项目

    title: 使用 nuxi init 创建全新 Nuxt 项目 date: 2024/9/6 updated: 2024/9/6 author: cmdragon excerpt: 摘要:本文介绍了 ...

  3. Angular 18+ 高级教程 – Component 组件 の Angular Component vs Web Component

    前言 在 初识 Angular 中我有提到, Angular 团队是一群不爱创新.爱 follow 标准.爱小题大做的一群人. 所以,要理解 Angular Component,我们就非得要先搞懂远古 ...

  4. RxJS 系列 – Join Creation Operators

    前言 我们一样从简单和常用的入手. 第一篇介绍了 Creation Operators 上一篇介绍了 Filter Operators 这一篇来到 Join Creation Operators. 参 ...

  5. EF Core – JSON Column

    前言 SQL Server 支持 JSON, 以前写过一篇介绍 SQL Server – Work with JSON. 但 EF Core 一直没有支持. 直到 EF Core 7.0 才支持. 参 ...

  6. CSS – word-break, overflow-wrap, word-wrap, white-space

    参考 word-break 和 word-wrap 的区别 (我以为这篇已经很厉害了) 彻底搞懂word-break.word-wrap.white-space (没想到, 这一篇更厉害) white ...

  7. Codes 开源研发项目管理平台——创新的敏捷测试解决方案

    前言 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证.本地部署.全部功能开放,并且对 30 人以下团队免费.它通过整合迭代.看板.度量和自动化等功能,简化测试协同工作, ...

  8. [TK] Blocks 单调栈

    题目描述 给出 \(N\) 个正整数 \(a[1..N]\) ,再给出一个正整数 \(k\) ,现在可以进行如下操作:每次选择一个大于 \(k\) 的正整数 \(a[i]\) ,将 \(a[i]\) ...

  9. 【YashanDB知识库】如何dump数据文件,转换rowid, 查询对应内容

    本文来自YashanDB官网,具体内容可见https://www.yashandb.com/newsinfo/7459464.html?templateId=1718516 问题现象 客户环境有时候会 ...

  10. 画布canvas基础 01

    1. 什么是canvas canvas是用来绘制图形的.它可以用于动画.游戏画面.数据可视化.图片编辑以及实时视频处理等方面. <canvas width="500" hei ...