APP下载

基于特征图自注意力机制的神经网络剪枝算法

2021-01-16杨火祥梁永生

深圳信息职业技术学院学报 2020年6期
关键词:剪枝滤波器注意力

杨火祥,梁永生

(1. 深圳大学电子与信息工程学院,广东 深圳 518060;2. 哈尔滨工业大学(深圳)电子与信息工程学院,广东 深圳 518055)

1 引言

尽管卷积神经网络(Convolutional Neural Network, CNN)在许多计算机视觉领域取得了巨大的成功,在其不断发展的过程中,卷积神经网络模型的计算量和参数量也随之增加,这为网络模型在计算力资源或者存储资源受限设备上的部署带来了巨大挑战,如手机、可穿戴式设备等。近些年来,为解决网络模型参数量和计算量过大的问题,神经网络的压缩与加速吸引了很多学者的关注。

神经网络压缩主要可以分为以下四类:权重低秩分解、网络剪枝、参数量化、知识蒸馏。其中,网络剪枝以其操作简单、实施高效等优势获得了广泛的应用。在网络剪枝中,又主要分为基于权重的剪枝和基于特征图的剪枝两大类方法。基于权重的剪枝方法是一类数据独立的方法,这类方法不依赖于数据集的分布,在不同网络上拥有较好的泛化能献[5]将权重梯度的范数看成连接敏感度的考查指小的滤波器越不重要,应该首先被裁剪。文献[2]通过计算所有滤波器的几何中值,根据几何中值的特点,靠近几何中值的滤波器的信息可以用剩下的滤波器表示,即滤波器是冗余的,可以被裁剪掉。文献[3]对批归一化(Batch Normalization, BN)层参数稀疏化处理,由于BN层与滤波器权重一一对应,对BN层的稀疏化处理就能选择滤波器了。文献[4]对滤波器进行谱聚类,聚成k组,然后根据滤波器的贡献进行排序,贡献小的滤波器会被剪枝。文标,定义了滤波器的敏感度。文献[6]通过对模型稀疏化得到稀疏的网络,通过BN层和卷积层的稀疏性联合剪枝。虽然基于权重的滤波器剪枝方法能够适用于大部分网络,但由于缺乏数据先验信息与数据标签的指导,基于权重的剪枝方法往往表现出次优的剪枝性能并且难以在所有数据集上都实施高效的网络压缩。相反,基于特征图的方法充分挖掘数据的信息分布,根据数据的分布情况来调整实际的剪枝策略,避免了由于数据集的变换而导致的剪枝策略失效问题。

剪枝方法的目的是剪掉网络中不重要的滤波器,基于特征图的剪枝方法不是直接评估滤波器的重要性,而是设计一个特征图重要性的评估函数。特征图是由对应的滤波器经过矩阵运算生成,因此特征图的重要性与生成该特征图的滤波器的重要性具有正相关性,删除不重要的特征图等效于剪枝冗余的滤波器。

这类方法利用训练的数据集来决定需要剪枝的滤波器。文献[7]通过下层的特征图的统计信息指导当前层的滤波器选择。文献[8]采样不同样本的特征图,通过最小化重构误差的方式,同时利用滤波器空间和特征图空间中的冗余来进行压缩。文献[9]采样特征图上的点,利用采样到的点通过最小化重构误差的方法找到合适的滤波器,并且利用采样的点来调整保留的滤波器的权重。文献[10]利用主成分分析(PCA)确定特征图应保留的能量比例并剪枝次要的滤波器。文献[11]将子空间聚类应用于特征图,发掘特征图之间的相关信息,删除冗余的特征图从而剪枝对应的滤波器。在现有的基于特征图的剪枝方法中,特征的所有信息被用来评估特征图的重要性。然而,当特征图中背景或噪声占主导地位时,用现有方法分析这些特征图时会影响特征图重要性的判断,进而影响网络剪枝的效率。

针对以上问题,提出一种基于特征图自注意力机制的剪枝算法。利用同层特征图之间的相互关系,将自注意力机制引入到特征图中,得到该层的注意区域。在特征图上计算注意区域的激活能量,有效避免背景及噪声的干扰。

2 基于特征图的自注意力机制

在认知神经学中,注意力机制是人类不可或缺的复杂认知功能。在注意力机制的支配下人们可以分配更多的注意力在感兴趣的信息上,忽视不重要的信息。注意力机制可以快速提取稀疏数据的重要特征,因而被广泛用于自然语言处理任务和图像识别等任务上。自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性。

本研究将自注意力机制应用在特征图上发掘同层特征图的注意区域。思路的动机源于以下实验发现。图1显示了一张图像经过ResNet-50的第5个卷积层并经过相应的BN层和激活层之后的生成特征图。

图1 给定图像及其在网络同一网络层下的特征图

显然,注意力集中在物体上,将物体所在区域称为注意区域。由图1可以看出:

