IGCV2(Interleaved Structured Sparse Convolutional Neural Networks)论文解读

Abstract

在本篇论文中,我们继续研究如何设计高效卷积神经网络结构来消除卷积核的冗余。目前来说,消除卷积核中的冗余有以下几种方法:

  • 减少卷积操作;
  • 低精度卷积核,即做一些量化,从浮点到定点转化;
  • 低秩卷积核,即减少卷积核的个数或者通道数;
  • 低秩卷积核的组合,,担心单纯的减少卷积核的个数或者通道数会对性能造成影响,所以采用多个低秩卷积核组合在一起达到原来的密集卷积核的作用;
  • 稀疏卷积核,分为结构化稀疏与非结构化稀疏,IGCV1中介绍的组卷积其实就起到了稀疏卷积核的作用;
  • 稀疏卷积核的组合,和采用低秩卷积核的组合的理念相同,用多个稀疏卷积核的组合来替代密集卷积核的作用;

在IGCV1中已经解释了最近发展出的新框架——交错组卷积和它的变体Xception。通过对IGCV1中组卷积的观察,我们发现可以以相同的方式进一步分解,我们提出了一种模块化的构建块——IGCV2:交错的稀疏化组卷积。它泛化了交错组卷积,将IGCV1中由两个结构化稀疏卷积核组成的构建块扩展到多个结构化稀疏卷积核组成的产物,进一步降低了冗余。我们提出了互补条件和平衡条件指导结构化稀疏卷积核的设计,它需要同时在模块大小、计算复杂度、分类精度三个方面达到一个平衡。实验结果进一步展示了我们的模型相比于IGCV1、Xception和其他的一些先进网络结构的优势。

1. Introduction

小的模型尺寸、低的计算成本、高精度对于深度卷积神经网络来说是一个迫切的需求,目前在这方面做的努力包括:

  • 网络压缩:通过分解卷积核矩阵、移除连接关系或者通道数压缩预训练模型,来消除冗余;
  • 结构设计:设计小且稀疏的卷积核(即低秩且稀疏),使用低冗余的卷积核组合在一起逼近单个密集的卷积核,从头开始训练模型;

我们指出最近开发出的算法,比如组卷积、deep roots 和 Xception ,使用两个结构化稀疏核的乘积来逼近一个密集核。我们观察到两个卷积核中之一可以被进一步分解 ,Xception和deep roots中的 1x1 卷积核可以被进一步分解成两个对角块稀疏矩阵的乘积。在交错组卷积中的第二个组卷积包含了两个分支,每个分支都是 1x1 的标准卷积,这个可以进一步分解消除冗余。
在这里插入图片描述
受到上面的灵感,我们设计了一个构建块——IGCV2:交错结构稀疏卷积,如Figure 1所示,它包含了几个连续的组卷积,这个块在数学上可以写成结构化稀疏卷积核的乘积,每个结构化稀疏卷积核都对应着一个组卷积。我们介绍了互补条件和平衡条件保证我们的结果矩阵是密集的,同时在模型尺寸、计算复杂度和分类精度三个方面取得了一个平衡。

2. Related Work

通过从头开始训练或者近似预训练好的模型,可以设计高效的模型。我们把它们分为低精度卷积核、稀疏卷积核、低秩卷积核、稀疏卷积核的产物、低秩卷积核的产物。

低精度卷积核:量化、二值化、三值化、权重共享;
稀疏卷积核:非结构化稀疏卷积核和结构化稀疏卷积核,通常来说结构化稀疏卷积核对硬件加速和存储是更有利的;
低秩卷积核:使用 3x3 的卷积核代替 5x5 的卷积核,可以减少空间域上的秩,通道剪枝和卷积核剪枝都属于这个类别;
低秩卷积核的组合:例如 1x3 和 3x1 的卷积核来近似一个 3x3 的卷积核;
稀疏卷积核的组合:例如IGCV1中的交错组卷积;

3. Our Approach

在这里插入图片描述
3.1 A Review of IGC、Xception and Deep Roots

我们展示了目前的结构设计算法:Xception、deep roots和交错组卷积(IGCV1),通过多个可能的稀疏矩阵的连乘来组成一个密集的卷积矩阵:
在这里插入图片描述

