ACNet:Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks

  • 英文名称:ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks
  • 中文名称: 通过非对称卷积块增强CNN的核骨架
  • 论文会议:ICCV2019
  • 论文地址:https://arxiv.org/abs/1908.03930v1

一、摘要

由于在给定的应用环境中设计合适的卷积神经网络(CNN)结构需要大量的人工工作大量的GPU资源消耗,研究界正在寻找网络结构无关的CNN结构,这种结构可以很容易地插入到多个成熟的体系结构中,以提高我们实际应用程序的性能。我们提出了非对称卷积块(ACB)作为CNN的构造块,它使用一维非对称卷积核来增强方形卷积核,我们用ACBs代替标准的方形卷积核来构造一个非堆成卷积网络ACNet,该网络可以训练到更高的精度。训练后,我们等价地将ACNet转换为相同的原始架构,因此将不需要额外的计算。实验证明,ACNet可以CIFAR和ImageNet上显著提高各种经典模型的性能。

二、研究背景

卷积神经网络在视觉理解方面取得了巨大的成功,这使得其可以应用在安全系统,移动电话,汽车等各种应用中。由于前端设备通常受限于计算资源,就要求网络在保证精度的条件下要尽可能轻量。另一方面,随着CNN架构设计的相关研究增多,模型的性能得到了显著改善,但当现有的模型不能满足我们的特定需求时,要定制一种新的架构需要花费极高的成本。最近,研究者们正在寻求与架构无关的新型CNN结构,例如SE块和准六边形内核,它们可以直接和各种网络结构结合使用,以提高它们的性能。

本文提出了非对称卷积块(ACB),它是用三个并行的 d×dd \times d , 1×d1 \times d , 和 d×1d \times 1 核来代替原始的 d×dd \times d核,如下图所示:

给定一个网络,我们通过将每个方形卷积核替换为ACB模块并训练网络到收敛。之后我们将每个ACB中非对称核的权值加到方形核的对应位置,将ACNet转换为和原始网络等效的结构。ACNet可以提高基准模型的性能,在CIFAR和ImageNet上优势明显。更好的是,ACNet引入了0参数,因此无需仔细调参就能将其与不同的CNN结构结合起来,并且易于在主流CNN框架上实现以及不需要额外的推理时间开销。

三、相关工作

3.1 非对称卷积

先前的一些工作表明,可以将标准的d×dd \times d卷积分解为 1×d1 \times d , 和 d×1d \times 1 卷积,以减少参数量。其背后的理论相当简单:如果二维卷积核的秩为1,则运算可等价地转换为一系列一维卷积。然而,由于深度网络中下学习到的核具有分布特征值,其内在秩比实际中的高,因此直接将变换应用于核会导致显著的信息损失。Jaderberg等人通过最小化重构误差,成功学习了水平核和垂直核。Jin等人应用结构约束使二维卷积可分离,在获得相当精度的条件下时间加速了2倍。另一方面,非堆成卷积也被广泛的用来做网络结构设计,例如Google的Inception v3网络结构中,7*7卷积被1*7卷积和7*1卷积代替,可以处理更多,更丰富的空间特征。

3.2 CNN架构中的中性结构

我们不打算修改CNN架构,而是使用一些与架构无关的结构来增强现有的模型。因此,我们的方法对任何网络都是有效的,可以做到即插即用,应用到CNN中的任何一个模块。例如,SE块可以附加到卷积层后,使用学习到的权重重新缩放特征图通道数,从而在合理的附加参数量和计算代价下显著提高精度。相比之下,ACNet在训练中不会引入任何超参数,并且在推理过程中不需要额外的参数和计算。因此,在实际应用中,开发人员可以使用ACNet来增强各种模型,而无需进行详细的参数调整,并且最终用户可以享受性能提升而又不会减慢推理速度

四、实现方法

4.1 原理公式

对于D个大小为H×WH \times W的卷积核(F),输入CC 通道的特征图(M),对于这个层的第j个卷积核,相应的输出特征映射通道是:

其中*是二维卷积算子。M:,:,kM_{: , : , k} 是特征图的第 kk 个通道的特征图,F:,:,k(j)F^{(j)}_{: , : , k}代表第k个通道的卷积核。在现代CNN体系结构中,批量归一化(BN)被广泛使用,以减少过度拟合,加快训练过程。通常情况下,批量归一化层之后通常会接一个线性变化,以增强表示能力。和公式1相比,输入变成:

其中,μj{\mu _{\rm{j}}}σj{\sigma _j} 是批量归一化的通道平均值和标准差,γj{\gamma _j}βj{\beta _j}是缩放系数和偏移量。

4.2 利用卷积的可加性

我们试图以不对称卷积可以等效地融合到标准方形核层中的方式来使用,这样就不会引入额外的推理时间计算负担。我们注意到卷积的一个有用性质:如果几个大小兼容的卷积核在相同的输入上以相同的步幅操作以产生相同分辨率的输出,并且它们的输出被求和,我们可以将这些核在相应的位置相加,从而得到一个产生相同输出的等效核。也就是说,二维卷积的可加性可以成立,即使核大小不同:

其中 II 是一个矩阵,K(1)K^{(1)}K(1)K^{(1)} 是具有兼容尺寸的两个2D核,\oplus 在对应位置的求和操作。注意 II 可能会被裁剪或者执行Padding操作。这里,“兼容”意味着我们可以把较小的内核“修补”到较大的内核上。

例如,3x1和1x3是和3x3兼容的。通过研究滑动窗口形式的卷积计算,可以很容易地验证这一点,如下图所示:

