图像识别中的深度学习模型剪枝技术

2023-11-28 13:06林凡超黄福玉刘毅志
南京理工大学学报 2023年5期
关键词:剪枝集上卷积

张 玉,武 海,林凡超,黄福玉,刘毅志

(1.郑州师范学院 信息科学与技术学院,河南 郑州 450044;2.中国科学技术大学 信息科学技术学院,安徽 合肥 230026; 3.北京中科研究院,北京 100094;4.湖南科技大学 计算机科学与工程学院,湖南 湘潭 411201)

图像识别是计算机视觉的重要研究方向。在信息安全领域,图像识别扮演的角色越来越重要,但是,传统用于图像识别的方法,比如模板匹配[1]、边缘检测[2]以及人工设计特征提取器[3]等方法面临识别精度不够高、识别速度不够快等问题。

近年来,随着以深度学习为代表的人工智能技术的兴起,图像识别任务取得了长足的进展[4-8]。神经网络逐渐变深,模型结构逐渐复杂,带来了精度的提升。但是问题随之而来,模型参数量的增加导致训练好的模型很难在移动端部署与运行[9]。在信息安全领域中许多应用场景需要模型在移动端部署与运行,因此模型剪枝的技术应用而生。模型剪枝的相关工作可以从以下几个维度来划分。

从剪枝的内容上可以划分为基于权重的剪枝与基于卷积核的剪枝。基于权重的剪枝[10-12]主要是去除某些权重值,这样的剪枝是非结构化的。Han等[12]提出了一种模型剪枝的度量指标,即将权重小于阈值的参数去除。基于卷积核的剪枝[13-16]是去除某些卷积核,这种方式更为常用,这样剪枝后模型仍然是结构化的。例如,Li等[14]利用范数约束,将范数小的卷积核剪除。

从剪枝是否依据训练数据的角度,可以划分为数据依赖的剪枝方式与数据独立的剪枝方式。数据依赖的方式[17-21]主要是依据训练数据来决定哪些权重值或者卷积核需要裁减。Luo等[16]采用网络当中的下一层统计信息来指导模型剪枝。数据独立的方式[22-24]主要关注于权重值本身或者卷积核本身,不需要根据网络输出的特征图决定裁减位置。Li等[14]使用卷积核范数指导模型剪枝,不需要额外依赖数据集。

本文提出的剪枝策略属于基于卷积核的剪枝与数据依赖方式的剪枝。目前很多基于数据依赖的模型剪枝算法需要大量的训练数据来指导剪枝过程,这样的过程消耗大量的算力,计算时间也较长。而本文确定需要剪枝的卷积核只用到少量的数据,这主要基于实验中观察到的一个现象:特定卷积核输出的特征图的和值的期望比较稳定,输入图像的数量对此期望值影响不大。因此本文提出使用少量的图像输入剪枝前的模型中,将同一层卷积核输出的特征图的和值的期望进行大小排序,按照一定的剪枝率剪去较小期望值对应的卷积核。

本文在3个公开数据集CIFAR-10[25]、CIFAR-100[25]、ILSVRC-2012[26]上进行了图像识别分类实验,实验结果表明与其他模型剪枝算法相比,本文的剪枝方案在较高的参数量与每秒浮点运算次数(FLOPs)压缩率下,仍能保持较高的分类准确率。

1 基于特征图的和值期望的模型剪 枝算法

1.1 相关参数

假设网络模型有L层。本文用Ni与Ni+1来表示第i层卷积的输入与输出特征图的通道数,这就意味着第i层有Ni+1个卷积核。同时,用Fi,j来表示第i层的第j个卷积核。本文用Mi,j来表示Fi,j生成的特征图。将输入图像经过卷积核输出的特征图的和值的期望用Ei,j来表示,则Ei,j可以表示为

(1)

这里b代表批处理(batchsize)的大小,s代表输入网络的图像的数量为s倍的batchsize,也就是说Ei,j是根据全部输入图像所得的期望值。

1.2 模型剪枝原理