交错组卷积:交错组卷积块是由第一次组卷积和第二次组卷积构成,与其对应的卷积核矩阵 W1 和 W2 都是 对角稀疏:
在这里插入图片描述
在IGCV2中通过实验得知M=2时网络精度最高,所以在第一次组卷积中是将C个通道分为L=C/2个组,每个组有M=2个通道,即第一个组卷积中每个组内的权重矩阵是 2 x (2S) 维度的;第二个组卷积是分了2组,每个组有 C/2 个通道,每个分组内的矩阵是 C/2 x C/2维度的。

Xception:Xception块是 1x1 的卷积层后面紧跟一个 channel-wise 的卷积层。它指出两个卷积层之间的先后顺序没有影响。为了方便讨论,我们将 1x1 的卷积层放在第二个卷积的位置。

复杂度:计算复杂度与两个矩阵中非零元素的个数有关,像等式(3)中的稀疏块矩阵是存储友好的,存储成本和计算复杂度是一个量级的。
在这里插入图片描述
3.2 交错结构化稀疏卷积

我们的方法就是基于上面的观察:

  1. 等式(3)中的对角线位置的矩阵和 Xception中 1x1 的卷积核都是密集的,它可以由稀疏矩阵组成,这可以进一步消除冗余、节省存储和时间成本;
  2. 这样一个进程可以重复多次;

由此我们提出交错结构化稀疏卷积IGCV2,可以用数学公式描述如下:
在这里插入图片描述
Pl是混淆矩阵,和IGCV1中相同,将组卷积过后的通道重新排序,Wl是稀疏块矩阵,如等式(3)中给出的那样,它与第l个组卷积对应,在我们的工作中同一个组卷积层每个分支的通道数是相同的,用Kl表示,这样方便设计。

构建一个密集的卷积核矩阵:我们介绍了下面的互补条件,它是从IGCV1中泛化而来的,作为一个构建L个组卷积使得结果卷积核矩阵是密集的。

Condition 1(互补条件):对于任意的m,上面的等式(5)都可以分为两个部分,每个部分都对应一个组卷积。如果在第一个组卷积中相同分支的通道在第二个组卷积中位于不同的分支,那么我们就说这两个组卷积是互补的。
在这里插入图片描述

交错结构稀疏卷积块在满足互补条件时结果矩阵就是密集的,证据有两点:

  1. 对于一个组卷积,每个分支的输入和输出之间是全连接的(因为这个地方做的是标准卷积);
  2. 对于两个互补的组卷积来说,从第二个组卷积的分支输出的通道和相关的输入通道是全连接的,而其相关输入来自第一个组卷积中不同分支的输出,因此第二个组卷积的任何一个输出都和所有的输出是连接的,也就是说IGCV2 kernel是密集的。

我们来思考以下IGCV1到IGCV2的灵感,IGCV1中第二个组卷积层只有两个分支,因此每个分支内做的标准卷积计算量很大,我们思考在这个地方做进一步分解,即对IGCV1中第二个组卷积层中每个分支内的标准卷积分解为几个稀疏卷积核的组合,就如下图所示:
在这里插入图片描述
后来我们发现上面这种形式和下面的形式是等价的:
在这里插入图片描述
由此即引出了IGCV2的设计核心,不再是用两个组卷积构建块,而是采用多个组卷积构建块,由于第二个组卷积的分支树不再是2了,而是一个比2大多的数,这就导致了每个分支的标准卷积计算量减小了。

接下来要重点思考以下每个组卷积的总通道数、分支数、每个分支内的通道数是多少?我们用{K1,K2,…,KL}来代表每个组卷积层中每个分支内的通道数:

  • 经过第一个组卷积层之后,一个输入通道和K1个输出通道是相连的;
  • C(l-1)代表的是由第l-1个组卷积后输出的总通道数,互补条件表明第l次组卷积之后每个输入通道和C(l-1)Kl个输出通道相连;
  • 最后,一个输入通道经过L次组卷积过后,它和 K1 x K2 x…x KL 个通道相连,如果这个时候第L层组卷积的通道数刚好为 CL = K1 x K2 x…x KL ,那么我们就得到密集矩阵,最后规定L个组卷积层每层的总通道数都为C
    在这里插入图片描述
    什么时候参数量最小?

我们进一步分析了L个组卷积层构建的块什么情况下参数量最小?正如Figure 5所示,满足互补条件时参数量最下。至于为什么第一层的参数量为 CS(K1)、第l层的参数量为 C(Kl)?我们假设第l层(l>1)的分了gl个组,每个组内的通道数为 Kl,那么第l层的参数量 (gl)x(kl)**2=C(Kl),
同理第1层的参数量为 CS(K1)。
在这里插入图片描述在这里插入图片描述
其中等式(11)称为平衡条件,当且仅当此条件下,参数量到达最小。