(1)针对同层的所有特征图,特征图中注意区域虽然相对原图有一定的偏移,但不同特征图上注意区域位置类似(所有特征图上气球的位置大致相同);

(2)不同特征图注意区域的激活值(像素值)有很大差异,整体而言,注意区域激活值较大;

(3)红色矩形里的特征图信息主要集中在背景区域,直接分析这些特征图会影响网络的预测精度。

注意区域的信息包含了特征图的有用信息,无论是采用重构最小化误差还是对信息建模分析,仅研究注意区域的信息分布可以避免大量无用背景信息的干扰,有利于获得更高效神经网络压缩。

3 基于特征图的神经网络剪枝

3.1 符号说明

3.2 算法表达

如文献[12]中报道,基于权重的剪枝算法忽略了数据和标签的分布,可能导致剪枝效率低下,剪枝后的模型精度较差。特征图是输入图像在网络传播中,经过权重的矩阵运算的产物,特征图的重要性可以表示为一种滤波器属性,且滤波器重要程度与其生成的特征图重要程度正相关。考虑到数据的分布,基于特征图的剪枝方法对特征图进行评估,能充分挖掘数据的先验信息。因此,基于特征图的重要性评估,公式(3)可以转变为如下:

4 基于特征图自注意机制的剪枝算法

采用基于特征图的剪枝方案,为了避免噪声和背景的影响,评估特征图重要性时候只对特征图注意区域进行分析。通过比较每个特征图在注意区域的激活能量,对特征图重要性排序,删除激活能量较小的特征图。具体可以表示成公式:

公式(5)表示的是一幅图像生成特征图的激活能量。将注意区域激活能量作为评判尺度,来判断整个数据集上特征图通道是否重要,前提是激活能量分布在整个数据集上是鲁棒的。幸运地,通过大量的实验与观察,发现激活能量分布满足以上要求。如图2所示的每个子图表示VGG16网络某一层的特征图激活能量分布,x轴表示特征图所在的通道,y轴表示采样图像的数量。图像中颜色对应特征图平均激活能量的大小,颜色差异越小意味着特征图平均激活能量越接近。

图2 不同样本数特征图的平均激活能量分布

由图2可以看出,由少量样本生成的特征图在同一通道上的平均激活能量与更多样本对应的平均激活能量几乎保持不变(图片中每列的颜色几乎不变)。只需要少量样本就能有效估计出整个数据集在每层特征图通道上的平均激活能量。在此基础上,定义每个特征图上的激活能量期望为:

g从数据集中采样样本的数量,因此公式(4)可以重新描述为:

根据以上分析,提出的剪枝算法的工作框架图如图3。

图3 基于特征图自注意力机制的神经网络剪枝框架图

工作流程如下:对某一层卷积,每一个特征图由对应的滤波器经过运算生成。基于特征图自注意力机制的滤波器选择模块,通过公式(5)计算每个特征图的激活能量,对多个样本,通过公式(6)计算每个通道上特征图的激活能量期望。对这些激活能量期望值排序,删除较小的个值对应的特征图通道,同时剪枝对应的滤波器。在剪枝滤波器后,为了使模型恢复原有的精度,需要对模型微调。

5 实验分析

5.1 实验设置

评价尺度和数据集:为评估本算法的性能,我们采用广泛使用的压缩评估尺度,即参数量(Parameters)和浮点运算量(Float Points Operations, FLOPS),并且在图像分类任务上与现有流行的方法进行比较。实验中使用的基准数据集为CIFAR-10和ImageNet。在CIFAR-10数据集上,对比Top-1准确率以及剪枝率(Pruning ratio, PR),在ImageNet数据集上,出Top-1和PR外,还需要比较Top-5准确率。

基准网络:为了验证算法在不同网络上减少模型复杂度的有效性。我们在不同的网络结构上对算法进行评测,包括单分支结构(VGGNet[13]),多分支结构(ResNet[14]和DenseNet[15])。使用不同类型的基准网络测试算法,使算法评估更系统、更准确。

实验环境及参数配置:本文所有的实验都是在Pytorch框架下,使用SGD优化策略对神经网络进行优化。数据增广采用和Pytorch官方例子一致的策略。在CIFAR-10数据集上,剪枝后微调网络设置动量为0.9,Batch设置为256,学习率初始设置为0.1,每50代降为原学习率的0.1倍,总共微调150代。在ImageNet数据集上,剪枝后微调90代,初始学习率也设为0.1,每30代下降一次学习率,调整为原来的0.1倍,SGD中的权重衰减参数设置为1e-4。

5.2 实验结果

在CIFAR-10数据集上的实验结果:为了验证本文算法的通用性和有效性,对三种流行的网络结构剪枝分析,包括单枝结构的VGG-16网络,多枝结构的ResNet-56/110和DenseNet-40网络。与现有方法进行公平的对比,从理论和经验上证明了算法的有效性。

单枝结构:为验证算法在单枝结构网络上的剪枝效率,对VGG-16网络进行剪枝实验分析,实验结果如表1所示。

