Model Pruning Based on Quantified Similarity of Feature Maps-基于特征图量化相似度的模型修剪

在这里插入图片描述
高精度的CNN模型往往具有巨大的参数,这些参数通常存储在高维张量中。 然而,很少有方法能够计算出存储在高维张量中的参数的冗余信息,这导致缺乏对CNN压缩的理论指导。本文提出了一种在三维张量中发现冗余信息的新理论,即特征映射的量化相似度(QSFM)。使用这个方法去剪枝卷积神经网络提升推理速度,我们的方法属于滤波器剪枝,它可以在没有特别的加速库下被使用。我们采用所提方法在不仅在传统的卷积神经网络,也在一些特别的神经网络上使用,例如深度可分离卷积网络。实验证明了QSFM可以有效的发现神经网络中的冗余信息。在没有微调操作的前提下,QSFM可以在仅仅损失一点精度的情况下(0.54%)对Resnet56和Cifar10进行显著的压缩(48.27%和57.90%的计算量和参数量的下降).QSFM也在微调的情况下对Resnet50,vgg16,mobilenetV2进行了压缩,表现出了极好的实验结果。

1.介绍

卷积神经网络在各种计算机视觉任务中成为了主导的内容,在图像分类,图像分割,目标检测和3D重建等领域取得了巨大的进展。可是需要大量数据和GPU算力的支持,此外越来越多的又深而又复杂的深度网络模型被提出,例如VGG,Googlenet,Resnet和Densenet。

可是,大模型性能的提高,需要巨大的层参数,沉重的计算负担和内存需求。这对于边缘和移动端设备来说是一个巨大的挑战。更特别的是,在边缘设备上部署高性能的模型,三个主要的问题需要被解决。

  • 较为满意的CNN模型通常有成千上万的权重参数,这将消耗磁盘存储,然后在推理过程中被加载到内存运行中。
  • 在运行过程中产生的特征图缓存数据可能比原始模型参数占据更多的内存。
  • 卷积神经网络是一种密集型的计算方式。例如,VGG16,在一个224*224的分辨率的一张图像的一个卷积层计算是,其计算此时可达到1.85 ∗ 1 0 9 1.85*10^91.85109。卷积操作是主要的计算负担。

如何对神经网络模型进行压缩和加速近年来一直备受瞩目。现在,有代表性的工作有,网络量化、低秩近似、权重共享、权重修剪。可是,这些方法需要特别的加速库和软件库的支持,其中一些还不能全面解决上述的问题。另一种轻量化技术别定义为滤波器剪枝,这是一种粗粒度的剪枝方法。通过对比,滤波器修剪方法不受特别的硬件和软件的限制,适用于各种类型的CNNS任务。

滤波器修剪在网络紧凑化中的效果是显著的,在这个工作中,最近已经巨大的进展。[9,19,18]提出了具体的优化目标和约束条件,并利用启发式优化算法对CNN进行联合训练。这将带来一些列超参数问题,这意味着针对部署策略,需要一些额外的技巧来调整启发式算法的超参数,这对于实际应用并不是灵活的。此外,联合训练通常会结合稀疏正则化乘法,这将破破坏模型本身的结构。在[13,10,35,20,34,17,16]中,通过具体规则对滤波器进行修剪,这些规则在生成滤波器重要性时是明确的。这些方法需要对重要性从高到低进行排序,然后删除重要性低的滤波器。它需要太多的手工调整。这意味着在各种情况下都是鲁棒的。然而,[34,10]源于经验或直觉,缺乏基本的理论指导,虽然他们在压缩模型方面取得了成功。 与此同时,其他基于规则的准则为找到冗余信息提供了理论支持,但仍然存在缺陷。[16]将L1范数作为重要性评价的标准进行过滤。然而,所有的层使用相同的修剪规模,这带来了次级优化。【17】提出了一种为Hrank的方法对具有低秩特征映射的滤波器进行剪枝。但是类似高秩的特征图也含有冗余信息,但是并没有删除。

