模型剪枝经典论文精读:Learning Filter Pruning Criteria for Deep Convolutional Neural Networks Acceleration

发布时间:2026/7/14 11:44:26
模型剪枝经典论文精读:Learning Filter Pruning Criteria for Deep Convolutional Neural Networks Acceleration 一、论文基本信息论文题目Learning Filter Pruning Criteria for Deep Convolutional Neural Networks Acceleration简称LFPC作者Yang He、Yuhang Ding、Ping Liu、Linchao Zhu、Hanwang Zhang、Yi Yang发表信息CVPR 2020论文链接官方代码这篇论文发表于CVPR 2020CVF 页面显示其收录于Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020, pp. 2009–2018。论文提出Learning Filter Pruning CriteriaLFPC核心思想是现有 filter pruning 方法通常人工指定一个剪枝准则例如-norm、-norm 或 FPGM然后把这个准则用于所有层但不同层的 filter 分布和功能不同因此不应该所有层都使用同一个剪枝准则。LFPC 的核心模块是Differentiable Criteria SamplerDCS。它为每一层学习一个剪枝准则分布通过验证集 loss 来优化这个分布最终为不同层自动选择合适的剪枝准则。论文在 ImageNet 上报告LFPC 在 ResNet-50 上减少超过 60% FLOPsTop-5 accuracy loss 只有 0.83%。二、论文要解决的问题在这篇论文之前很多 filter pruning 方法已经提出了不同的剪枝准则。例如L1 Filter Pruning: 剪掉 L1 norm 小的 filters。 SFP: 使用 L2 norm 选择 filters并采用 soft pruning。 FPGM: 剪掉靠近几何中位数的冗余 filters。 HRank: 剪掉低 rank feature map 对应的 filters。 Gate Decorator: 用 gate 的 Taylor loss 变化估计 filter 重要性。这些方法的共同点是先人为设计一个剪枝准则然后把这个准则应用到网络中。LFPC 认为这种方式有两个主要问题。第一个问题是不同层的 filter 分布不同固定一个准则不一定适合所有层。论文指出低层通常提取线条、点、曲线等低级特征高层则提取更抽象的语义特征。因此不同层的 filter 分布和功能不同统一使用同一个 pruning criterion 并不合理。例如浅层 filters: 可能更适合用 magnitude-based criterion 例如 L1 / L2 norm。 深层 filters: 可能更适合用 relation-based criterion 例如 geometric median。第二个问题是很多方法是 layer-by-layer pruning逐层独立处理忽略了层与层之间的协同关系。传统剪枝流程通常是剪第 1 层 ↓ 再剪第 2 层 ↓ 再剪第 3 层 ↓ 每层独立做选择但 CNN 的最终预测是所有层共同作用的结果。论文指出逐层独立剪枝无法充分考虑所有层对最终预测的协同贡献因此更希望在剪枝准则选择时能够同时考虑所有层。所以LFPC 要解决的问题可以总结为不是问 应该设计一个什么剪枝准则 而是问 能不能让网络自动学习 哪一层适合 L1 哪一层适合 L2 哪一层适合 FPGM这就是Learning Filter Pruning Criteria这个题目的核心含义。三、核心思想LFPC 的核心思想可以概括为一句话把“选择剪枝准则”本身变成一个可学习问题为每一层学习一个剪枝准则概率分布然后通过验证集 loss 反向更新这个分布。也就是说LFPC 不再人工规定所有层都用 L1 norm也不再人工规定所有层都用 FPGM而是为每一层学习第 1 层 L1 概率 0.8 L2 概率 0.1 GM 概率 0.1 第 20 层 L1 概率 0.2 L2 概率 0.2 GM 概率 0.6 第 50 层 L1 概率 0.1 L2 概率 0.1 GM 概率 0.8最终每一层选择概率最大的准则进行实际剪枝。整体流程如下输入预训练网络 ↓ 准备候选剪枝准则集合 例如 L1 / L2 / GM ↓ 为每一层初始化一个 criteria probability ↓ 用 Gumbel-Softmax 进行可微采样 ↓ 每个准则生成一个候选剪枝版本 ↓ 对候选剪枝输出做 weighted sum ↓ 计算 validation loss ↓ 反向更新每层的 criteria probability ↓ 训练完成后每层选择概率最大的准则 ↓ 按学习到的准则剪枝 ↓ fine-tuning 得到最终模型论文把这个可学习采样器称为Differentiable Criteria SamplerDCS。DCS 会初始化每一层对所有候选准则的概率分布然后通过 criteria forward 得到 criteria feature map并用 criteria loss 作为监督信号反向更新准则概率。四、方法细节4.1 剪枝目标对于第 (l) 个卷积层设它的 filter 集合为给定一个剪枝准则可以得到每个 filter 的重要性分数然后保留 top-(k) 个 filters传统方法的问题是通常是人工指定的而且所有层都一样。LFPC 的目标是学习也就是为每一层学习合适的剪枝准则。4.2 为什么不直接学习 filter 子集如果第 (l) 层有个 filters要保留个那么可能的选择数量是这个空间非常大。论文举例说明如果从 64 个 filters 中剪掉 10 个也就是选择保留 54 个组合数量会非常巨大。直接搜索 filter 子集基本不可行。所以 LFPC 不直接学习具体保留哪些 filters而是学习这一层应该使用哪种已有剪枝准则这样搜索空间从巨大组合空间变成有限准则空间criteria space {L1, L2, GM, ...}论文实验中主要使用三个候选准则L1-norm L2-norm Geometric Median论文也说明LFPC 框架可以扩展到更多剪枝准则。4.3 Differentiable Criteria SamplerDCS假设候选准则数量为 (S)。对于第 (l) 层LFPC 定义一个可学习参数它表示这一层对 (S) 个候选剪枝准则的偏好。第 (i) 个准则被选择的概率为如果直接从这个离散分布里采样就无法反向传播。因此 LFPC 使用Gumbel-Softmax进行可微采样。论文给出的形式为其中是 softmax temperature。论文指出当时分布接近均匀当时采样结果趋近 one-shot categorical sample。这一步是 LFPC 能够“学习剪枝准则”的关键。直观理解普通采样 只能选一个准则不可导。 Gumbel-Softmax 近似采样同时保留梯度。4.4 Criteria Forward每个准则生成一个剪枝版本对于第 (l) 层每个候选准则都会生成一个剪枝后的 filter 集合。记第 (s) 个准则生成的保留 filter 集合为也就是说同一层会得到 (S) 个候选剪枝版本用 L1 剪出来一个版本 用 L2 剪出来一个版本 用 GM 剪出来一个版本 ……然后这些版本会分别进行卷积得到不同的输出 feature map。论文把这些输出再按照准则概率做Aligned Weighted SumAWS。4.5 Aligned Weighted SumAWSLFPC 不能简单把不同准则产生的输出 feature maps 直接相加因为不同准则保留的 filter index 可能不一样。例如L1 保留 filters: [1, 3, 5] L2 保留 filters: [2, 3, 6] GM 保留 filters: [1, 4, 6]如果直接相加会导致不同语义位置的通道混在一起。因此论文提出Align操作对不同准则保留的通道进行对齐然后再加权求和。AWS 可以写成论文解释说Align 操作可以避免不同通道信息的错误干扰。这一步可以理解为不同准则各自剪出一个候选子层 ↓ 每个候选子层产生输出 ↓ 根据当前准则概率加权 ↓ 对齐通道后合成一个 criteria feature map这样criteria probability 就可以参与前向传播并且可以通过 loss 反向更新。4.6 Criteria Loss用验证集学习准则LFPC 使用验证集 loss 来学习。论文将目标写成一个类似双层优化的问题其中也就是说内层 在训练集上优化 criteria network。 外层 用验证集 loss 更新 criteria parameters alpha。为了进一步考虑计算成本论文在 validation loss 中加入计算成本惩罚论文说明通过这个目标可以在不同计算约束下得到优化后的准则参数 (\alpha)。4.7 DCS 训练完成后如何剪枝训练 DCS 完成后对于每一层LFPC 选择概率最大的准则第 l 层 选择 argmax_s p_s^(l)得到最终准则集合然后按这些准则进行常规剪枝再对剪枝模型进行 retraining / fine-tuning。论文 Algorithm 1 中也明确写到训练 criteria parameters 后得到最终 criteria set (T)执行 pruning然后重新训练 pruned model。所以 LFPC 的最终流程是训练 DCS 学每层该用哪个准则。 真正剪枝 每层使用学到的准则剪 filters。 最后 fine-tuning 恢复剪枝后模型精度。五、关键公式5.1 Filter scoring5.2 Top-k pruning5.3 Criteria probability5.4 Gumbel-Softmax sampling5.5 Candidate pruned layer under criterion (s)5.6 Aligned Weighted Sum5.7 Criteria learning objective5.8 Validation loss with computation penalty六、实验设置LFPC 在三个图像分类 benchmark 上验证CIFAR-10 CIFAR-100 ILSVRC-2012 / ImageNet论文实验主要集中在 ResNet因为 ResNet 有 shortcut 结构、冗余更少相比 VGG 更难剪。CIFAR 实验中使用 ResNet-32、ResNet-56、ResNet-110ImageNet 实验中使用 ResNet-50。DCS 训练时论文主要选择三个 weight-based criteria 作为候选准则L1-norm L2-norm Geometric Median选择 weight-based criteria 的原因是效率较高。论文也说明LFPC 框架可以扩展到更多准则。训练细节上论文将训练集一半随机划分为 validation set 用于 criteria learningcriteria parameters 使用 Adam 优化learning rate 为 0.001weight decay 为 0.001(\lambda_{comp}) 设为 2。七、实验结果解读7.1 ResNet / CIFAR-10自动准则选择优于固定准则在 CIFAR-10 上LFPC 测试了 ResNet-32、ResNet-56 和 ResNet-110。论文报告在 ResNet-32 上MIL 获得 31.2% speedup ratioaccuracy drop 为 1.59%而 LFPC 获得 52.6% speedup ratioaccuracy drop 只有 0.51%。在 ResNet-56 上相近 FLOPs 剪枝时LFPC 比 SFP 高 1.07% accuracy在 ResNet-110 上LFPC 获得 60.3% speedup ratio且 accuracy 反而有 0.11% 提升。这说明 LFPC 的关键假设是成立的不同层适合不同剪枝准则。如果所有层统一使用 L1、L2 或 GM都可能不是最优让每一层自动选择准则可以得到更好的剪枝结构。7.2 Learned Criteria 可视化浅层偏 Lp高层偏 GM论文对 ResNet-56 / CIFAR-10 的 learned criteria 进行了可视化。结果显示低层更倾向于选择 (L_1)-norm 或 (L_2)-norm高层更多选择 geometric median。论文解释说高层 filters 更倾向于提取语义信息feature activations 之间语义相关性更强因此 relation-based criterion例如 GM比 magnitude-based criterion 更适合高层。这个观察非常重要。它给出了一个经验结论低层 适合 magnitude-based pruning。 高层 更适合 relation-based pruning。这也解释了为什么固定一个准则用于所有层不够合理。7.3 CIFAR-100相近 FLOPs 下精度明显更高在 CIFAR-100 上LFPC 使用 ResNet-56 进行测试。论文表 4 中SFP 在 52.6% FLOPs reduction 下 accuracy drop 为 2.61%FPGM 在相同 52.6% FLOPs reduction 下 accuracy drop 为 1.75%LFPC 在 51.6% FLOPs reduction 下 accuracy drop 只有 0.58%。这个结果说明任务更难时 自适应选择剪枝准则的优势更明显。CIFAR-100 类别更多、分类更难因此剪枝准则是否合适会更影响精度。7.4 ResNet-50 / ImageNet减少 60.8% FLOPsTop-5 下降 0.83%ImageNet 是更有说服力的实验。论文表 3 中LFPC 在 ResNet-50 上减少 60.8% FLOPsTop-1 从 76.15% 到 74.46%Top-5 从 92.87% 到 92.04%Top-5 accuracy drop 为 0.83%。相比一些减少 50% FLOPs 左右的方法LFPC 在更高 FLOPs reduction 下仍保持较好的 Top-5 accuracy。论文也指出对于预训练 ResNet-50LFPC 在剪掉 60.8% FLOPs 时达到 92.04% Top-5 accuracy而 CP、LFC、ELR 等方法在剪掉更少 FLOPs 时 Top-5 accuracy 反而更低。这说明 LFPC 不只是 CIFAR 上有效也可以扩展到大规模 ImageNet。7.5 Adversarial Criteria 实验DCS 能避开坏准则论文还做了一个很有意思的实验把“反向准则”加入候选集合。例如普通 norm-based pruning 是保留 norm 大的 filtersadversarial norm criterion 则保留 norm 小的 filters这显然不是一个好的剪枝准则。实验结果显示在 ResNet-56 / CIFAR-10 中DCS 学到的准则里 adversarial criteria 只占很小比例约 16.4%。论文认为这说明 LFPC 不只是随机选准则而是能通过 validation loss 避开明显不合适的准则。这个实验增强了 LFPC 的说服力如果候选准则里混入坏准则 DCS 也倾向于避开它们。八、方法优点8.1 从“设计准则”转向“学习准则”LFPC 最大贡献是把 filter pruning 的问题从应该设计什么剪枝准则推进到能不能自动学习每一层该用什么准则这比 L1、FPGM、HRank 这类单一准则方法更灵活。8.2 考虑不同层的 filter 分布差异论文明确指出不同层具有不同 filter distribution 和不同功能因此同一个 criterion 不一定适合所有层。LFPC 针对每一层学习 criteria probability正好解决这个问题。8.3 DCS 可微能端到端更新通过 Gumbel-SoftmaxDCS 可以让离散的准则选择过程近似可微从而用 validation loss 直接优化 criteria parameters。这比纯粹人工尝试不同准则更高效。8.4 可以同时考虑所有层传统 layer-by-layer pruning 往往逐层独立处理。LFPC 的 criteria loss 会经过整个网络因此准则概率更新时能够同时考虑所有层对最终预测的贡献。论文也强调LFPC 可以在剪枝过程中同时考虑所有层和所有剪枝准则。8.5 框架可扩展论文实验中使用了 L1、L2 和 GM 三个候选准则但 LFPC 本身可以扩展到更多 criteria例如activation-based criterion Taylor criterion rank-based criterion redundancy-based criterion gradient-based criterion因此它更像是一个criteria selection framework而不是一个固定剪枝准则。九、方法局限9.1 仍然依赖候选准则集合LFPC 不是从零发明一个新准则而是在候选准则集合中学习选择。如果候选集合里没有合适准则那么 DCS 再怎么学习也只能在有限选项里选。也就是说LFPC 的上限受限于criteria space 的质量9.2 训练流程比单一准则更复杂相比 L1、FPGM 这类方法LFPC 需要额外训练 DCS。流程变成预训练模型 ↓ 训练 DCS ↓ 学习每层 criteria distribution ↓ 按最终 criteria set 剪枝 ↓ fine-tuning这比直接用 L1 排序剪枝更复杂。9.3 需要验证集LFPC 使用 validation loss 来更新 criteria parameters因此需要从训练数据中划分 validation set。论文实验中随机划分一半训练集作为验证集用于 Eq. 11。如果数据量较小划分验证集可能影响训练如果验证集分布不稳定criteria learning 也可能受影响。9.4 主要实验仍集中在 ResNet 分类任务论文主要在 CIFAR-10、CIFAR-100、ImageNet 的 ResNet 上验证。虽然 ResNet 是较难剪的网络但 LFPC 在检测、分割、移动端网络、Transformer 等场景下还需要重新验证。9.5 对 Transformer / LLM 不能直接照搬LFPC 面向 CNN filter pruning。对于 ViT、LLM、VLM剪枝对象可能是attention heads MLP hidden neurons tokens layers vision tokens KV cache不过 LFPC 的思想可以迁移准备多个候选剪枝准则 ↓ 为不同层 / 模块学习准则分布 ↓ 用验证集 loss 更新准则选择 ↓ 最终为每个模块选择合适剪枝准则也就是说原始实现不能直接用但“学习准则选择”的思想很有迁移价值。十一、一句话总结《Learning Filter Pruning Criteria for Deep Convolutional Neural Networks Acceleration》提出 LFPC通过 Differentiable Criteria Sampler 和 Gumbel-Softmax 为每一层学习剪枝准则概率分布使网络能够根据不同层的 filter 分布自适应选择 L1、L2、Geometric Median 等 pruning criteria从而把 filter pruning 从“人工设计单一准则”推进到“自动学习层级剪枝准则”。