4.3 ACB不增加任何推理时间开销

3x3卷积在现代CNN体系结构中大量使用。在给定的体系结构下,我们通过简单地将每个3x3卷积层替换为ACB来构建ACNet,该ACB模块包含三个并行层,内核大小分别为3x3,1x3,和3x1。和标准CNN的常规做法类似,在三层中的每一层之后都进行批量归一化,这被成为分子,并将三个分支的输出综合作为ACB的输出。

我们可以使用与原始模型相同的配置来训练ACNet,而无需调整任何额外的超参数,训练完成后,我们尝试将每个ACB转换为产生相同输出的标准卷积层这样,与经过常规训练的对等方相比,我们可以获得不需要任何额外计算的功能更强大的网络。该转换通过两个步骤完成,即BN融合和分支融合。

BN融合: 卷积的同质性使得后续的BN和线性变换可以等价的融合到具有附加偏置的卷积层中,即对于每一个分支,我们都减去其均值除以方差,然后再进行融合。

分支融合 我们通过在平方核的相应位置加入非对称核,将三个BN融合分支合并成标准卷积层。在实际应用中,这种转换是通过建立一个原始结构的网络并使用融合的权值进行初始化来实现的,这样我们就可以在与原始结构相同的计算预算下产生与ACNet相同的输出。

上图用公式表示:

值得注意的是,尽管可以将ACB等价地转换为标准层,但是等效值仅在推理时才成立,因为训练动态是不同的,从而导致不同的性能。训练过程的不等价性是由于内核权重的随机初始化,以及由它们参与的不同计算流得出的梯度。

五、实验

5.1 ACB性能的提升

在CIFAR10和CIFAR100数据集,ImageNet数据集进行对比测试,结果如下所示:

从Table1和Table2可以看到,所有模型的性能都有所提升,说明了ACB可以与各种结构相结合,提升原来模型的性能。

Table3展示了ImageNet上训练的结果,Top1精度分别提升了1.52,0.78,1.18。

因此在实际应用中可以使用ACnet来减少推理时间、能耗和存储空间,对于一些计算资源受限或者模型大小受限 的情况也可以使用ACnet来大幅提升精度,对于用户来说都没有增加额外的代价。

5.2 ACB的消融实验

虽然已经证实了ACNet的有效性,我们仍然希望得到一定的解释,因此作者通过消融实验来研究ACNet的有效性。

主要聚焦以下3种设计的作用:

  • 水平核
  • 垂直核
  • 每个分支的批归一化

需要注意的是,如果删除了每个分支中的BN,那么会对ACB的整个输出进行批归一化,也就是将BN求和从前求和变为后求和。

下面基于ImageNet训练的AlexNet和ResNet-18结构上开展消融实验

从Table 4中可以看出,去掉3种中的任何一种最终的模型精度都会有一定的降低。虽然垂直卷积和水平卷积都对性能有提升,但是但两者仍存在一些区别。比如训练过程中往往会进行随机水平变换,而不会进行随机垂直变换。如下图所示,进行垂直变换的图像,方框核将产生无意义输出,而水平核将输出和之前相同的结果(看对应位置的卷积输出结果)。

从Table 4中数据,当对输入进行不同角度的变换后进行测试时,模型的精度严重下降。但是仍能看出:对于水平翻转输入,水平核的作用要高于垂直核。证明了ACB尤其是内部的水平核,可以有效的提升模型对于旋转变形的鲁棒性。

5.3 卷积不同位置的重要性

为了观察卷积中不同位置的重要性,作者通过随机将权重置零的方式来验证。

几种随机置零方式:

  • corner:卷积核的四个角中随机选择权重将其置零
  • skeleton:对骨架中的权重进行随机置零
  • global:不区分corner还是skeleton而是卷积核中每一权重都有同样被选的概率

下面是实验是在CIFAR-10数据集上进行的,通过观察模型准确率的下降说明卷积不同位置的重要程度。(图中的sparsity ratio计算方式是去掉的权重数/卷积核总权重数)

从上图中可以看到,对于正常的卷积核,骨架部分(中心十字)更重要,而去除四角部分(蓝色线)带来的损失更小。

通过计算每个位置的平均相对重要程度,也可以发现中心位置更重要。下图c就把垂直核和水平核堆叠到方形核的右下角。

总结一下:

  • 3*3卷积核的骨架部分比边角部分更加重要
  • ACB可以增强卷积核的骨架部分,从而提高性能
  • 和常规的ACB相比,将水平和垂直核添加到边界会降低模型的性能
  • 因此,我们将ACNet的有效性部分归因于它进一步增强卷积核骨架的能力。

六、总结

为了提高各种CNN架构的性能,我们提出了非对称卷积块(ACB),该算法将三个分别具有正方形,水平和垂直核的卷积分支的输出求和。我们通过使用ACB替换成熟体系结构中的方形核卷积层来构建非对称卷积网络(ACNet),并在训练后将其转换为原始网络结构。在CIFAR和ImageNet数据集上,通过在经典网络上使用ACNet评估我们的性能,取得了很好的结果。我们已经表明,ACNet可以以可观察的幅度增强模型对旋转失真的鲁棒性,尤其是显著增强方形卷积核的骨骼部分

【参考资料】

  1. https://arxiv.org/abs/1908.03930v1
  2. https://blog.csdn.net/qq_37151108/article/details/112173395
  3. https://blog.csdn.net/abc13526222160/article/details/103486589
  4. https://www.cnblogs.com/wyboooo/p/14465321.html
  5. 3*3卷积+1*3卷积+3*1卷积=白给的精度提升