在进行了大量的试验后,本文注意到特定卷积核对应的输出特征图的和值的期望相对稳定,不同卷积核对应的和值的期望有时差别很大。图1展示了CIFAR-10图像输入VGG-16-BN[27]网络后第一层卷积输出的Ei,j值。从图中可以看到Ei,j对输入图像的数量s不敏感,也就是说用全部的测试集得到的Ei,j与用部分得到的Ei,j相差不大,网络当中其他卷积核也存在这样的规律,本文测试其他网络的卷积核也呈现相同的规律。正是基于这个现象启示本文用少量的图像来指导模型剪枝。图1说明,纵坐标代表输入不同倍数乘以batchsize的图像,横坐标代表输出的64个通道特征图求和后的期望值。可以看出,同一个卷积核,不同数量的输入图像对应的Ei,j接近(颜色相似),不同卷积核对应的Ei,j一般不同。

1.3 模型剪枝步骤

将图像I输入到训练好的剪枝前的模型当中,可以获得网络输出的特征图M。之后求出M和值的期望E,然后将期望值按照从小到大的顺序排序,并按照一定的剪枝比率按照从小到大的顺序裁剪与特征图对应的卷积核。本文认为Ei,j相对较小,其指示特征图所含有信息量相对较小,也就意味着与之对应的卷积核的重要程度相对较小,故本文优先裁减这样的卷积核。确定要裁剪的卷积核之后的训练过程与Hrankplus[28]相同,本文的核心工作在于确定所要裁减的卷积核。图2展示了本文的剪枝策略,同时伪代码也对模型剪枝流程进行了描述。

图1 剪枝原理

图2 模型剪枝示意图

图2说明,根据卷积核输出的特征图来计算Ei,j,并对Ei,j进行排序,裁减的卷积核为Ei,j值相对较小的卷积核,同层网络所裁减卷积核的数量主要依据此层网络卷积核的数量与剪枝率来确定。

本文采用少量的输入图像得到不同卷积核对应的Ei,j。本文将Ei,j从小到大依次排序,假定p为给定的剪枝率,那么这层卷积将依据Ei,j的值从小到大裁剪对应的卷积核。根据本文提出的剪枝策略进行剪枝,之后按照Hrankplus[28]的训练方式对剪枝后的模型进行训练与微调。需要指出的是由于本文所用的图像较少,而且求和的操作消耗的计算资源少并且所用时间短,这样本文就可以用很少的时间与算力确定哪些卷积核需要裁减。

算法1基于特征图的和值期望的模型剪枝算法

输入:输入图像I

输出:输出特征图Mi,j

1.根据式(1),利用Mi,j计算Ei,j

2.对同一层卷积的Ei进行排序

3.据给定p对每层卷积排序后的Ei对应卷积核进行剪枝

4.模型微调训练

2 实验与分析

2.1 数据集

图像识别中的图像分类任务常用来检验模型剪枝的效果。为了验证本文提出的模型剪枝的策略,本文在3个常用于图像分类任务的数据集CIFAR-10[25]、CIFAR-100[25]、ILSVRC-2012[26]进行了实验。同时本文也针对多个网络模型进行裁剪,例如VGG-16-BN[27]、ResNet-110[29]、DenseNet-40[30]、ResNet-56[29]、ResNet-50[29]。目前用于图像分类识别通用的数据集为CIFAR-10、CIFAR-100以及ILSVRC-2012。CIFAR数据集主要是来源于搜索引擎的图像。其中CIFAR-10由60 000张32*32的图像构成,数据集共有10个类,每类有6 000幅图像,数据集包括50 000幅训练图像和10 000幅测试图像。CIFAR-100有100个类,每个类包含600幅图像,其中500幅用于训练100幅用于测试。ILSVRC-2012是一个更大的数据集,主要用于图像分类、目标检测等计算机视觉任务比赛。ILSVRC-2012训练集包含1 281 167幅图像,验证集包含50 000幅图像,测试集包含100 000幅图像。

2.2 实现细节

