Octave Convolution[论文详解]

Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution [github]

传统的卷积运算,要成为过去时了。Facebook和新加坡国立大学联手提出了新一代替代品:OctConv(Octave Convolution),效果惊艳,用起来还非常方便。OctConv就如同卷积神经网络(CNN)的“压缩器”。用它替代传统卷积,能在提升效果的同时,节约计算资源的消耗。

比如说一个经典的图像识别算法,换掉其中的传统卷积,在ImageNet上的识别精度能获得1.2%的提升,同时,只需要82%的算力和91%的存储空间。如果对精度没有那么高的要求,和原来持平满足了的话,只需要一半的浮点运算能力就够了。

想实现这样的提升,怕不是要把神经网络改个天翻地覆吧?根本不需要,OctConv即插即用,无需修改原来的网络架构,也不用调整超参数,方便到家。就是这个新一代的卷积,让GAN的主要创造者、AI大牛Ian Goodfellow迫不及待,不仅转发力荐,还表示要持续关注进展,开源时再发推告诉大家。消息来源:CNN更新换代!性能提升算力减半,还即插即用

博主注:Octave表示的是音阶的八度,而本篇核心思想是通过对数据中低频信息减半从而达到加速卷积运算的目的,而两个Octave之间也是声音频率减半,注意Octo也是八的词根,Octobor在罗马历就是8月,只不过凯撒后来加了两个月在前面。


Abstract

在自然图像中,信息以不同的频率传递,其中较高的频率通常用精细的细节编码,较低的频率通常用全局结构编码。同样,卷积层的输出特征图也可以看作是不同频率下信息的混合。在这项工作中,我们提出将混合特征图按其频率分解,并设计一种新的Octave Convolution(OctConv)操作来存储和处理空间分辨率较低且空间变化较慢的特征图,从而降低了内存和计算成本。与现有的多尺度方法不同,OctConv被表示为一个单一的、通用的、即插即用的卷积单元,可以直接替换(普通的)卷积,而无需对网络架构进行任何调整。它也正交和互补的方法,建议更好的拓扑或减少像组或深度卷积信道冗余。实验表明,通过简单地用OctConv替换卷积,我们可以不断提高图像和视频识别任务的准确性,同时降低内存和计算成本。一个装备了八重卷积网络(octconvo)的ResNet-152仅用22.2 GFLOPs就能在ImageNet上实现82.9%的top-1分类精度。


1. Introduction

卷积神经网络(Convolutional Neural network, CNNs)在许多计算机视觉任务中都取得了显著的成功[18,17,42],近年来在降低DenseNet模型参数[16,32,40]和特征图通道维数[45,20,7,10]的固有冗余方面,其效率不断提高。然而,CNNs生成的特征图在空间维度上也存在大量冗余,每个位置独立存储自己的特征描述符,忽略了可以一起存储和处理的相邻位置之间的公共信息。

如图1(a)所示,自然图像可以分解为描述平稳变化结构的低空间频率分量和描述快速变化精细细节的高空间频率分量[1,12]。同样,我们认为卷积层的输出特征映射也可以分解为不同空间频率的特征,并提出了一种新的多频特征表示方法,将高频和低频特征映射存储到不同的组中,如图1(b)所示。

图1:(a)动机。视觉的空间频率模型[1,12]表明,自然图像可以分解为低空间频率和高空间频率两部分。
(b)卷积层的输出图也可以根据其空间频率分解和分组。
(c)提出的多频特征表示方法将平滑变化的低频映射存储在低分辨率张量中,以减少空间冗余。
(d)建议的
Octave Convolution 直接作用于这个表示。它更新每个组的信息,并进一步支持组之间的信息交换。

因此,通过相邻位置间的信息共享,可以安全降低低频组的空间分辨率,减少空间冗余,如图1(c)所示。适应新的特征表示,我们推广了vanilla convolution,并提出Octave Convolution(OctConv)将张量特征图包含两个频率和一个octave部分,频率和提取信息直接从低频地图不需要解码的高频如图1所示(d)。作为普通卷积的替代品,OctConv消耗的内存和计算资源大大减少。此外,OctConv对低频信息进行相应的(低频)卷积处理,有效地扩大了原始像素空间的接收域,从而提高了识别性能。