我们的工作属于滤波器剪枝。这个思想来自于图片之间的相似性。相似度高,说明两幅图像包含的特征信息基本相似。卷积神经网络层产生了丰富的多维张量,这些张量可以看做是图片。简言之,我们可以将相似性的思想应用于特征图中。我们的方法首先需要从训练数据集为每个卷积层生成特征图,并量化这些特征图之间的相似性。然后根据相似度最高的通道特征图,逐层修剪卷积滤波器。在经过滤波器剪枝后,经过微调后将使模型的性能得到提升,并且没有明显的精度损失。特征图的相似性已经在GHostnet进行了说明和应用,进一步证明了该方法的合理性。我们方法的关键是优化量化方程,这将在第三节进行充分的讨论。需要强调的是 ,我们没有在实验中实施稀疏化惩罚。
我们的主要贡献如下所示:

  1. 受二维矩阵中最大线性无关系统的启发,我们提出了一种通过量化任意两个特征图映射相似性来寻找三维张量中冗余信息的方法。
  2. QSFM被应用于了各种卷积算子中,包括普通卷积和深度可分离卷积。我们也使用了不同的相似性量化函数来进一步对QSFM进行探索。
  3. 我在在CIFAR-10和CIFAR-100上基于VGG,Mobilenet和Resnet进行了实验。这表明QSFM算法优于现有的滤波器剪枝方法。

2 相关工作

神经网络量化:【6】提出了 利用二进制你加权卷会智能网络草图的方法,对于具有相同输入的卷积计算,保留先前的卷积结果,并且卷积滤波器相同部分直接将结果相乘。【11】通过散列法(哈希法)将将数据投影到哈希空间,并将二进制参数学习问题转化为内积相似条件下的散列问题。不同于传统的1-Valued和加权平均,【36】提出了三值量化的方法,该方法使用可训练的全精度的系数,将权重量化到了− w n , 0 , w p -w_n,0,w_pwn,0,wp。不对称的权重使网络更加的灵活。与我们的方法不同,这些方法旨在将滤波器权重量化为离散值,然而我们的方法是找出量化函数作为特征图相似性的具体描述。这些方法在节省存储空间上获得了很高的压缩水平并且显著加速了推理,但是极端的是,它导致了相当大的精度损失,破坏了模型的性能。除此之外,可能的权重网络的值需要进一步探索。

权值修剪:权重修剪可以在不受限制的去除预期比例的任何冗余权重和冗余连接,但是它将带来结构不规则的问题,使其很难在剪枝之后的得到有效的加速。最近,文献【15】提出了(SNIP)在模型初始化阶段通过多次采用训练集来确定连接重要性的剪枝方法,同时生成剪枝模板被生成。在训练之后,不需要通过交替循环过程去迭代剪枝和微调。【33】使用权重稀疏映射和输入掩码以提供可量化的能量消耗,将能耗预算作为网络训练的优化约束,稀疏网络可以通过动态剪枝方法获得,该方法可以恢复可以被错误地删除的重要连接。由于需要特殊稀疏矩阵操作库和硬件,他不是方便的,使用权重修剪实现模型加速。

滤波器修剪:也称为粗粒度修剪,它将滤波器视为最小剪枝单元,它可以使网络“变窄”,可以直接在现有软件或硬件上实现有效加速。与人工修剪相比,【9】使模型压缩完全自动化,性能更好。它 使用DDPG作为压缩的控制器,在连续空间中产生特定的压缩比。与之前的硬修剪和标签依赖修剪方法不同,【19】提出了一种无标签的生成对抗学习(GAL)的方法,它使用稀疏软掩码修剪网络将特定结构的输出缩放为0。它用稀疏软掩码以端到端的方式去学习修剪网络。由于启发式优化算法和联合剪枝,【9,19】将带来一些超参数问题。【10】提出了一种交替优化算法,来通过lasso回归的通道选择和最小二乘重建来实现每个层。【35】提出变分贝叶斯方法用于在通道层面的卷积神经网络的修剪,引入随机变分推理估计稀疏先验引起的信道显著性分布。尽管在模型压缩上是成功的,【10、35】源于经验或直觉,缺乏基础理论指导。【16】计算滤波器的L1范数,将较小的L1范数对应的特征图裁剪出来,并在修剪后重新训练。可是,所有的层使用相同的修剪刻度,它带来次优化。【17】提出了一有用高效的滤波器修剪算法,在每一层挖掘特征图的高秩。Hrank背后的原理是低阶特征包含的信息较少,因此可以很容易重现修剪后的网络结果。尽管如此,类似high-rank特征图可能也包含冗余信息,但它们并没有移除。