在CIFAR-10以及CIFAR-100数据集上进行模型剪枝实验时,本文所用的设备是一台配备一张1080Ti显卡的Ubuntu服务器,这个服务器的CPU为Intel i7-9700K。由于ILSVRC-2012数据集较大,在ILSVRC-2012上进行试验时,本文采用4张1080Ti显卡。为了确定哪些卷积核需要裁减,本文针对不同的网络架构使用的不同数量的输入图像。在CIFAR-10、CIFAR-100进行试验时,本文设置的batchsize为256。为确定VGG-16-BN的待裁剪卷积核,本文使用了50倍batchsize的图像。为确定ResNet-56的待裁剪卷积核,本文使用了15倍batchsize的图像。为确定DenseNet-40的待裁剪卷积核,本文使用了15倍batchsize的图像。为确定ResNet-110的待裁剪卷积核,本文使用了10倍batchsize的图像。为确定ResNet-50的待裁剪卷积核,本文使用了15倍batchsize的图像。在对经过剪枝的模型进行微调训练时,在CIFAR-10以及CIFAR-100用到的batchsize为256,在ILSVRC-2012上的batchsize为384。同时,在进行剪枝后的模型进行微调训练时,CIFAR-10及CIFAR-100训练300个epoch,ILSVRC-2012训练90个epoch。对于模型剪枝后的微调及训练过程,本文的训练过程与Hrankplus[28]相同,参数量统计与每秒浮点运算次数(FLOPs)统计方法也与其相同。

2.3 实验分析

2.3.1 CIFAR-10数据集实验结果与分析

本文在CIFAR-10上对VGG-16-BN、ResNet-56、ResNet-110以及DenseNet-40进行了剪枝及微调训练,表1~表4分别给出了实验对比结果。同时为了对比本文的剪枝策略与Hrankplus的效果,本文设置了可比性高的多种剪枝率。其中,表格第一行为基准方法的结果,表格中其他方法均在基准方法的基础上进行剪枝,本文方法的结果用粗体标出。表格中括号内的百分比表示相应方法的FLOPS和参数量数值相比于基准方法的降低比率。

从表1中可以看出本文的方法在参数量压缩87.3%,FLOPs压缩78.6%的情况下,VGG-16-BN的分类精度为93.19%,相比未压缩的模型分类识别精度仅下降0.77%。同时从表1中可以看出,GAL-0.05[31]方法在较低压缩率(39.6%FLOPs和77.6%参数量)下能达到的最高识别精度为92.03%。而本文方法即使在最高压缩率(78.6%FLOPs和87.3%参数量)条件下精度依然能达到93.19%,比GAL-0.05高出1.16%。

表1 VGG-16-BN在CIFAR-10数据集上的 模型剪枝效果

从表2中可以看出本文的方法在参数量压缩42.8%,FLOPs压缩47.4%的情况下,ResNet-56模型的分类精度为93.76%,相比未压缩的模型分类识别精度反而提升0.5%,其中的原因可能在于CIFAR-10数据集较小,由此训练出的ResNet-56模型可能存在一定的过拟合,这样经过模型剪枝,在一定程度上缓解了过拟合问题,从而提高了分类识别精度。同时在表格2可以注意到针对ResNet-56中,在参数量压缩率为70%的时候,本文的Top-1精度比Hrankplus[28]低0.1%,这可能是由于较大的剪枝率导致网络的表达能力下降且精度容易波动。

从表3中可以看出本文的方法在参数量压缩68.3%,FLOPs压缩71.6%的情况下,ResNet-110模型的分类精度为93.31%,相比Hrankplus[28]同样的压缩率下模型分类识别精度提升0.08%。

从表4中可以看出本文的方法在参数量压缩56.5%,FLOPs压缩52.7%的情况下,DenseNet-40模型的分类精度为93.91%,与Hrankplus[28]相同剪枝率下的精度相同。

表2 ResNet-56在CIFAR-10数据集上的 模型剪枝效果

表3 ResNet-110在CIFAR-10数据集上的 模型剪枝效果

表4 DenseNet-40在CIFAR-10数据集上的 模型剪枝效果

图3以曲线和散点图的形式对CIFAR-100数据集上VGG-16、ResNet-56、ResNet-110和DenseNet-40四种模型的剪枝效果进行对比,其中红色曲线代表本文方法,横轴为剪枝后的FLOPs降低比率,纵轴为剪枝后的模型Top-1分类精度。由结果可见,本文方法相比于其他方法可以达到更好的剪枝率-性能平衡,在相同剪枝率下保持了更高的分类精度。

图3 剪枝效果对比图

2.3.2 CIFAR-100数据集实验结果与分析