我们以一种通用的方式设计了OctConv,使它成为即插即用的卷积的替代品。OctConv以来主要集中在加工特征图谱在多个空间频率和减少空间冗余、正交和补充现有的方法,专注于构建更好的CNN拓扑[24, 38, 36, 34, 30],减少channel-wise冗余卷积特征图谱[45, 10, 35, 33, 23]和减少冗余在浓密的模型参数[40, 16, 32]。我们还将进一步讨论OctConv在群、深度和三维卷积情况下的积分。此外,与利用多尺度信息的方法[4, 41, 14]不同的是,OctConv可以很容易地作为即插即用单元部署来替代卷积,而不需要改变网络架构或进行超参数调优。

我们的实验证明,只需用OctConv代替vanilla卷积,我们始终可以提高受欢迎的2D CNN backbones的性能包括ResNet [18, 19], ResNeXt [45], DenseNet [24], MobileNet[20, 35]和SE-Net[21]在2D图像识别ImageNet[13],以及3D CNN backbones C2D[42]和I3D[42]视频行动识别动力学[26, 3, 2]。配备OctConv的Oct-ResNet-152能够以更低的内存和计算成本匹配或超过最先进的手工设计网络[33, 21]。我们的贡献可以总结如下:

扫描二维码关注公众号,回复: 8562379 查看本文章
  • 我们提出将卷积地形图分解成两组不同空间频率的卷积地形图,并分别以一个octave的频率对其进行处理。由于可以降低低频图的分辨率,这节省了存储和计算。这也有助于每一层获得更大的接受域,以捕获更多的上下文信息。
  • 我们设计了一种即插即用的OctConv运算来代替传统的卷积运算,直接对新的特征表示进行运算,减少了空间冗余。重要的是,OctConv在实践中速度很快,达到了接近理论极限的加速。
  • 我们广泛研究了所提出的用于图像和视频任务的各种骨干cnn上的OctConv的特性,并获得了显著的性能提高,甚至可以与最好的自动网络相媲美。

2. Related Work

Improving the efficiency of CNNs 自从AlexNet[27]和VGG[36]的开创性工作以来,通过叠加一组卷积层获得了惊人的结果,研究人员为提高CNNs的效率做出了大量的努力。ResNet[18, 19]和DenseNet[24]通过向早期层添加快捷连接来改进网络拓扑结构,增强特征重用机制,缓解优化困难。ResNeXt[45]和ShuffleNet[47]使用稀疏连接的组卷积来减少通道间连接的冗余,使得在相同的计算预算下采用更深或更广的网络是可行的。Xception[10]和MobileNet[20,35]采用深度卷积,进一步降低了连接密度。除了这些人工设计的网络,研究人员还试图原子地为给定的任务找到最佳的网络拓扑。NAS[49]、PNAS[30]和AmoebaNet[34]成功地发现了比手工设计的网络表现更好的类型学。另一项工作重点是减少模型参数中的冗余。DSD[16]通过修剪低权重的连接来减少模型连接中的冗余。ThiNet[32]删除了基于其下一层计算的统计数据的卷积滤波器。然而,所有这些方法都忽略了特征图空间维数的冗余,这是由所提出的OctConv来解决的,使得OctConv正交并且与之前的方法互补。

Multi-scale Representation Learning 提出的OctConv在不同的空间分辨率下对特征图进行卷积,得到了具有较大接收域的多尺度特征表示。尺度空间长期以来被应用于局部特征提取,如曾经流行的SIFT特征[31]。在深度学习时代,现有的方法侧重于融合多尺度特征[28,48,14,22],更好地捕捉远程信息[42,6,9]。然而,这种方法只通过插入新提出的块,在网络的少量深度(通常在中间或接近末尾)处聚合信息。blnet[4]和ELASTICNet[41]经常上下采样整个网络的特征映射,以自动学习多尺度特征。然而,这两种方法都被设计为对剩余块的替代,这需要额外的专业知识和超参数调优,尤其是应用于不同的网络架构时,如MobileNetV1[20]、DenseNet[24]。此外,这些方法只同步每个构建块末尾的多尺度信息,并同步高分辨率地图上的所有信息。在[22]中,Huang等人在整个网络中保持多尺度特征,并且在DenseNet的每一层都有尺度间的连接。为了降低计算成本,他们只使用粗糙的特征作为不同深度的多个分类器的输入。相比之下,OctConv被设计成一种普通卷积的替代品,可以直接应用于现有的CNNs中,无需调整网络结构。对于OctConv,在每一组的每一层都同步了多尺度的信息,提高了学习能力和效率。我们在实验部分对OctConv和所有密切相关的方法进行了广泛的比较,结果表明OctConv CNNs在许多具有挑战性的基准测试中给出了最好的结果。