我们的方法也属于滤波器修剪。这种修剪策略可以摆脱特定硬件和软件的限制,实现了存储效率、内存占用和计算速度的同时提升,并保留了不同修剪率的模型结构。它还可以与上面提到了典型的方法相结合,以进一步实现更高的压缩率。

3. 所提方法

3.1 查找冗余信息

在数学方面,对于一个二维矩阵(即,一组向量),他的所有向量都可以表示极大线性无关系统中向量的线性组合,它的秩是极大线性无关系统包含的向量个数。假设A = [ α 1 , α 2 , … , α n ] ∈ R m × n , α i ∈ R m , i = 1 , 2 , … , n A=\left[\alpha_{1}, \alpha_{2}, \ldots, \alpha_{n}\right] \in R^{m \times n}, \alpha_{i} \in R^{m}, i=1,2, \ldots, nA=[α1,α2,,αn]Rm×n,αiRm,i=1,2,,n,如果A AA的极大线性无关组是A B a s i c ∈ R m × s , s < = n A_{Basic} \in R^{m \times s},s<=nABasicRm×s,s<=n,我们知道A AA中的任何向量都可以由A B a s i c A_{Basic}ABasic生成。在某种程度上,最大线性无关的二维向量系统代表了它最本质的信息。

我们将这个极大线性无关系统的概念推广到三维张量。考虑到三维张量比较复杂,线性相关条件在三维中不易满足,我们用两个张量的相似性代替了多个向量的线性相关性的概念。假设张量B = [ β 1 , β 2 , … , β k ] ∈ R m × n × k , β i ∈ R m × n , i = 1 , 2 , … , k B=\left[\beta_{1}, \beta_{2}, \ldots, \beta_{k}\right] \in R^{m \times n \times k}, \beta_{i} \in R^{m \times n} ,i=1,2, \ldots, kB=[β1,β2,,βk]Rm×n×k,βiRm×n,i=1,2,,k,如果β i \beta_{i}βi类似于β j \beta_{j}βj,则B BB有冗余信息。如何衡量β i \beta_{i}βiβ j \beta_{j}βj的相似性成为了一个关键的问题。显然,当β i = k ⋅ β j \beta_{i}=k \cdot \beta_{j}βi=kβjq qq为常数)我们可以定义β i \beta_{i}βiβ j \beta_{j}βj相似,就像两个二维矩阵一样。但在实践中,这样的定义过于严格,往往很难找到满足这样条件的β i β_iβiβ j β_jβj

我们定义了一个量化函数S ( β i , β j ) S\left(\beta_{i}, \beta_{j}\right)S(βi,βj),并且S ( β i , β j ) S\left(\beta_{i}, \beta_{j}\right)S(βi,βj)的值越大,β i β_iβiβ j β_jβj越相似。在实践中,我们使用结构相似度(SSIM)【31】和峰值信噪比(PSNR)(相当于欧氏距离)作为量化函数S ( β i , β j ) S\left(\beta_{i}, \beta_{j}\right)S(βi,βj)。我们的任务是通过类似于二维矩阵中的最大线性独立系统的相似函数,在三维张量中找到最基本的信息。

3.2 QSFM

3.2.1 符号

