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

作者:Xiaohan Ding ,Yuchen Guo, Guiguang Ding, Jungong Han

发表信息:IEEE International Conference on Computer Vision (2019)

 

一、问题动机

卷积神经网络在计算机视觉方面取得了巨大的成功,使得其可以用于各种应用,如可穿戴设备、安全系统、移动电话等。但是,由于这些前端设备通常在计算资源上有一定的限制,同时也需要实时推理,所以这就需要卷积神经网络在一定的计算资源限制下保持高精度。因此通过简单的增加训练参数和连接来实现网络模型的性能增强是不现实的。因此,我们需要考虑是否能够在不增加额外的推理时间消耗、内存占用以及资源消耗的情况下来提升网络模型的性能。

另一方面,由于目前对于卷积神经网络结构设计的研究获得了较大的进步,一些现成的模型的性能已经大大提升,但是它们并不能直接套用到我们的特定应用上。而由于我们在对特定的应用设计合适的卷积神经网络结构时,又通常需要耗费大量的人工工作或者GPU资源。因此,我们希望找出一种中性网络结构(architecture-neutral CNN structures,即与网络无关的结构),如SE blocks、andquasi-hexagonal kernels等,用来直接插入其他的成熟的网络结构,从而提升其性能以用于实际的应用中。

本文即提出一种中性网络结构:非对称卷积块(ACB ,Asymmetric Convolution Block),即将网络中原始的d x d卷积核替换为三个并行的d x d、1 x d、d x 1卷积核,不引入任何超参数、在推理过程中不需额外的参数和计算。通过使用ACB对原始网络的平方核进行替换,构造Asymmetric Convolutional Network(ACNet),从而解决上述问题。

(在网络训练结束后,可等价地将ACNet转换为相同的原始架构,因此将不需要额外的计算。)

 

二、解决思路:

1、对于一个尺寸为H x W,通道数为D的卷积核,以通道数为C的特征图作为输入,我们使用F∈RHxWxC表示卷积核,M∈RUxVxC表示输入,这是一个尺寸为UxV,通道数为C的特征图,O∈RRxTxD代表输出特征图。对于这个层的第j个卷积核,相应的输出特征图通道是:

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

*代表二维卷积操作,M:,:,k 是M的第k个通道的尺寸为UxV的特征图。F:,:,k (j) 表示F(j) 的第k个通道的尺寸为HxW的特征图。按照惯例,batch normalization层后通常跟一个线性尺度变换操作来增强表示能力。与上公式(1)相比,输入改为:

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

其中µj和σj是batch normalization的通道平均值和标准差,γj和βj是缩放系数和偏移量。

2、注意到卷积的一个有用的性质:如果几个大小兼容的二维核,在相同的输入上以相同的步幅操作,产生相同分辨率的输出,并且它们的输出被求和,那么我们可以将这些核在相应的位置相加,得到一个产生相同输出的等效核。也即,二维卷积的可加性可以成立,即使核大小不同:

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

这里,I是一个矩阵,K(1) 和K(2) 是两个尺寸兼容的2维核。⊕是在对应的位置进行相加。这里I有可能会被裁减或者填补。

这里的“兼容”,是指我们可以将较小的核“补”到较大的核上。

如3×1和1×3是和3×3兼容的。

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

3、我们主要将网络中原始的d x d卷积核替换为三个并行的d x d、1 x d、d x 1卷积核。这里主要讨论3 x 3卷积核。将其转化为3 x 3、1 x 3、3 x 1三个并行的卷积核后,在每个后面都进行batch normalization,然后将三个分支的输出作为ACB的综合输出。这里需要经过两个步骤:BN融合与分支融合。

(1)BN融合

卷积的同质性使得后续的BN和线性变换可以等价的融合到具有附加偏置的卷积层中。从公式(2)可以看出,对于每个分支,如果我们构造一个新的内核《ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks》再加上偏置《ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks》,便可以产生相同的输出。

(2)分支融合

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

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

三、方法亮点:

将3×3卷积替换为三个并行的3×3卷积+1×3卷积+3×1卷积,并且没有改变原有网络的结构,没有引入额外的超参数,没有推理的开销,只是做了相应的卷积层的替换,却将网络的性能提升了很多。

 

四、主要结果:

1、在CIFAR上的实验

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

2、在ImageNet上的实验

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

3、 Ablation studies

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

4、验证ACB增强了平方核的骨架信息(skeletons)

注:skeleton与corner

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

通过随机丢弃网络中3*3卷积核的skeleton或者corner或者随机全局丢弃(global),查看模型的准确率

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

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注