3. Method

在本节中,我们首先介绍了用于减少特征图中空间冗余度的octave特征表示,然后描述了直接作用于其上的Octave Convolution。我们还讨论了实现细节,并展示了如何将OctConv集成到组和深度卷积架构中。

3.1. Octave Feature Representation

对于普通卷积,所有的输入和输出特征图具有相同的空间分辨率。然而,spatial-frequency模型[1,12]认为自然图像可以分解为捕捉全局布局和粗结构的低频信号和捕捉精细细节的高频信号,如图1(a)所示。以类似的方式,我们认为有一个特征映射子集,它捕获空间低频变化并包含空间冗余信息。

为了减少这种空间冗余,我们引入了octave特征表示,它显式地将特征映射张量分解为对应于低频和高频的组。尺度空间理论[29]为我们提供了一种创建空间分辨率尺度空间的原则方法,并将octave定义为空间维度除以2的幂(在本文中我们只探讨了2^1)。我们用这种方式定义了低频和高频空间,即将低频地物图的空间分辨率降低一个octave。

形式上,设|X | \in \mathbb{R}^{c \times h \times w}表示卷积层的输入特征张量,其中h和w表示空间维数,c表示特征图或信道数。我们沿着通道尺寸为显式因式分解X=\left\{X^{H}, X^{L}\right\},在高频特征图X^{H} \in \mathbb{R}^{(1-\alpha) c \times h \times w}捕捉细节和低频图X^{L} \in \mathbb{R}^{\alpha c \times \frac{h}{2} \times \frac{w}{2}}变化慢的空间维度(w.r.t.图片位置)。这里\alpha \in[0,1]表示渠道的比例分配给低频部分和低频特征图谱定义一个octave低于高频的,即在一半的空间分辨率,如图1所示(c)。在下一小节中,我们将介绍一个直接作用于这种多频特征表示的卷积运算符,并将其命名为Octave Convolution,或简称为OctConv。

3.2. Octave Convolution

第3.1节中提出的octave特征表示方法减少了空间冗余,比原表示方法更加紧凑。然而,由于输入特征的空间分辨率不同,普通卷积不能直接对这种表示进行操作。绕过这个问题的一种简单方法是将低频部分X^{L}上采样到原始的空间分辨率,将它与X^{H}连接起来,然后进行卷积,这将导致额外的计算和内存开销,并减少压缩带来的所有节省。为了充分利用我们紧凑的多频特征表示,我们引入了Octave Convolution,它可以直接作用于因式张量X=\left\{X^{H}, X^{L}\right\},而不需要任何额外的计算或内存开销。

Vanilla Convolution W \in \mathbb{R}^{c \times k \times k}表示一个k x k卷积核,X, Y \in \mathbb{R}^{c \times h \times w}分别表示输入和输出张量。Y_{p, q} \in\mathbb{R}^{c}中的每个特征图都可以通过计算:

Y_{p, q}=\sum_{i, j \in \mathcal{N}_{k}} W_{i+\frac{k-1}{2}, j+\frac{k-1}{2}}^{\top} X_{p+i, q+j}

其中(p, q)表示位置坐标,\mathcal{N}_{k}=\left\{(i, j) : i=\left\{-\frac{k-1}{2}, \dots, \frac{k-1}{2}\right\}, j=\left\{-\frac{k-1}{2}, \dots, \frac{k-1}{2}\right\}\right\}定义了一个局部邻域。为简单起见,在所有的方程中我们省略填充,我们假设k是一个奇数,并且输入和输出数据具有相同的维数,即c_{i n}=c_{o u t}=c

