Skip to main content
QUICK REVIEW

[论文解读] Pruning Filters for Efficient ConvNets

Hao Li, Asim Kadav|arXiv (Cornell University)|Aug 31, 2016
Advanced Neural Network Applications参考文献 28被引用 685
一句话总结

论文提出一种方法,通过裁剪整个卷积滤波器(及其特征图)来降低CNN推理成本,而不引入稀疏连接,在最小精度损失的情况下实现显著的FLOP降低。

ABSTRACT

The success of CNNs in various applications is accompanied by a significant increase in the computation and parameter storage costs. Recent efforts toward reducing these overheads involve pruning and compressing the weights of various layers without hurting original accuracy. However, magnitude-based pruning of weights reduces a significant number of parameters from the fully connected layers and may not adequately reduce the computation costs in the convolutional layers due to irregular sparsity in the pruned networks. We present an acceleration method for CNNs, where we prune filters from CNNs that are identified as having a small effect on the output accuracy. By removing whole filters in the network together with their connecting feature maps, the computation costs are reduced significantly. In contrast to pruning weights, this approach does not result in sparse connectivity patterns. Hence, it does not need the support of sparse convolution libraries and can work with existing efficient BLAS libraries for dense matrix multiplications. We show that even simple filter pruning techniques can reduce inference costs for VGG-16 by up to 34% and ResNet-110 by up to 38% on CIFAR10 while regaining close to the original accuracy by retraining the networks.

研究动机与目标

  • 在保持准确性的同时,推动降低 CNN 推理成本。
  • 提出一种结构化的一次性滤波器裁剪方法,该方法移除整个滤波器及其特征图。
  • 证明裁剪滤波器可以避免非规则稀疏性,并且适用于密集 BLAS 库。
  • 提供关于跨层和跨网络块(例如 ResNet 块)的裁剪敏感性指南。
  • 展示在 VGG-16 和 ResNet 架构上通过再训练实现的实际 FLOPs 降低。

提出的方法

  • 使用滤波权重的 L1 范数来计算每个滤波器的重要性,并裁剪每层中权重最小的滤波器。
  • 移除下一层中相应的特征图和核以保持一致性。
  • 采用跨多个层的一次性裁剪和再训练策略以节省再训练时间。
  • 分析层和阶段对裁剪的敏感性以决定裁剪率,并对敏感层跳过裁剪。
  • 对于 ResNet,裁剪方式需尊重残差/捷径连接,使用投影捷径裁剪规则。
  • 比较独立裁剪与贪婪裁剪在多层裁剪中的方法以评估整体效果。

实验结果

研究问题

  • RQ1在常见CNN中,整体滤波器裁剪是否能够在不显著降低准确性的前提下显著降低 FLOPs?
  • RQ2哪些滤波器(按何标准)在裁剪时对输出准确性的影响最小?
  • RQ3跨多个层(与阶段跨层)裁剪如何影响网络性能,相对于逐层裁剪?
  • RQ4在保留快捷连接完整性的同时裁剪 ResNet 的残差块有哪些实际注意事项?
  • RQ5就有效性和数据相关性而言,滤波器级裁剪与基于激活的特征图裁剪相比如何?

主要发现

  • 裁剪小幅度的滤波器在 CIFAR-10 上的 VGG-16 可将 FLOPs 减少至最多 34%,在 ResNet-110 上可降低至最多 38%,再训练后接近原始准确率。
  • 在 CIFAR-10 的 VGG-16 上,基于 L1 范数的滤波器排序优于随机裁剪或裁剪最大滤波器的做法。
  • 许多层和阶段可以耐受大量裁剪,较深的阶段往往对裁剪更具弹性。
  • 对 ResNet 的残差块进行裁剪可以通过有针对性的策略(如基于捷径投影的裁剪)来在减少计算的同时保持准确性。
  • 一次性裁剪并随后的再训练可以恢复大部分丢失的准确性,相比逐层迭代裁剪减少了训练时间。
  • 本研究中,使用数据依赖统计的基于激活的特征图裁剪通常不如简单的基于 L1 的滤波器裁剪高效。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。