【模型压缩】CVPR2020-HRank:Filter Pruning using High-Rank Feature Map | Enplee's blog
0%

【模型压缩】CVPR2020-HRank:Filter Pruning using High-Rank Feature Map

Abstract

神经网络剪枝为深度神经网络在资源受限设备上的应用提供了广阔的前景。然而,现有的剪枝方法由于缺乏对非显著网络成分的理论指导,在剪枝设计中存在训练效率低、人工成本高的问题。本文通过对高秩特征图的研究,提出了一种新的滤波剪枝方法。我们的HRank的灵感来自于这样一个发现,即由单个过滤器生成的多个特征图的平均秩总是相同的,而不考虑接收到的CNNs图像batch的数量。在此基础上,本文提出了一种用数学方法对低秩特征图进行滤波的方法。我们的剪枝背后的原则是,低秩特征图包含的信息较少,因此剪枝的结果可以很容易地复制。此外,我们还通过实验证明了高秩特征图的权值包含了更多的重要信息,即使不更新一部分,对模型性能的影响也很小。在不引入任何额外约束的情况下,HRank在计算和参数减少方面比现有技术有了显著的改进,并且具有相似的准确性。

https://github.com/lmbxmu/HRank

Introduction

卷积神经网络(CNN)在计算机视觉应用方面取得了巨大成功,如分类,检测 和分割。然而,它们对计算能力和内存的高要求阻止将大多数最先进的 CNN 部署在边缘设备(如智能手机或可穿戴设备)中。虽然在设计新的硬件和/或硬件特定的CNN加速框架(如TensorRT)方面已经取得了良好的进展,但是是通过在acc方面的妥协来实现降低FLOPs和CNN的大小。流行的技术包括:filter压缩,参数量化和网络修剪。

其中,网络修剪已显示出广阔的应用前景。典型的工作或者修剪Weight矩阵来获得sparse(稀疏)权重矩阵(weight pruning);或者从网络中删除整个过滤器(filter pruning)。除了网络压缩,权重修剪方法也可以实现加速在专用软件或硬件 .但是,它们在通用硬件或 BLAS 库上的应用上受限。相比之下,滤镜修剪方法没有此限制,因为整个filter都已删除。本文重点介绍filter修剪以实现模型压缩(参数减少)和加速度(FLOPs的减少),旨在为计算能力较低的设备提供多功能解决方案。

filter修剪的核心在于filter的选择,用较低的准确率换取高压缩率。基于filter评价函数的设计,对filter进行了实证分类基于过滤器评估函数的设计,我们根据经验将过滤器修剪分为两组,如下所述。

Property Importance:根据 CNN 的内在属性对筛选器进行修剪。

这些修剪方法不会修改网络训练损失。修剪后,通过微调提高模型性能。在这些方法中,Hu et al.利用大型网络中输出的稀疏性来移除具有高百分比零激活的filter。基于l1范数的修剪方法假设参数或特征的范数小,那么具有更少的信息,应该首先被修剪。Molchanov et al.考虑了一阶梯度来评估filter的重要性。Hu et al.计算layers中的几何中位数,并修剪最接近此的滤镜。大多数filter评估功能的设计都是ad-hoc–为了某个特定目的,所建立起来的.这带来了低时间复杂度的优点,但也限制了加速度和压缩比。

Adaptive Importance:不同于基于属性重要性的方法,另一个方向将修剪要求嵌入到网络训练损失中,并采用联合修剪优化来生成自适应修剪决策。

Liu et al.批处理规范化层的缩放因子施加了空间约束,允许将具有较低缩放因子的通道标识为无极性。Huang et al.引入了一个新的缩放因子参数(也称为掩码),以学习稀疏结构修剪,其中删除与缩放因子为零的筛选器。与基于属性重要性的filter prune相比,自适应重要性方法通常由于联合优化而产生更好的压缩和加速度结果。然而,由于损失的变化,所需的再培训步骤在机器时间和人力方面都是沉重的,我们要求另一轮超参数调整。对于某些方法,例如,基于掩码的方案,修改后的损耗甚至需要专门的优化器,这会影响基于自适应重要性的方法的灵活性和易用性。