Octave Convolution 我们的设计目标是有效地处理相应频率张量中的低频和高频分量,同时使我们的octave特征表示的高频分量和低频分量之间能够有效地通信。设X, Y为因式分解的输入和输出张量。那么高和低频特征图的输出Y=\left\{Y^{H}, Y^{L}\right\}将由Y^{H}=Y^{H \rightarrow H}+Y^{L \rightarrow H}Y^{L}=Y^{L \rightarrow L}+Y^{H \rightarrow L}分别在Y^{A \rightarrow B}表示卷积更新从功能映射组B组。具体来说,Y^{H \rightarrow H}, Y^{L \rightarrow L}表示intra-frequency信息更新,而Y^{H \rightarrow L}, Y^{L \rightarrow H}表示inter-frequency沟通。

为了计算这些项,我们将卷积核W分成两个分量W=\left[W^{H}, W^{L}\right],分别负责与X^{H}X^{L}进行卷积。将各分量进一步划分为频率内分量和频率间分量:W^{H}=\left[W^{H \rightarrow H}, W^{L \rightarrow H}\right]W^{L}=\left[W^{L \rightarrow L}, W^{H \rightarrow L}\right],参数张量形状如图2(b)所示。

对于高频地形图,我们在位置(p, q)处进行计算,使用正则卷积对频率内的更新进行计算,对频率间的更新进行计算,我们可以将特征张量X^{L}上采样折叠成卷积,不需要显式计算和存储上采样的特征图,如下所示:

Y_{p, q}^{H}=Y_{p, q}^{H \rightarrow H}+Y_{p, q}^{L \rightarrow H} =\sum_{i, j \in \mathcal{N}_{k}} {W_{i+\frac{k-1}{2}, j+\frac{k-1}{2}}^{H \rightarrow H}}^\top \quad X_{p+i, q+j}^H +\sum_{i, j \in \mathcal{N}_{k}} {W_{i+\frac{k-1}{2}, j+\frac{k-1}{2}}^{L \rightarrow H} }^\top X^L_{\left(\left\lfloor\frac{p}{2}\right\rfloor+ i\right),\left(\left\lfloor\frac{q}{2}\right\rfloor+ j\right)}

\lfloor \cdot \rfloor 表示floor操作。同样,对于低频特征图,我们使用正则卷积计算频率内更新。注意,由于map在一个octave以下,卷积也是低频的w.r.t.,即高频坐标空间。对于频间通信,我们可以再次将特征张量X^{H}下采样折叠成卷积,如下所示:

Y_{p, q}^{L}=Y_{p, q}^{L \rightarrow L}+Y_{p, q}^{H \rightarrow L} =\sum_{i, j \in \mathcal{N}_{k}}{ W_{i+\frac{k-1}{2}, j+\frac{k-1}{2}}^{L \rightarrow L}}^\top \quad X_{p+i, q+j}^{L} +\sum_{i, j \in \mathcal{N}_{k}} {W_{i+\frac{k-1}{2}, j+\frac{k-1}{2}}^{H \rightarrow L}}^\top X^H_{(2 * p+0.5+i),(2 * q+0.5+j)}

将一个因子2乘以位置(p, q)进行向下采样,并进一步将位置移动半步,以确保向下采样的映射与输入保持良好的对齐。然而,由于X^{H}的索引只能是一个整数,我们可以将索引四舍五入到(2 * p+i, 2 * q+j),或者通过对所有4个相邻位置求平均值来近似(2 * p+0.5+i, 2 * q+0.5+j)。第一个也被称为条纹卷积第二个是平均池。正如我们在3.3节和图3中所讨论的,条纹卷积会导致失调;因此,在本文的其余部分,我们使用平均池来近似这个值。

Octave Convolution的一个有趣和有用的性质是低频特征图的更大的接受域。将低频部分X^{L}与k x k卷积核进行卷积,与普通卷积相比,有效地将接收域扩大了2倍。这进一步帮助每个OctConv层从遥远的位置捕获更多的上下文信息,并可能提高识别性能。

3.3. Implementation Details

如前一小节所述,index{(2p + 0.5 +i),(2q + 0.5 +j)}必须是Eq. 3的整数。我们没有取整为{(2p + i),(2q + j)},即与stride 2进行卷积进行下采样,而是采用平均池的方法得到更准确的近似。这有助于缓解在聚合来自不同规模[11]的信息时出现的不对齐,如图3所示,并在表3中进行了验证。