假设一个图像训练集T r i a n TrianTrianM MM个图像,被定义为Train = { =\left\{\right.={ Image 1 _{1}1, Image 2 , … _{2}, \ldots2,, Image k } ∈ R M × N 0 × X 0 × Y 0 \left._{k}\right\} \in R^{M \times N_{0} \times X_{0} \times Y_{0}}k}RM×N0×X0×Y0,其中N 0 N_0N0代表通道数,X 0 X_0X0Y 0 Y_0Y0代表了高度和宽度。修剪前的预训练模型为M o d e l 0 Model_0Model0,第i ii次剪枝后得到模型为M o d e l i Model_iModeli,该模型的卷积层L 1 , L 2 , … , L n L_{1}, L_{2}, \ldots, L_{n}L1,L2,,LnL i L_iLiN i N_iNi个滤波器,由N i N_iNi滤波器构成的集合为W i = { W_{i}=\left\{\right.Wi={ Filter ( i , 1 ) _{(i, 1)}(i,1), Filter ( i , 2 ) , … _{(i, 2)}, \ldots(i,2),, Filter ( i , N i ) } ∈ R N i × N i − 1 × K i × K i \left._{\left(i, N_{i}\right)}\right\} \in R^{N_{i} \times N_{i-1} \times K_{i} \times K_{i}}(i,Ni)}RNi×Ni1×Ki×Ki,其中K i K_iKi代表卷积滤波器的高和宽。假设模型的输入仅仅是一个图像,假设L i L_iLi的输入是I i ∈ R N i − 1 × X i − 1 × Y i − 1 I_{i} \in R^{N_{i-1} \times {X}_{i-1} \times Y_{i-1}}IiRNi1×Xi1×Yi1L i L_iLi的输入是O i ∈ R N i × X i × Y i O_{i} \in R^{N_{i} \times {X}_{i} \times Y_{i}}OiRNi×Xi×Yi。层L i L_iLi的第i ii个滤波器F i l t e r ( i , j ) ∈ R N i − 1 × K i × K i Filter_{(i, j)} \in R^{N_{i-1} \times K_{i} \times K_{i}}Filter(i,j)RNi1×Ki×Ki,它的输出特征图为F e a t u r e m a p ( i , j ) ∈ R X i × Y i Feature_map_{(i, j)} \in R^{X_{i} \times Y_{i}}Featuremap(i,j)RXi×Yi,这N i N_iNi个特征图构成了O i = { F e a t u r e m a p ( i , 1 ) , F e a t u r e m a p ( i , 2 ) , … F e a t u r e m a p ( i , N i ) } ∈ R N i × X i × Y i O_{i}=\left\{\right. Feature_map_{(i, 1)}, Feature_map _{(i, 2)}, \ldots Feature_map \left._{\left(i, N_{i}\right)}\right\} \in R^{N_{i} \times X_{i} \times Y_{i}}Oi={Featuremap(i,1),Featuremap(i,2),Featuremap(i,Ni)}RNi×Xi×Yi。对于层L i L_iLi我们假设滤波器滤波器应该被剪枝构成集合D e l e t e i Delete^{i}Deletei,在识别了冗余的特征图之后,您可以根据其对应的过滤器对其进行修剪,如图1所示。
在这里插入图片描述

3.2.2 量化相似度

修剪的顺序是从L 1 L_1L1L n L_nLn,假设正在修剪L i L_iLi的卷积层。(逐层修剪)

首先,根据压缩率假设L i L_iLi层中需要修剪的过滤器数量为N i 2 N_{i2}Ni2,即集合D e l e t e i Delete^{i}Deletei中有N i 2 N_{i2}Ni2个元素。

待修剪的模型为M o d e l i − 1 Model_{i-1}Modeli1,当I m a g e K Image_KImageK是模型M o d e l i − 1 Model_{i-1}Modeli1的输入,L i L_iLi层的输出为O i = { F e a t u r e m a p ( i , 1 ) , F e a t u r e m a p ( i , 2 ) , … F e a t u r e m a p ( i , N i ) } ∈ R N i × X i × Y i O_{i}=\left\{\right. Feature_map_{(i, 1)}, Feature_map _{(i, 2)}, \ldots Feature_map \left._{\left(i, N_{i}\right)}\right\} \in R^{N_{i} \times X_{i} \times Y_{i}}Oi={Featuremap(i,1),Featuremap(i,2),Featuremap(i,Ni)}RNi×Xi×Yi,计算量化的相似度函数,S ( F e a t u r e m a p ( i , m ) k , F e a t u r e m a p ( i , n ) k ) S(Feature_map_{(i, m)}^{k}, Feature_map \left._{(i, n)}^{k}\right)S(Featuremap(i,m)k,Featuremap(i,n)k),其中 Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k和 Feature_map ( i , m ) k ( m ! = n ) _{(i, m)}^{k}(m!=n)(i,m)k(m!=n)是集合O i k O^k_{i}Oik中的任何两个元素。在下文中,用S m , n i , k S^{i,k}_{m,n}Sm,ni,k表示,函数采用结构相似性(SSIM)或峰值信噪比(PSNR)。