总体而言,到目前为止,过滤器修剪仍然是一个开放的问题。一方面,我们追求更高的压缩/加速度比,另一方面,我们受到重型机器时间和人力的限制(特别是Adaptive Importance为基础的方法)。我们认为这些问题的核心是缺乏有关filter重要性和冗余的实际/理论指导。在这篇论文中,我们提出了一种有效和高效的滤镜修剪方法:探索CNN每层特征图的High Rank。我们所提出的 HRank 为基于属性重要性的筛选器修剪器提供指导。它消除了引入额外的辅助约束或重新训练模型的需要,从而简化了修剪的复杂性。此外,与现有的基于属性重要性的方法相比,HRank在加速和压缩方面也有显著改进,比最先进的基于重要性的自适应方法取得更好的效果。实施高等级特征图背后的动机来自经验和定量的观察。我们发现,无论CNN看到多少数据,单个filter生成的特征图的平均排名总是相同的。这表明,只使用一小部分输入图像就可以精确的估计DNN的特征图排名。基于这一理念,我们从数学上证明,较低等级的特征图对准确性的贡献较小。因此,可以首先删除生成这些要素映射的筛选器。我们在CIFAR-10和ImageNet上对诸多模型进行了测试。结果表明,HRank优于现有filter修剪方法,包括基于属性重要性的方法和最先进的自适应重要性模型。另外的试验表明,即使我们在修剪后微调期间冻结了带有高等级特征图的部分filter,模型仍保留高精度,这验证了我们的假设。主要贡献为:

  • 在广泛统计验证后,我们通过经验证明,单个filter生成的特征图的平均排名几乎保持不变。据我们所知,这是第一次报道这一观察。
  • 我们从数学上证明,具有较低等级特征图的filter信息较少,因此对保持精度不太重要,可以先删除。对于高等级要素地图,情况正好相反。
    • 广泛的实验证明了HRank在各种最先进的模型压缩和加速度方面的有效性和高效性。
Filter Pruning

与修剪重量矩阵的权重修剪相反,滤镜修剪会根据特定指标删除整个筛选器。滤波修剪不仅大大降低了存储使用,而且降低了在线推理的计算成本。如第 sec 中所讨论的。1、滤波修剪可分为两类:属性重要性方法和自适应重要性方法。基于属性重要性的筛选器修剪旨在利用CNN的内在属性(例如l1范数,第一梯度),然后使用它们作为区分不太重要的过滤器的标准。

Low-rank Decomposition

神经网络往往被过度参数化,这表明每个图层中的参数可以准确地从一个小子集中恢复。受此启发,低等级分解已成为网络压缩的替代方案。它通过将权重矩阵表示为两个较小矩阵的低级乘积来近似卷积操作。与修剪不同,它旨在降低网络的计算成本,而不是更改原始筛选器的数量。虽然低等级分解有利于CNN的压缩和加速,但通常在高压缩比下,精度会有较大的损失。

Discussions

与权重W修剪相比,filter修剪在降低模型复杂性方面更为有利。此外,无需专门的软件或硬件支持,其结构化修剪可以轻松集成到高效BLAS库中。然而,现有的filter修剪方法受到低效的加速和压缩(基于属性重要性的filter修剪)或机器和人工成本(自适应导入基于filter修剪),如Sec所讨论的。1.这两个问题给在资源有限的设备上部署深度 CNN 带来了根本性的挑战。我们把这种两难处境归因于缺少有关filter的实用/理论指导。我们关注要素图的排名,并在理论和实验上分析其有效性。请注意,我们的方法与低级分解方法是正交的。我们的目标是修剪过滤器生成低等级的图图,而不是分解过滤器。请注意,低等级方法可以集成到我们的模型中(例如,分解完全连接的层),以实现更高的压缩和加速率。

The Proposed Method

具体见论文

Experiments

Experimental Settings

Datasets and Baselines.数据集和基线。为了证明我们在降低模型复杂性方面的效率,我们在小型和大型数据集(CIFAR-10 和ImageNet)上进行了实验。我们研究主流CNN模型上不同算法的性能,包括结构简单结构的VGGNet,具有初始模块的GoogLeNet,带残余块的 ResNet和密集块的DenseNet。对于所有benchMark 和体系结构,我们随机采样 500 张图像,以估计每个要素图的平均排名

Evaluation Protocols.我们采用广泛使用的协议,即参数数和所需的浮点操作(表示为FLOPs),以评估模型大小和计算要求。为了评估任务特定功能,我们提供修剪模型的前 1 精度和CIFAR-10 上的修剪率(表示为 PR),以及 ImageNet 上修剪模型的top1和top5精度。

Configurations.我们使用 PyTorch 来实施建议的 HRank 方法。我们使用随机梯度下降算法(SGD)解决优化问题,初始学习速率为0.01,批号、重量衰减和动量设置为 128,0.0005 和 0.9,分别。对于每一层,我们在修剪后重新训练网络30个纪元,训练更多的时代时,可以观察到更高的准确性。然而,它需要更多的培训时间。

Conclusions

本文提出了一种名为HRank的新颖滤镜修剪方法,它通过确定特征图的排名来确定滤镜的相对重要性。为此,我们通过经验证明,单个筛选器生成的要素贴图的平均排名始终相同。然后,我们用数学方法证明,该代低等级要素图不太重要,应先删除,反之亦然,实验也验证了这一点。此外,我们建议冻结部分滤波器,以生成高等级特征图,以进一步降低微调成本,对模型性能几乎没有影响。对各种现代CN的广泛实验证明了HRank在降低计算复杂性和模型大小方面的有效性。在未来的工作中,我们将对为什么单个filter生成的特征图的平均排名始终相同进行理论分析。

-------------本文结束感谢您的阅读-------------