Examples

将通道域和空间域分开做卷积来构建IGCV块,第一次组卷积是一种极端情况下的组卷积——channel-wise 的 3x3 卷积,后面跟着多个 1x1 的组卷积。这可以看作是将 Xception中 1x1 的标准卷积分解为 多组1x1的组卷积。在这种情况下,平衡条件变为:
在这里插入图片描述
在这种情况下参数量最小。在同样的参数量下,满足平衡条件的IGCV2块往往会有最大的宽度和优越的性能(最好或者接近最好)。

3.3 Discussions

Non-structured sparse kernels:这里提出一个可能的方案,用非结构化稀疏卷积核替代组卷积的作用,引入密集约束和稀疏约束。这可能会进一步提高性能表现,但是会导致两个缺点:优化很难且非结构化稀疏卷积核对存储不友好。

Complementary condition:互补条件是导致卷积核矩阵为密集矩阵的充分条件,但是应该指出这不是必要条件。未来的工作要更进一步的稀疏连接关系,这有可能会使得结果更好。互补条件是设计组卷积的有效指导建议。

“Sparse matrix multiplication and low-rank matrix mutiplication”:低秩矩阵乘法和分解已经广泛应用于矩阵分析,并且用于网络压缩和网络结构设计。未来的工作包含将低秩和稀疏矩阵结合在一起压缩卷积网络。

4. Experiment

4.1 Datasets and Training Settings

分别在 CIFAR 和 Tiny ImageNet 数据集上进行实验,具体细节:

  • 使用 带有牛顿动量的SGD 更新网络;
  • 初始学习率为0.1,在 200、300、350 epoches时给学习率乘上因子0.1;
  • 权重衰减率为0.0001,动量为0.9;

4.2 Empirical Analysis

互补条件

我们在没有下采样的8层网络(第一层为标准卷积层,6个中间层外加最后一层全连接层)上研究了互补条件是如何影响网络表现的。我们的IGCV2构建块是由L个组卷积层构成:一个channel-wise的 3x3 卷积层,(L-1)个 1x1 的组卷积层 ,每个分支都包含了K个通道。Figure 2显示了在同样的参数量下,不同的K和L对应的网络精度。
在这里插入图片描述在相同的参数量下,许多IGCV2块会都会得到密集矩阵,但是满足互补条件的IGCV2块的网络宽度更宽。Figure 2中红色的柱状图最接近互补条件,蓝色的柱状图展示了不满足互补条件的情况(有大量冗余),从图中我们可以看出来当L固定时红色柱状图的性能是最接近最优结果的,同时我们观察到(b)中红色柱状图的性能比(a)和(c)的性能都好。

另外,我们观察下网络的稀疏程度是如何影响性能的,当L固定时,K越小卷积核越稀疏,卷积核越密集性能越好,在Fugure 2中(a)图,K=8 时的网络性能比 K=12时更好,原因可能在于K=8时的网络更宽。

L的影响
在这里插入图片描述
我们继续来研究在相同的参数量下,组卷积的层数L是如何在CIFAR-100数据集上影响网络性能的?Figure 3展示了准确率、网络宽度、紧密程度如何随着L的增加而变化的,组卷积中分支的通道数满足互补条件和平衡条件。

更深更宽的网络

我们设计实验来探索当网络变得更深更宽时性能如何变化?研究中第一层为 channel-wise 的 3x3 卷积层,后面跟着 L-1 个 1x1 的卷积层。
在这里插入图片描述我们在table1中对IGCV2做实验,Cx表示网络宽度C为x:

  1. 变得更宽:我们设置B=6,总的深度D=20,网络宽度的变化区间为{112,136,160,192,256};
  2. 变得更深:我们将网络宽度设置为64,网络深度的变化区间为{38,50,62,74,98};

实验结果如Figure 4中的(a)和(b)所示,我们可以看出来网络宽度比深度更有益处。

4.3 Comparison With Xception

Varying the width
在这里插入图片描述Varying the depth
在这里插入图片描述
网络深度从8-20-26,在我们的网络中把Xception和IGCV2的宽度分别设置为35和64。

4.4 Comparison With IGC

Varying the width and depth
在这里插入图片描述4.5 Performance Comprarison to Small Models
在这里插入图片描述

5. Comparison to MobileNet on ImageNet

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值