结构相似度和峰值信噪比通常用来衡量压缩后的图像质量。据我们所知,这是首次将该方法用于衡量CNN中两个特征 图之间的相似度。
在这里插入图片描述
在这里插入图片描述
D由以下公式确定:
在这里插入图片描述
这里,m a x ( O i k ) max(O^k_i)max(Oik)m i n ( O i K ) min(O^K_i)min(OiK)O i K O^K_iOiK中最大和最小像素值。由于PSNR的量化在理论上等同于欧几里德距离,我们只需要根据相似度的大小对相似度进行排序,而不需要知道PSNR的具体值。因此,以下内容不会将PSNR与欧几里德距离区分开来。
在这里插入图片描述
F M i , m k FM^k_{i,m}FMi,mkF M i , n k FM^k_{i,n}FMi,nk指 Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k和 Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k,要注意的是S m , n i , k S^{i,k}_{m,n}Sm,ni,k,仅是由单个图像I m a g e k Image_kImagek产生的结果。对于整个数据集T r a i n TrainTrain,它总共包含M MM幅图像。我们计算M MM幅图像的统计平均结果,并定义:
**加粗样式
S m , n i S^{i}_{m,n}Sm,ni越大,F FF特征Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k与特征Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k越相似。在找出相似度较高的特征地图组后,需要规定一个辅助条件来确定删除两个特征地图中的哪一个。我们可以在每个相似的组中随机删除一个特征图,也可以使用特征图的L1范数删除范数较小的特征图,这部分实验在补充材料中提供。我们使用二维矩阵的秩作为辅助条件来辅助量化相似函数寻找D e l e t e i Delete_iDeletei。这个辅助条件的使用受到HRank[17]的启发,但这并不意味着QSFM与HRank相似。事实上,如上所述,HRank没有考虑两个高等级特征图中冗余信息(即相似性)的存在。同时,我们的实验将证明QSFM优于HRank。计算每个特征Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)k的秩,在0 s 0_s0s中Feature_map ( i , m ) k _{(i, m)}^{k}(i,m)kR a n k m i Rank^i_mRankmi的统计平均值:
在这里插入图片描述

3.2.3 滤波器剪枝

将集合S i S^iSi按照从高到低的顺序排列,然后匹配集合。R a n k i Rank^iRanki确定要修剪的滤波器。条件设置如下:

  1. F i l t e r ( i , m ) Filter_(i,m)Filter(i,m)F i l t e r ( i , n ) Filter_(i,n)Filter(i,n)不是D e l e t e i Delete^iDeletei的成员。
  2. m mmn nn满足条件1时,S m , n i S_{m,n}^iSm,ni最大;
  3. R a n k m i > R a n k k i Rank^i_m>Rank^i_kRankmi>Rankki
  4. R a n k m i < = R a n k k i Rank^i_m<=Rank^i_kRankmi<=Rankki

如果同时满足条件1、2、3,则将F i l t e r ( i , n ) Filter_(i,n)Filter(i,n)放入D e l e t e i Delete^iDeletei中,如果同时满足条件1、2、4,则将F i l t e r ( i , n ) Filter_(i,n)Filter(i,n)放入D e l e t e i Delete^iDeletei中。上面的操作将继续下去,直到D e l e t e i Delete^iDeletei中过滤器的数量为N i 2 N_{i2}Ni2

对每个卷积层进行剪枝后,对模型进行微调,即:
在这里插入图片描述
然后进入下一个卷积层的剪枝,直到所有的卷积层都被剪枝,神经网络的压缩完成。

3.2.4 特殊卷积

我们的方法还可以修剪特殊的卷积层,如深度可分离卷积。如图2所示,无论哪种卷积层输出,都会有相似的feature map。我们还可以使用QSFM来修剪网络。
在这里插入图片描述

4 实验

在实验中,使用欧氏距离(PSNR)和结构相似性(SSIM)作为量化QSFM相似度的函数,分别表示为QSFM-PSNR和QSFM-SSIM。我们首先证明了在ResNet-56中不进行任何微调操作的QSFM剪枝所获得的优秀结果,这是目前为止我们所知道的最好的。在CIFAR-10[14]上对VGG-16、ResNet-56和MobileNetV2[25]的QSFM进行了微调操作。此外,我们还展示了在CIFAR-100[14]上对ResNet-56的QSFM结果。模型的原始精度分别为93.39%(VGG-16,CIFAR-10)、93.21%(ResNet-56,CIFAR-10)、92.54%(MobileNetV2,CIFAR10)和70.62%(ResNet-56,CIFAR-100)。

4.1 实验设置

4.1.1 参数配置

