编辑:Happy
首发:AIWalker公众号
日期:2020-07-16

【Happy导语】该文是香港科技李铎、陈启峰团队提出一种多尺度卷积。它在更细粒度角度进行多尺度特征融合。看到该文有一种“相见恨晚”的感觉,因为笔者非常早之前就进行了类似工作的探索,可惜“人单力薄”仅仅进行“浅尝辄止”的探索。笔者认为该文最重要的一点是对PSConv的优化加速,将推理速度优化了额外推理耗时完全可以忽略的地步。

Paper: https://arxiv.org/abs/2007.06191

Code: https://github.com/d-li14/PSConv

Abstract

​ 尽管CNN具有极强的建模能力,但其存在尺度敏感特性。为增强CNN的尺度鲁棒性,多尺度特征融合受到了极大关注,这些多尺度特征融合往往采用多个不同尺寸的卷积核进行融合,而忽视了核空间的更细粒度的利用。

​ 作者提出了一种新颖的多尺度卷积,称之为Poly-Scale Convolution (PSConv),它混合了不同的扩张因子并将其置于卷积核的不同位置。特别的,扩展因子集合可以沿输入和输出通道轴周期性循环,集成不同尺度的特征。PSConv是一种“即插即用”型模块,它可以对常规卷积进行直接替换,在得到更好特征表达学习的同时不引入额外参数与计算复杂度。

​ 作者在ImageNet与MS-COCO数据集上验证了所提PSConv的优异性能。

Method

​ 相比已有多尺度特征融合方案(如MixConv、PSPNet、ASPP、ScaleNet等),该文从更细粒度角度进行了探索,在具有相似计算复杂度的同事具有更强的特征提取能力。

Sketch of Convolution

​ 首先介绍一下常规卷积的,然后逐步引入该文的PSConv。假设

表示输入特征,
表示卷积核,
表示输出特征。那么常规卷积定义如下:

​ 扩张卷积则可以通过如下公式进行描述:

而该文所提出的PSConv则可以同如下公式进行描述,它在同一个卷积核内达成多尺度的特征提取。

Design of PSConv

​ 看到上面的公式,有没有感觉不知所云呢?看公式确实比较复杂,还是看图更容易理解。下图给出了标准卷积、组卷积以及所提PSConv之间的区别与联系。

​ 在上图中,不同颜色代表了不同的感受野。每个小方块代表了深入与输出的连接关系。在常规卷积中,每个输入通道与输出通道均存在连接,而在空间维度则进行不同尺寸的卷积计算且卷积核尺寸相同;在组卷积中,输入通道与输出通道线进行分组,对应组之间进行常规卷积计算;在所提PSConv卷积中,输入与输出通道同样通过全局连接,但区别在于不同通道的卷积计算时的卷积核存在区别,比如

四种尺度卷积交替执行。

​ 也就是说,PSConv将多尺度卷积纳入到同一个计算过程中,且不同尺度卷积计算按通道交替执行,它是一种更细粒度的多尺度操作。

​ 与该文比较相似的当属MixConv,下图给出了MixConv一文中的示意图。

​ 上图可能不太容易看到MixConv与PSConv的区别,那我们将MixConv用PSConv相同的示意图进行绘制一番,见下图。这样两者的区别就非常明显了吧:MixConv每一组的输出仍为单尺度特征,只不过不同组具有不同尺度;而PSConv的每一组输出则是多尺度特征。

​ 看到这里,大家应该非常清楚PSConv的核心所在了。也许有同学会说这种计算方式粒度太细,会导致推理速度变慢。确实,按照上述方式执行确实会导致推理速度变慢。那么有没有加速方案呢?当然有的,下图给出了PSConv的高效实现方案,注:两者之间存在等价关系哦。经过这种变换,PSCOnv可以通过组卷积进行快速实现。

​ 也许仍有同学会说,它仍比标准卷积慢呀!是的,上述高效实现方式仍比标准卷积慢,但作者同样还提出了更快的加速方案。作者注意到:PSConv的主要速度瓶颈源自其中的扩张卷积。扩张卷积可以通过Dilated Winograd Convolution(DWC)进行加速,相比cuDNN中的GEMM,DWC可以进一步加速(2.14x@2,1.53x@4),采用TVM编译优化可以得到额外的0.2x加速,采用Intel的OneDNN工具,PSConv可以进一步加速,大概是标准卷积的1.42x。基于PSConv的ResNet50/101推理好事大概是标准实现的1.066x@GPU,1.051x@CPU。也就是说PSConv具有很高的实用价值。

Experiments

​ 为说明所提方案的有效性,作则会在ImageNet数据集上与其他方法进行了对比。结果见下表。

​ 下表给出不同多尺度融合方案的性能对比。

​ 此外,作者还给出了两组消融实验结果对比,见下表。

​ 下表给出了所提方法在COCO数据集上的性能对比。

Conclusion

​ 该文提出了一种新颖的卷积操作,称之为PSConv,它验证输入通道采用循环调节扩张比例的方式达到多尺度特征融合的目的。PSConv可以从更细粒度角度将输入特征进行多尺度融合,从而有效避免传统多尺度特征融合的高计算量问题。PSConv是一种“即插即用”计算单元,它可以轻易嵌入到现有CNN架构中并取得性能上的提升。

