作者:Mingbao Lin、Rongrong Ji等
现有的剪枝算法仍存在训练效率低和人工成本高的问题,这主要是由于缺少对网络中不显著成分的理论指导。在一篇 CVPR 2020 Oral 论文中,来自厦门大学纪荣嵘教授团队的研究者提出了一种新的基于高秩特征图的滤波器剪枝方法(HRank)。在不引入任何附加约束的情况下,与其他精度相似的现有算法相比,HRank 在浮点计算量和参数量上有了显著减少。
HRank 的灵感来自于这样一个发现:无论 CNN 接收的图像批数是多少,由单个滤波器生成的多个特征图的平均秩总是相同的。在 HRank 的基础上,研究者还提出了一种针对低秩特征图所对应滤波器进行剪枝的算法。剪枝的原理是低秩特征图包含的信息较少,因此剪枝后的结果可以很容易地再现。
引言
尽管剪枝领域已经诞生了许多优秀的工作,但其中仍然存在着许多开放的问题:一方面我们追求更高的压缩率和加速比,另一方面我们又受到繁重的机器训练时间和人力成本的限制。对此,厦门大学媒体分析与计算实验室等机构的研究者认为,该问题可以归因于缺乏关于滤波器重要性和冗余的实用与理论指导。
因此,他们提出了 HRank,用于对剪枝进行更有效的指导。这是一个基于属性重要性的滤波器剪枝方法,它不需要引入额外的辅助约束或重新训练模型,从而简化了剪枝的复杂性。
同时,通过实验和定量观察,研究者发现无论 CNN 接受多少数据,由单个滤波器生成的特征图的平均秩总是相同的。结果表明,利用数据集中的一小部分图像,就可以准确、高效地估计出 CNN 中特征图的秩。
本文贡献主要有三点:
(1)实验表明,由单个滤波器生成的特征图的平均秩几乎不变;
(2)从数学上证明了低秩特征图所对应的滤波器信息量较小,因此对保持模型精度作用较小,可以优先剪去;
(3)展示了 HRank 在模型压缩和加速方面的高效和有效性。
算法
剪枝框架
研究者对模型的训练可分为三个阶段,分别是特征图生成阶段、滤波器选择阶段以及微调阶段。
在第一阶段,他们将部分图像输入模型,得到各个滤波器对应的特征图;接下来,根据得到的特征图,计算每个滤波器对应的秩,作为滤波器选择的准则;最后,根据上一阶段的选择结果,剪去上图中红色部分的滤波器,并对修剪后的模型进行微调,得到最终的结果。
理论解释
本文中利用特征图的秩作为信息的有效度量和输入图像分布的稳定表示,其公式如下:
为了在理论上说明该观点的有效性,如下所示,他们对特征图进行了奇异值分解:
如上,可以将其分解为一个秩较低的特征图和一些附加信息,这表明了高秩特征图相比低秩特征图确实包含了更多的信息,对于模型有更大的贡献。
算法优化
他们通过实验观察到,单个滤波器产生的秩的期望对于输入图像的个数是鲁棒的,这意味着方差可以忽略不计。因此,可以使用少量输入图像来精确估计特征图秩的期望值。
剪枝流程
首先,计算某个特征图的秩的平均,对这些秩进行降序排列;然后,确定某一卷积层的待保留滤波器数量和待修剪滤波器数量,其实也就是确定卷积层对应的压缩率;最后,根据计算得到的秩,从所有滤波器中筛选出秩较高的那些,从而建立剪枝后的模型。
实验
实验设置
研究者在 CIFAR-10 和 ImageNet 两个数据集上进行了实验,使用 VGGNet、GoogLeNet、ResNet 和 DenseNet 作为 Baseline 模型,以测试本文方法对于各种结构的适用性。另外,在实验中,研究者随机抽取 500 张图像来估计每个特征图的平均秩。
他们的剪枝方式如上图所示,值得注意的是,对于 Inception 结构的 3x3 和 5x5 分支,他们只对 3x3 的卷积层进行剪枝。
CIFAR-10实验结果
研究者在 CIFAR-10 数据集的 VGG-16、GoogLeNet、ResNet56/110 和 DenseNet-40 共 5 个模型上验证了算法的性能,并与其他前沿剪枝算法进行了比较。可见,HRank 对于各种结构的神经网络都有较出色的压缩与加速能力。
ImageNet 实验结果
他们还在更具有挑战性的 ImageNet 数据集上对 ResNet-50 进行了实验。由上图可见,HRank 在各个方面基本上都超过了其他方法,包括 Top1 和 Top5 的精度,以及 FLOPs 和参数的减少量。
消融实验
研究者构造了 HRank 的 3 个变种来证明用特征图的秩来决定滤波器这一思想的恰当性,3 个变种分别是:Edge(同时剪去低秩和高秩特征图所对应的滤波器)、Random(随机裁剪滤波器)和 Reverse(剪去低秩特征图所对应的滤波器),实验结果如下图所示:
可见,HRank 优于它的其它变种,而 Edge 又是变种中效果最优的,通过对该结果的分析,可以发现高秩特征图所对应的滤波器确实更优,这与上文的讨论也相互印证。
本文为机器之心专栏,转载请联系本公众号获得授权。