所有的实验都是在TensorFlow(1.14.0)和Kera(2.2.5)中进行的。卷积运算之后通常是批归一化层和激活层,在我们的实验中,我们将这三层看作一个块,并对其最终输出的三维张量(特征图)进行QSFM剪枝。对于ResNet-56中的每个残留块,我们只修剪第一卷积层,这是简单的,并且保持残留块的输出尺寸不变,如图3所示。对于MobileNetV2中的每个瓶颈,我们沿深度可分卷积层进行修剪,如图4所示。

我们按照从第一层到最后一层的顺序对神经网络进行修剪。在每一次修剪之后,我们进行了30个时期的微调操作。在整个剪枝操作之后,我们计算了剪枝网络的FLOP和参数,并将它们与现有的已有方法[17,9,10,19,35]进行了比较。

4.1.2 压缩率的设定

VGG-16:对于VGG-16的微调部分,为了显示我们方法的普适性,我们将所有13层的压缩比都设置为0.5。
RESNET-56:在CIFAR-10上的RENET-56中,我们发现相当多的卷积层有许多滤波器,它们的所有参数值都接近1 0 − 32 10^{−32}1032。我们统计了所有参数值接近1 0 − 32 10^{−32}1032的滤波器在每个残差块的27层中的比例,并对这些层进行了修剪。当我们修剪这些滤波器时,修剪后的模型的精确度与原始模型大致相同(没有微调)。为了证明结果的普遍性,我们训练了几个模型,所有模型都有类似的结果,如图5所示。我们计算每个残块的27层中所有参数值接近1 0 − 32 10^{−32}1032的滤波器所占的比例,并对这些层进行修剪。
在这里插入图片描述
这说明CIFAR-10上的Resnet-56模型存在很大的冗余度,因此我们认为如果每一卷积层的压缩比太小,可能会导致选择应该修剪的滤波器都是1 0 − 32 10^{−32}1032量级的,这不能反映该方法的优缺点。这就像一组狗(其他滤波器)与一些猫(所有参数值接近1 0 − 32 10^{−32}1032量的滤波器)混合在一起,目标是找到一种合适的方法来挑选出好狗(压缩模型)。显然,猫需要先被移走,但这并不能说明这个方法是好是坏。如果压缩比太低,那么任何方法都会得到很好的结果,因为它们删除的过滤器显然毫无用处(就像把猫从狗身上拿出来一样,什么都不能说)。

我们利用这一“高压缩比”原则来比较各种方法的剪枝性能(CIFAR-10上ResNet-56每层的压缩比不低于0.5),并且我们还提供了一个没有任何微调操作的低压缩比剪枝版本ResNet-56,以证明我们的方法在低压缩比下也能很好地执行。

MobileNetV2:对于MobileNetV2的微调部分,我们将所有17个深度可分离的卷积层的压缩比都设置为0.3。

4.2. CIFAR-10实验结果与分析

我们在CIFAR-10上剪枝了一些mainstream models,包括VGG-16、ResNet-56和MobileNetV2。

4.2.1 VGG-16 without Fine-tuning

对于没有微调的VGG-16,我们只修剪了第三和第四块(第5到第10卷积层),压缩比为[0.6,0.4,0.3,0.3,0.3,0.3]。在此压缩比下,采用QSFM-PSNR、QSFM-SSIM、HRANK、RANDOM(随机删除滤波器)等不同的方法对同一网络进行逐层剪枝。应该强调的是,我们在这部分没有进行任何微调,实验结果如图6所示。为了公平比较,每种方法的特征图都是通过对CIFAR-10随机生成的5000幅图像进行平均得到的。
在这里插入图片描述
在剪枝不同卷积层时,我们的方法始终优于HRank方法和随机方法。在实验中,我们发现我们的方法在剪枝后的准确率有时甚至比剪枝前更高(在QSFM-SSIM的第三步和第四步)。当压缩比较大时,HRank需要删除高阶特征图,但不能有效区分高阶特征图中哪些是冗余的。

4.2.2 VGG-16 with Fine-tuning

我们进一步应用我们的方法对VGG-16模型进行微调与剪枝,所有13个卷积层的压缩比均为0.5。结果在表1中显示,与HRank相比,QSFM-SSIM和QSFM-PSNR在保持更好的精度下降(-1.79%比-2.73%,-2.53%比-2.73%)的同时,几乎压缩了相同的FLOPs。
在这里插入图片描述