我们现在可以重写输出Y=\left\{Y^{H}, Y^{L}\right\}的Octave Convolution使用平均池为下采样:

\begin{aligned} Y^{H} &=f\left(X^{H} ; W^{H \rightarrow H}\right)+\text { upsample }\left(f\left(X^{L} ; W^{L \rightarrow H}\right), 2\right) \\ Y^{L} &=f\left(X^{L} ; W^{L \rightarrow L}\right)+f\left(\operatorname{pool}\left(X^{H}, 2\right) ; W^{H \rightarrow L}\right) \end{aligned}

f(X ; W)表示与参数W的卷积,pool(X, k)是一个平均池操作,池的核大小为k,步长为k。

OctConv操作符实现的细节如图2所示。它由四条计算路径组成,分别对应于式(4)中的四项:两条绿色路径对应于高频和低频特征图的信息更新,两条红色路径便于两个octave之间的信息交换。

Group and Depth-wise convolutions Octave Convolution也可以用于其他常见卷积的变体,如组[45]或深度方向的[20]卷积。对于群卷积的情况,我们简单地将出现在OctConv设计中的所有四个卷积操作都设置为组卷积。同样,对于深度卷积,卷积运算是深度卷积,因此信息交换路径被消除,只剩下两个深度卷积运算。我们注意到,如果不压缩低频部分,组OctConv和深度方向的OctConv都减少到各自的普通版本。

Efficiency analysis 表1给出了OctConv相对于普通卷积和普通特征映射表示的理论计算成本和内存消耗。关于从表1中得到的理论收益的更多信息可以在补充材料中找到。我们注意到理论增益是按每一卷积层计算的。在第4节中,我们给出了实际场景中相应的实际收益,并证明了我们的OctConv实现能够充分逼近理论值。

Integrating OctConv into backbone networks OctConv与普通卷积向后兼容,无需特殊调整即可插入常规卷积网络。将特性表示表示一个多频特性,即在第一个OctConv层,我们设置\alpha_{i n}=0 \text { and } \alpha_{o u t}=\alpha。在本例中,与低频输入相关的OctConv路径被禁用,导致简化版本只有两条路径。将多频特性表示回到vanilla特性表征,即在最后OctConv层,我们设置\alpha_{o u t}=0。在本例中,与低频输出相关的OctConv路径被禁用,从而产生单个全分辨率输出。

4. Experimental Evaluation

在本节中,我们验证了所提出的Octave Convolution在二维和三维网络中的有效性和效率。我们首先介绍了在ImageNet[13]上进行图像分类的消融研究,然后将其与目前最先进的消融方法进行了比较。然后,我们使用Kinetics-400[26,3]和Kinetics-600[2]数据集展示了所提议的OctConv也适用于3D CNNs。每个类别/块的最佳结果将在整篇文章中以粗体突出显示

4.1. Experimental Setups

Image classification 我们在一组最流行的CNNs[20、35、18、19、24、45、21]上检查OctConv,用OctConv替换常规卷积(最大池之前的第一个卷积层除外)。由此产生的网络只有一个全球hyper-parameterα,表示低频部分的比率。我们在相同的训练/测试环境下,对所有的基线方法进行苹果对苹果的比较和复制,用于内部消融研究。所有网络训练与naıve softmax交叉熵的损失除了MobileNetV2也采用标签平滑[37],和最好的ResNet152采用标签平滑和混合[46]防止过度拟合。与[4]一样,所有的网络都是从零开始训练,由SGD进行优化,其余弦学习率为[15]。报告了单中心crop[18,19,45,4,41]在验证集上的标准精度 。

Video action recognition 我们同时使用Kinetics-400[26,3]和Kinetics-600[2]进行人类动作识别。我们从膨胀的3D ConvNet[42]中选择标准基线脊柱,并与相应的OctConv进行比较。我们按照[43]的设置,以帧长8为标准输入大小,共训练300k次迭代。为了进行公平的比较,我们报告了基线和OctConv在完全相同的设置下的性能。在推断时间方面,我们对30种crop (每一种f (left, center, right) × 10 crops沿时间维度的预测进行平均),同样遵循之前的工作[42]。

4.2. Ablation Study on ImageNet

我们进行了一系列消融研究,旨在回答以下问题:

1)与普通卷积相比,OctConv是否具有更好的flops - accuracy权衡?