表1 VGG-16在CIFAR-10上的剪枝结果

实验对比了一些不同的剪枝方法,包括基于权重的剪枝方法:L1和FPGM。这两种方法在剪枝率较低时有不错的剪枝性能,分类准确率下降0.5%左右。但是由于缺少数据集的先验信息指导,剪枝性能不如本文提出的剪枝方法。我们的方法在更高的剪枝率下准确率不仅没有下降,甚至有所上升。同时实验也对比了一些基于特征图的剪枝方法,如Hrank。由于Hrank利用了数据的先验信息以及特征图的分布信息,在较高的压缩率下依然保有较好的分类准确率。但由于会受到图像中背景和噪声的干扰,剪枝性能仍然不如该方法。该方法剪枝后的模型计算量仅为Hrank剪枝模型计算量的70%,却达到了更高的分类准确率。同时,对比了一些自适应判断滤波器重要性的方法,我们的方法在更多的计算量和参数量缩减下,达到了更高的分类准确率。

多枝结构:选取了三种流行的多枝结构网络作为基准网络:ResNet-56、ResNet-110和DenseNet-40。对于ResNet-56/110,在多枝连接处,特征图通过多个分支累加获得,因此采用联合剪枝多个分支的方式,每个分支裁剪掉相同的特征图通道。对于DenseNet-40,在多枝连接处,通过级联拼接的方式获得特征图,为了简便起见,当卷积层生成的特征图具有相同的分辨率时,实验设置成相同的剪枝率。经过上述处理后,可以像剪枝单枝结构一样处理多枝网络,并保持多枝之间的信息平衡。具体实验结果如表2所示。

在以ResNet-56/110作为基准网络的实验中,该算法在剪枝后的模型在准确度上甚至超过了原模型,如ResNet-56在减少28%FLOPs的情况下准确率提升了0.89%,ResNet-110在减少44%FLOPs的情况下准确率提升了0.92%。而其他基于权重或者基于特征图的剪枝方法剪枝后的模型准确度有所下降。不仅如此,在三种基准网络的剪枝结果上,该方法都能实现在更多的剪枝率下实现更好的分类准确率。说明了该算法同样适用于多枝结构,也能获得较好的压缩效率。

表2 多枝结构网络在CIFAR-10上的剪枝结果

?

在ImageNet数据集上的实验结果:为了验证本算法在不同数据集上的普适性,在更富有挑战的ImageNet数据集上,以ResNet-50为基准网络进行剪枝实验,同时对比大量的现有剪枝方法。实验结果如表3所示。整体而言,方法剪枝效率优于所有其他对比的方法。我们测试了三种剪枝率,在低剪枝率下,在FLOPs和参数量分别减少44.0%和43.8%的情况下,该方法获得了75.60%的Top-1准确率和92.60%的Top-5准确率。所提方法在FLOPs和参数量缩减方面显示出更多的优势,并且性能显著优于SSS、CP、SFP和HRank。在高剪枝率下,与ThiNet、GAL-1Joint和HRank相比,在更大的剪枝率下(76.7%的Flops和68.6%的参数缩减),该方法压缩更有效(72.19%的Top-1准确率和90.68%的Top-5准确率),在Top-1分类准确率上至少优于对比方法2%。此外,FPGM方法的剪枝性能与该方法接近,而在CIFAR-10上,我们的方法显著优于FPGM。这说明FPGM更加适用于ImageNet数据集,同时也再次验证了基于权重的剪枝方法不能有效地利用数据的先验信息,很难获得在所有数据集上的高效性。综上所述,该方法同样适用于复杂的数据集,且相较于其他方法有较为明显的优势。

表3 ResNet-50在ImageNet上的剪枝结果

6 结语

本文提出了一种基于特征图自注意力机制的滤波器剪枝方法,该方法通过特征图的自注意力机制确定每层特征图的注意区域,计算特征图在注意区域的激活能量来确定对应滤波器的重要性。通过实验观察,证明了少量数据在网络传播中生成的特征图的激活能量分布能代表整个数据集相应的激活能量分布。激活能量小的特征图重要性低,应该先被删除,同时剪枝生成这些特征图的滤波器,保留激活能量大的特征图。最后,在各种流行的网络结构中证明了算法的有效性。例如,对于VGG-16在CIFAR-10上的分类任务,在降低58.1%网络计算量的情况下,分类准确率甚至从93.96%上升到94.02%。对于ResNet-50在ImageNet的分类任务,在减少45%网络计算量时只有0.55%的精度损失。在显著减少网络参数量和计算量的情况下,模型依然维持较高的分类准确率。未来希望可以进一步挖掘注意力机制与网络剪枝之间的关系。

猜你喜欢

剪枝滤波器注意力
人到晚年宜“剪枝”
让注意力“飞”回来
基于YOLOv4-Tiny模型剪枝算法
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
“扬眼”APP:让注意力“变现”
剪枝
A Beautiful Way Of Looking At Things
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现