4.2.3 ResNet-56 without Fine-tuning

在这一部分中,我们首先根据第4.1.2节的结果证明了我们的QSFM方法在低压缩比下可以获得良好的结果。但是,如上所述,只有在高压缩率下,才能充分体现各种方法的优缺点。因此,我们比较了不同的剪枝方法在高压缩比下的性能。

Low compression ratio.为了证明我们的方法在低剪枝率下的有效性,我们按照略高于不重要的滤波器(所有参数值接近1 0 − 32 10^{−32}1032的滤波器)的比例,在不进行任何微调操作的情况下剪枝ERESNET-56。最终的结果如表2所示。与AMC和等人相比,QSFM-PSNR在保持较小精度下降(-0.54%vs-2.7%和-0.54%比-2.0%)的同时几乎压缩了相同的FLOPs。与GAL-0.6相比,QSFM-PSNR虽然有较高的精度下降(-0.54%vs-0.28%),但获得了更大的计算量和参数量下降(64.92M vs. 78.30M,0.36M vs. 0.75M)。与GAL-0.8相比,QSFM-PSNR有较小的精度下降(-0.54%vs-2.9%),但在压缩方面略有不足。与赵等人相比,QSFM-PSNR有较小的精度下降(-0.54%vs-0.78%),更大的FLOPs减少(64.92Mvs100.86M)和更大的参数减少(64.92Mvs78.30M和0.36Mvs0.68M)。
在这里插入图片描述
High Compression Ratio. 对于高压缩比,我们只修剪了前9个块,压缩比为[0.5,0.5,0.5,0.5,0.75,0.75,0.75,0.75]。我们使用整个训练集(50000幅图像)来计算特征图之间的相似度。结果如图7所示。与HRank和Random相比,QSFMPSNR对整个9个步骤的精度保持得更好,说明了将量化的特征图相似度作为重要选择滤波器的先进性。而对于QSFM-SSIM,它仅在第1 - 3步表现较好,这说明所选择的度量相似度的函数还有改进的空间。QSFM-PSNR和QSFM-SSIM都远远优于Random,证明了该方法的正确性。
在这里插入图片描述

4.2.4 ResNet-56 with Fine-tuning

我们进一步应用我们的方法对ResNet-56模型进行微调修剪。结果如表3所示。QSFM-PSNR再次证明了其获得91.98%高精度的能力,参数降低69.1%,FLOPs降低58.0%。这明显优于GAL-0.8。与AMC相比,QSFM-PSNR获得了top-1准确率的91.90%,FLOPs减少了50%,而QSFM-PSNR获得了更大的FLOPs减少(53.15M vs. 63.28M)。与Hrank相比,qsfm - ssm -2的top-1精度下降和参数减少较少(-1.33% vs. -2.54%, 0.25M vs. 0.27M)。
在这里插入图片描述

4.2.5 MobileNetV2 with Fine-tuning

对于MobileNetV2,我们使用QSFM-PSNR在CIFAR-10上修剪整个17个深度可分离的卷积层。各层压缩比为0.3。剪枝实验结果如表4所示。修剪后模型精度仅下降0.48%(92.54%→92.06%),FLOPs减少26.93%,参数减少24.09%。结果表明,该方法对于深度可分的卷积层也能获得较好的结果。
在这里插入图片描述

4.3. Results and Analysis on CIFAR-100

在CIFAR100上使用QSFM-PSNR对ResNet-56进行修剪。在ResNet-56中,我们只对每个残块进行第一卷积层的修剪,最终结果如表5所示。Top-1正确率下降了2.29%(70.62%→68.33%),Top-5正确率下降了0.92%(92.00%→91.08%),FLOPs减少了53.87%,参数减少了51.16%。

5. Conclusion

在本文中,我们提出了一种寻找三维张量中多余信息的新理论,即QSFM。QSFM利用预定义函数量化张量特征映射之间的相似度,删除相似度高的特征映射,构建三维张量中的最大独立系统。采用QSFM对剪枝进行滤波,对cnn进行压缩,取得了较好的效果。实验表明,QSFM对VGGNet、ResNet和MobileNet等cnn的压缩效果显著,精度下降可忽略不计,优于以往的方法。我们将继续探索更多量化相似函数,甚至一些机器学习方法来量化特征图的相似度,提高QSFM的性能。


版权声明:本文为lihuanyu520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。