2)在什么情况下OctConv工作得最好

Results on ResNet-50. 我们首先使用流行的ResNet-50[19]作为基准CNN,并使用我们提出的OctConv替换正则卷积来检查flops-accuracy权衡。特别是,我们改变全局比\alpha \in\{0.125,0.25,0.5,0.75\}比较图像分类精度与计算成本(例如失败)[18, 19, 45, 8]的基线。结果如图4中粉红色部分所示。

我们的观察如下。

1) flops-accuracy权衡曲线为凹曲线,精度先上升后缓慢下降。

2)我们可以看到两个甜蜜的地点:第一在α= 0.5,网络得到类似或者更好的结果即使失败减少一半;在α= 0.125,第二,网络达到最好的精度,比基线(黑圈)高出1.2%。

我们将准确率的提高归功于OctConv对多频处理的有效设计以及相应的放大接收域,这为网络提供了更多的上下文信息。达到精度达到0.125时,精度并不突然下降,但是减小了慢慢的高比率α,表明减少低频部分的解决不会导致重大的信息丢失。有趣的是,75%的feature map可以压缩到一半的分辨率,而准确率只有0.4%的下降,这证明了对平滑变化的feature map进行分组和压缩的有效性,可以减少CNNs中的空间冗余。

在表2中,我们演示了OctConv的理论故障节省也反映在实际的CPU推理时间。对于ResNet-50,我们接近于获得理论上的故障加速。这些结果表明,OctConv能够带来重要的实际效益,而不仅仅是理论上的失败 。

Results on more CNNs. 为了进一步检验所提出的OctConv是否适用于其他具有不同深度/宽度/拓扑结构的网络,我们选择了当前最流行的网络作为基线,并重复了相同的消融研究。这些网络是ResNet-(26;50;101;200)[19]、ResNeXt-(50,324d; 101,324d)[45]、DenseNet-121[24]和SE-ResNet-50[21]。选择ResNeXt对群卷积的OctConv进行评估,使用SENet[21]检查基于普通卷积网络的SE块增益是否也可以在OctConv上看到。

如图4所示,OctConv装备网络对不同架构的行为类似于Oct-ResNet-50 FLOPs-Accuracy权衡的凹曲线,峰值性能也比α= 0.125或α= 0.25。在各种骨干网络上的一致性性能提高证实了OctConv是一种很好的替代普通卷积的方法。

此外,我们也有一些有趣的发现:

1)OctConv可以帮助CNNs提高准确性,而减少FLOPs,与其他方法不同的是,这些方法以较低的精度为代价来减少故障。

2)在测试时,OctConv比基线模型的增益随着测试图像分辨率的增加而增加,因为OctConv的接受域较大,可以更好地检测大对象,如表4所示。

3)这两条信息交换路径都很重要,删除其中任何一条都会导致准确率下降,如表3所示。

4)浅层网络,如ResNet-26,其接受域非常有限,尤其可以从OctConv中获益,这大大扩大了它们的接受域。

4.3. Comparing with SOTAs on ImageNet

Small models. 我们采用最流行的轻量级网络作为基线,并检查OctConv在这些具有深度卷积的紧凑网络上是否工作良好。特别地,我们使用0.75 MobileNet (v1)[20]和1.0 MobileNet (v2)[35]作为基线,并用我们提出的OctConv替换常规卷积。结果如表5所示。我们发现,OctConv可以将MobileNetV1的拖放率降低34%,在实际应用中提供了更好的精度和更快的速度;它可以减少15%的失败的MobileNetV2,达到同样的精度和更快的速度。当计算预算固定时,由于OctConv可以补偿额外的计算成本,可以采用更广泛的模型来提高学习能力。特别是,我们的OctConv装备的网络在相同的故障下实现了对MobileNetV1 2%的改进,对MobileNetV2 1%的改进。

Medium models. 在上述实验中,我们比较并表明OctConv与一组最先进的CNNs是互补的[18,19,45,24,20,35,21]。在这一部分中,我们将OctConv与弹性[41]和bLNet[4]进行了比较,它们与我们的方法有着相似的思想。五组结果如表6所示。