​ 笔者在很早之前(2019年7-8月份)也进行过类似的研究,见链接稀疏卷积在模型设计中的应用.当时也提出了一种“可变卷积核尺寸稀疏组卷积”,它与同期的MixConv思想不谋而合。而PSConv则是在此基础上对“空白”部分进行多尺度的探索,将多尺度思想嵌入到稀疏组卷积的“空白”区域,在确保计算量不增加的前提下进一步提升输出的多尺度特征。

推荐阅读

  1. MobileNeXt,新一代移动端模型,精度速度双超MobileNetV2
  2. SPConv|精度更高、速度更快的“即插即用”卷积
  3. 网络架构设计新范式|ReXNet
  4. GPU端精度最高速度最快的强悍担当:GENet
  5. PyConv|高性能"即插即用"金字塔卷积

循环卷积和周期卷积的关系_PSConv:多位一体、即插即用卷积单元相关推荐

  1. 【信号与系统学习笔记】—— 一起走进“卷积”的世界 2【系统基本性质和卷积的关系】

    文章目录 一.卷积计算的基本性质 二.由卷积计算的基本性质探索LTI系统结构的特点 三.系统基本性质和卷积的关系 2.1 记忆性和卷积 2.2 可逆性与卷积 2.3 稳定性与卷积 2.4 因果性与卷积 ...

  2. 线性卷积、循环卷积、周期卷积的定义、计算方法及三者之间的关系

    文章目录 前言 一.卷积的物理意义及性质 1. 物理意义 2. 卷积性质 二.线性卷积定义及计算方法 1. 定义公式 2. 适用范围 3. 计算方法 三.循环卷积定义及计算方法 1. 定义公式 2. ...

  3. 线性卷积、循环卷积与FFT之间的关系

    线性卷积与循环卷积 在音频信号处理中,卷积是很常见的信号处理方式,例如fir滤波器,卷积的计算公式也非常简单,对于系统h和输入信号x,卷积的计算公式如下: y(t)=∑m=0N−1x(t−m)h(m) ...

  4. matlab验证线性卷积与圆周卷积的关系

    数字信号处理实验 一.线性卷积和圆周卷积的关系 1.线性卷积 设X1为N1点的有限长序列,X2为N2点的有限长序列(0 < n < N2) 则两序列的线性卷积为: 线性卷积y1(n)的长度 ...

  5. 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式

    1. 卷积与反卷积(转置卷积)的关系推导: 2. Transposed Convolution, Fractionally Strided Convolution or Deconvolution h ...

  6. 利用matlab实现卷积实验报告,实验五 使用matlab实现卷积的运算

    实验五 使用matlab实现卷积的运算 一 实验目的 1. 2. 二 实验内容 学习MATLAB语言的编程方法及熟悉MATLAB指令: 深刻理解卷积运算,利用离散卷积实现连续卷积运算: 1. 完成f1 ...

  7. TensorFlow(8)卷积神经网络实战(2)手写卷积池化

    目录 一.获取并绘制图像 二.手写卷积 1.设置卷积核及权重 2.卷积 2-1.卷积实现 2-2. 限值 2-3.图像赋值 2-4.显示 卷积代码 三.手写池化 1.创建图像 2.遍历池化 3.显示图 ...

  8. 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.3 目标检测 回到目录 3.5 Bounding Box 预测 滑动窗口的卷积实现 (Convolutional Implementation of Sliding Wi ...

  9. 1.7 单层卷积网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.6 三维卷积 回到目录 1.8 简单卷积网络示例 单层卷积网络 (One Layer of a Convolutional Network) 今天我们要讲的是如何构建卷积 ...

最新文章

  1. Linux中Iptable防火墙规则的应用
  2. 深度丨11位科技大牛谈人工智能:AI如何改变游戏规则
  3. C# WinForm开发系列 - ListBox/ListView/Panel
  4. 【云快讯】之四十五《Google在云服务领域认输?不,我们的重点是大数据》
  5. 6、存储函数详解,创建,查看,修改,删除
  6. table td的宽度详解
  7. PHP rewinddir()函数与示例
  8. NLPIR python测试
  9. 一个amp;quot;现象级amp;quot;大数据公司的蜕变
  10. 计算机里的文案怎么设置背景,如何将图片设置为Word文档的背景
  11. 如何获取win10锁屏界面的壁纸
  12. B站手艺人又在刷新年轻人的见识
  13. 2019云计算公司排名 哪家的云服务器最好用?
  14. 第327场周赛6284. 使字符串总不同字符的数目相等
  15. android 优化编译,Android-Easy-Compile(安卓编译优化系统)
  16. 分布式微服务项目实现高并发高可用高性能可以使用到的方案
  17. 合泰单片机做电压表_合泰单片机总结
  18. Codevs3287 货车运输
  19. python控制excel打印_九、Python 操作excel(一)
  20. python基础之Requests库

热门文章

  1. Tensorflow实现MNIST数据自编码(3)
  2. 交通预测论文笔记《Attention Based Spatial-Temporal Graph Convolutional Networks for Traffic Flow Forecasting》
  3. MATLAB从入门到精通-缺失值和异常值的处理应用案例
  4. 基于依存句法分析的关键短语抽取算法实战
  5. Matplotlib实例教程(十二)箱形图
  6. 【git学习二】git基础之git管理本地项目
  7. 从flink-example分析flink组件(3)WordCount 流式实战及源码分析
  8. MYSQL存储过程中 使用变量 做表名--转
  9. Lesson 12.4 逻辑回归建模实验
  10. 数据挖掘十大经典算法之——AdaBoost 算法