在CIFAR-100数据集上,为了方便与相关工作进行对比,本文只对ResNet-56进行剪枝实验。本文训练的未剪枝的ResNet-56的分类精度为71.43%。从表5中可以看出FLOPs压缩28%的情况下,分类精度反而能够提升0.81%,这同样也说明在CIFAR-100上训练的剪枝前的ResNet-56存在一定的过拟合,经过模型剪枝后,分类识别精度获得了一定程度的提升。同时FLOPs压缩52.8%的情况下,分类精度只下降了0.96%。同时从表5中也可以看到当FLOPs压缩率为67.0%时,模型分类的精度会下降3.47%。与MIL[36]方法相比,本文方法在分类识别精度高于其2.1%时,模型FLOPs压缩率也同样高于其13.5%,这也验证了本文方法相比MIL[36]具有一定的优势。相比方法FPGM[13],本文在分类识别精度高于其0.81%时,FLOPs也相比FPGM[13]压缩率稍大。

表5 RestNet-56在CIFAR-100数据集上的 模型剪枝效果

2.3.3 ILSVRC-2012数据集实验结果与分析

在ILSVRC-2012数据集上,很多工作都针对ResNet-50进行模型剪枝,为了与这些已有的方法进行对比,本文同样在ResNet-50上进行了模型剪枝实验。为了直观的对比,本文采用了三组与Hrankplus[28]相同的压缩率。从表6中可以看出,本文的方法与Hrankplus[28]效果基本相当,在三组剪枝率设置下,Top-1和Top-5精度都互有高低。与Hrank[15]相比,Hrank[15]依据特征图的秩对低秩特征图进行裁剪,而本文方法根据特征图的和值期望对低期望值卷积核进行剪枝,不仅免去秩计算的复杂过程,同时可以提升剪枝后的分类性能。本文方法在与Hrank[15]相近的FLOPs剪枝率下,在三组设置中分别取得0.48%、2.25%和3.18%的Top-1精度提升,显示了本文方法在高剪枝率下的保持分类性能的能力。相比于SSS-32[33]、GDP-0.6[38]和GAL-1-joint[31]等方法,本文得到的减枝模型使用更少的FLOPs得到更高的Top-1和Top-5分类精度,在剪枝率与分类性能上取得全面的领先。

在3个数据集,5类不同模型的剪枝过程中,应用本文方法均取了与已有方法相当或更好的性能,这证明本文方法具有较好的泛化能力,可以在不同场景和模型中进行推广。

表6 ResNet-50在ILSVRC-2012数据集上的模型剪枝效果

3 结束语

为了使用少量的图像来指导图像识别中图像分类任务的模型剪枝,本文提出了基于网络输出特征图的和值期望确定卷积核裁减的方法。本文的方法基于实验中观察到的一个现象,即对于同一个卷积核,其输出特征图求和的期望值对输入图像的数量不敏感。利用这个规律,本文就可以用少量的图像确定需要裁减的卷积核。由于对输出特征图进行求和操作消耗较少的算力与计算时间,这样采用本文的方法能有效节约计算资源。将本文提出的方法应用在CIFAR-10、CIFAR-100、ILSVRC-2012数据集上对常用的模型VGG-16-BN、ResNet-56、ResNet-100、DenseNet-40、ResNet-50进行剪枝,实验证明本文提出的模型剪枝策略在VGG-16-BN上参数量压缩87.3%,FLOPs压缩78.6%,此模型在CIFAR-10上仍能达到93.19%的分类识别精度。本文模型剪枝策略在ResNet-110上参数量压缩68.3%,FLOPs压缩71.6%,此模型在CIFAR-10上仍能达到93.31%的分类识别精度。在CIFAR-100数据集上,本文剪枝策略在ResNet-56上FLOPs压缩67%,仍能达到67.96%的分类识别精度。在ILSVRC-2012数据集上,本文模型剪枝策略在ResNet-50上参数量压缩68.55%,FLOPs压缩76.77%,仍能达到Top-172.28%,Top-590.95%的分类识别精度。下一步的工作,本文将继续尝试使用更少的图像来指导模型剪枝,最大程度节约计算资源与时间。

猜你喜欢
剪枝集上卷积
人到晚年宜“剪枝”
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于YOLOv4-Tiny模型剪枝算法
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
复扇形指标集上的分布混沌
剪枝
一种基于卷积神经网络的性别识别方法