在第一组中,我们的OctResNeXt-50比基于弹性[41]的方法(78.7% vs . 78.4%)获得了更好的精度,同时降低了31%的计算成本。在第二组中,Oct-ResNeXt-101的计算精度也高于基于弹性的方法(79.5% vs . 79.2%),计算量减少38%。与bL-Net[4]相比,配备了OctConv的方法在没有铃声和技巧的情况下实现了更好的FLOPs-Accuracy权衡。在采用基线bL-Net[4]中使用的技巧时,我们的Oct-ResNet-50在相同的计算预算(组3)下的准确率比bL-ResNet-50高0.8%,而Oct-ResNeXt-50(组4)和OctResNeXt-101(组5)在计算预算相近甚至更低的情况下,准确率更高。这是因为弹性网络[41]和bL-Net[4]都是为了利用多尺度特性而设计的,而不是为了减少空间冗余。相比之下,OctConv使用更紧凑的特征表示来存储和处理整个网络中的信息,从而可以达到更好的效率和性能。

Large models. 表7显示了OctConv在大型模型中的结果。

这里,我们选择ResNet-152作为CNN的主干,用3个3 x 3个卷积层替换前7个卷积层,用一个轻量级的剩余块[4]去除最大池。我们报告了使用和不使用se块[21]的OctResNet-152的结果。从图中可以看出,我们的Oct-ResNet-152的精度可与人工设计的最优网络相媲美,且故障更少(10.9G vs . 12.7G)。自我们的模型不使用组或深度方面的隆起,它也需要很少的GPU内存,运行速度实际上比SE-ShuffleNet v2 - 164和AmoebaNet-A (N = 6 F = 190)在理论上具有低失败但运行缓慢的在实践中由于使用组和深度方面的隆起。我们提出的方法也补充了挤压和激励[21],当增加se块(最后一行)时,可以进一步提高精度。

4.4. Experiments of Video Recognition on Kinetics

在本节中,我们评估了OctConv在视频中动作识别的有效性,并证明了我们的空间OctConv具有足够的通用性,可以集成到三维卷积中,从而在减少#FLOPs的同时提高精度。如表8所示,当添加到C2D和I3D时,OctConv不断减少FLOPs,同时提高了精度[42,43],同时补充了非本地构建块[42]。这可以观察到在ImageNet[13]上预先训练的模型以及在动力学上从零开始训练的模型。

具体来说,我们首先从动力学的角度研究了装备I3D模型的OctConv训练的行为。我们使用一个比标准大10倍的学习速度,并将其训练16倍于finetuning设置,以获得更好的收敛性。与传统的I3D模型相比,Oct-I3D的准确率提高了1.0%,失败率为91%。

在此基础上,我们研究了在ImageNet预训练模型上采用步进学习计划对八自由度矢量进行微调的行为。为此,我们在ImageNet[13]上训练一个OctConv ResNet-50模型[18],然后使用I3D技术[3]将其膨胀成一个具有三维卷积[39](随空间和时间)的网络。在通货膨胀之后,我们按照Kinetics400上[43]中描述的时间表对膨胀的OctConv进行了微调。与Kinetics-400验证集上C2D基线的71.9%的Top-1精度相比,OctConv对应物的准确率达到了73.8%,使用了90%的FLOPs。对于I3D,添加OctConv可以将准确率从73.3%提高到74.6%,而使用的失败率只有91%。我们还证明了在添加非本地[42]时,这种差异是一致的。最后,我们在Kinetics-600[2]数据集上重复了I3D实验,得到了一致的结果,进一步证实了我们方法的有效性。


5. Conclusion

本文针对传统CNN模型中普遍存在的空间冗余问题,提出了一种新颖的Octave Convolution运算,分别存储和处理低频和高频特征,提高了模型的效率。Octave卷积具有足够的通用性,可以代替常规的卷积运算,可以在大多数二维和三维CNNs中使用,无需调整模型结构。除了节省大量的计算和内存外,Octave Convolution还可以通过在低频段和高频段之间进行有效的通信,增大接收域的大小,从而获得更多的全局信息,从而提高识别性能。我们在图像分类和视频动作记录方面进行了广泛的实验验证了我们的方法在识别性能和模型效率之间取得更好权衡的优越性,不仅在失败的情况下,而且在实践中也是如此。

发布了261 篇原创文章 · 获赞 137 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/weixin_37993251/article/details/89333099