Octave Convolution 八度卷积
Facebook在2019年时推出了一种新的卷积方法,叫做Octave Convolution,中文名是八度卷积。这个名字借鉴了音乐中高音低音的命名方法,来表示图像中高低频的数据。
图像和特征图的高低频表示
对于一张图片来说,低频的数据是比较平滑的部分,也就是图像的整体结构,高频的数据是那些细节的纹理,也就是边缘像素变化比较大的部分。如图1(a)所示。
图1. 图像和特征图的高低频表示
图1(a)中左图是一张企鹅的原始图片,中间是图片分离出来的低频的部分,也就是整体轮廓图,右图是图像的高频部分,也就是图片的边缘图(有点像素描)。
图1(b)是普通卷积特征图,通常情况下可以分成高频和低频两个部分。由于低频部分的特征基本上比较平滑,所以在特征图上其实不需要和高频一样的维度去表达图像的信息,如图1(c)所示,论文在低频的特征图上将宽高维度降了一半。
图1(d)表示高低频的特征信息的更新和交换,高低频的特征既有各自频率内的卷积操作,也有低频向高频和高频向低频的特征交换和融合,具体怎么操作下面会介绍。
八度卷积的操作
图2. 八度卷积的操作方式
八度卷积的具体操作方式如图2(a)所示。其中 α i n \alpha_{in} αin和 α o u t \alpha_{out} αout是输入和输出特征图的低频维度在总维度中的占比,在论文中一般假设 α i n = α o u t \alpha_{in}=\alpha_{out} αin=αout。图2(b)中间绿色的线表示高低频在各自频域内的卷积,卷积核分别是 W H → H W^{H\rightarrow H} WH→H和 W L → L W^{L\rightarrow L} WL→L,卷积后的输出特征为 Y H → H Y^{H\rightarrow H} YH→H和 Y L → L Y^{L\rightarrow L} YL→L;中间红色的线表示高低频特征向不同频域转换的卷积,箭头朝右下的是高频特征经过池化和卷积后变成低频特征 Y H → L Y^{H\rightarrow L} YH→L,卷积核为 W H → L W^{H\rightarrow L} WH→L,箭头朝右上的是低频特征经过卷积和上采样后变成高频特征 Y L → H Y^{L\rightarrow H} YL→H,卷积核为 W L → H W^{L\rightarrow H} WL→H。最后 Y H → H Y^{H\rightarrow H} YH→H和 Y L → H Y^{L\rightarrow H} YL→H相加成为八度卷积后的高频特征特征, Y L → L Y^{L\rightarrow L} YL→L和 W H → L W^{H\rightarrow L} WH→L相加成为八度卷积后的低频输出特征。
图2(b)是八度卷积的卷积核大小,按八度卷积的路径分成 W H → H W^{H\rightarrow H} WH→H、 W L → L W^{L\rightarrow L} WL→L、 W H → L W^{H\rightarrow L} WH→L和 W L → H W^{L\rightarrow H} WL→H。
综上,八度卷积的高频和低频的特征图计算公式分别为:
Y H = f ( X H ; W H → H ) + u p s a m p l e ( f ( X L ; W L → H , 2 ) Y^H=f(X^H;W^{H\rightarrow H})+upsample(f(X^L;W^{L\rightarrow H}, 2) YH=f(XH;WH→H)+upsample(f(XL;WL→H,2)
Y L = f ( X L ; W L → L ) + f ( p o o l ( X H , 2 ) ; W H → L ) ) Y^L=f(X^L;W^{L\rightarrow L})+f(pool(X^H,2);W^{H\rightarrow L})) YL=f(XL;WL→L)+f(pool(XH,2);WH→L))
其中, X H X^H XH和 X L X^L XL表示的是输入特征图的高频和低频部分, f ( ⋅ ) f(\cdot) f(⋅)表示卷积操作函数。
作者还提到,不仅在普通的卷积中可以改造成八度卷积的方法,对于分组和可分离卷积同样也是适用的。而且八度卷积是一个可插拔的整体操作,基本上只需要在特定位置上改成相应的八度卷积即可,卷积参数基本上保持不变,只是增加了一个低频占比的参数,以及在输入输出的特征图上分成了高频和低频部分。
论文分析了低频维度占比 α \alpha α值对于计算量FLOPs和显存占用的影响,如表1所示。
表1.低频占比对于计算量和显存的影响
从表中可以看出,随着占比率的增加,FLOPs和显存占用逐渐减小,这是由于低频特征是在更小的宽高上进行卷积的操作。
实验结果
作者首先分析了不同低频ratio对于ResNet/ResNeXt系列网络的准确率/FLOPs的影响,所有的实验都是在同样的训练参数和硬件条件下进行的,实验结果如图3所示。
图3.不同低频ratio对于ResNet/ResNeXt精度和性能的影响
从图3中可以看出,ResNet系列网络采用八度卷积改造后,ImageNet准确率和计算量均优于原网络,随着低频占比ratio的增加,准确率逐渐降低,计算量也逐步减少。
论文同样在小模型和中模型的等级上与其他网络做了实验对比,得到表2和表3的实验结果,从这两个表中,同样也能看出来,八度卷积改造后的网络在准确率和计算量上都比改造前的网络更好。
表2. 小模型的八度卷积实验结果对比
表3.中模型的八度卷积实验结果对比
Octave Convolution 八度卷积相关推荐
- 『深度概念』一文读懂Octave Convolution(OctConv)八度卷积
RyanXing Multimedia Processing & Computer Vision. Paper | Octave Convolution(OctConv) 论文:Drop an ...
- Octave Convolution卷积
Octave Convolution卷积 MXNet implementation 实现for: Drop an Octave: Reducing Spatial Redundancy in Conv ...
- Octave Convolution[论文详解]
Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution ...
- 神经网络学习之OctConv:八度卷积
论文介绍 题目:Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Con ...
- 模型压缩与加速:Octave Convolution
自AlexNet刷新了ImageNet比赛的最佳记录以来,神经网络的又一次高潮猛烈的到来了.一些列各种各样的网络层出不穷,图像/音频/文本等各种任务下都开始了神经网络一统天下的声音.然而神经网络虽 ...
- 八分音符(频率)卷积算子 Octave Convolution
为什么读此系列文章? 优化数学和计算理论帮助机器学习完成问题分类: 1)按照领域划分,比如计算机视觉,自然语言处理,统计分析预测形: 2)按照算法复杂划分,比如是否是NP-Hard问题,是否需要精确解 ...
- 卷积网络基础知识---Group Convolution分组卷积
Group Convolution分组卷积,以及Depthwise Convolution和Global Depthwise Convolution https://www.cnblogs.com/s ...
- 论文笔记 -- Communication Lower Bound in Convolution Accelerators 卷积加速器中的通信下界
论文笔记 – Communication Lower Bound in Convolution Accelerators 卷积加速器中的通信下界 @(论文笔记) 文章目录 论文笔记 -- Commun ...
- Dilated Convolution膨胀卷积感受野详解
重温Dilated Convolution膨胀卷积,对论文<MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS>中采用Dilat ...
最新文章
- Visual Studio 2010 Ultimate测试体系结构
- 用C语言编程实现矩形波信号,信号与系统综合设计性实验
- linux下Yum的$releasever和$basearch的取值
- wifi linux 驱动分析,Linux 下wifi 驱动开发(二)—— WiFi模块浅析
- 用户层和内核层异常的处理流程
- addonsmaker怎么制作_addonsmaker
- JAVA判断各种类型数据是否为空(亲测)
- 【Python学习】 caffe-master 之 mnist 详解
- 全网最全 Java 日志框架适配方案!还有谁不会?
- uboot驱动模型(DM)分析(一)
- CRC校验码计算过程
- 银河麒麟Telnet远程登录
- oob袋外估计matlab,机器学习:随机森林RF-OOB袋外错误率
- 关于数据分析师的4点思考
- Ubuntu14.04下nfs服务器的搭建
- 树莓派计算器c语言,树莓派与Python实验9——Tkinter计算器实验
- [CTF萌新的Bugku web闯关之路] 计算器 过关!
- 华为荣耀平板5怎么样_荣耀平板5和华为m5青春版哪个好
- Android加载的图片在内存中的大小
- Teen Readers【青少年读者】