一、论文基本信息
论文题目:Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration
简称:FPGM
作者:Yang He、Ping Liu、Ziwei Wang、Zhilan Hu、Yi Yang
发表信息:CVPR 2019
论文链接:https://arxiv.org/abs/1811.00250
官方代码:https://github.com/he-y/filter-pruning-geometric-median
这篇论文发表于 CVPR 2019,官方 GitHub 仓库标注为CVPR 2019 Oral,并提供 PyTorch 实现。仓库中包含 ImageNet 上 ResNet 训练与剪枝、CIFAR-10 上 ResNet 剪枝、CIFAR-10 上 VGGNet 剪枝等脚本。
FPGM 的核心观点非常直接:过去很多 filter pruning 方法都依赖“smaller-norm-less-important”假设,即认为范数小的 filter 更不重要,应该优先剪掉。但论文指出,这个假设成立需要两个前提:第一,filter 范数分布差异要足够大;第二,最小范数要足够接近 0。现实网络中这两个条件并不总是满足。为了解决这个问题,FPGM 不再剪“小范数 filter”,而是剪“最容易被其他 filters 替代的冗余 filter”。
二、论文要解决的问题
在 FPGM 之前,filter pruning 中最常见的思路是基于范数排序。
例如前面讲过的Pruning Filters for Efficient ConvNets使用 L1 范数衡量 filter 重要性;SFP使用 Lp 范数选择低范数 filters 并进行 soft pruning。它们背后的共同假设是:
filter 范数越小, 该 filter 越不重要, 越适合被剪掉。FPGM 认为这个假设并不总是可靠。论文明确分析了 norm-based pruning 成功所依赖的两个条件:
条件一: 同一层 filters 的范数差异要足够大。 条件二: 最小范数 filters 的范数要足够接近 0。如果同一层 filters 的范数都比较接近,那么很难根据范数大小区分谁重要、谁不重要。如果某些 filter 的范数虽然相对较小,但绝对值并不接近 0,那么它们仍然可能对网络有明显贡献。论文在 ResNet-110 / CIFAR-10 和 ResNet-18 / ImageNet 的真实网络中观察到,小范数差异和大最小范数现象确实存在。
因此,FPGM 要解决的问题是:
能不能不再依赖“小范数 = 不重要”这个假设,而是从 filter 之间的冗余关系出发,剪掉那些最容易被其他 filters 表示的 filter?
三、核心思想
FPGM 的核心思想可以概括为一句话:
不要剪范数最小的 filter,而要剪最靠近该层 filter 集合几何中位数的 filter,因为这些 filter 位于 filter 分布中心,包含的是更容易被其他 filters 替代的公共信息。
这和 L1 / L2 / SFP 的思路有本质区别。
L1 / L2 / SFP: 根据 filter 自身范数判断重要性。 FPGM: 根据 filter 与同层其他 filters 的几何关系判断冗余性。也就是说,FPGM 不关心某个 filter 自己“大不大”,而关心它和其他 filters 是否太相似、是否太“居中”、是否容易被其他 filters 替代。
论文中的直觉是:
如果一个 filter 靠近同层 filters 的几何中心, 说明它包含的是大家都有的公共信息; 它不是独特的、不可替代的 filter; 删除它后,剩下的 filters 仍然可以近似表达它的信息。因此,FPGM 的剪枝标准不是:
less important而是:
most replaceable论文也明确写到,FPGM 选择的是贡献“最可替代”的 filters,而不是贡献相对较小的 filters。
四、方法细节
4.1 为什么 norm-based criterion 有问题?
范数剪枝的逻辑看似很自然:
filter 权重整体幅值小 ↓ 输出响应可能小 ↓ 对网络贡献可能小 ↓ 可以剪掉但 FPGM 指出,这个逻辑有两个隐含前提。
第一个前提是:同层 filters 的范数分布要拉得很开。
如果所有 filters 的范数都差不多,那么“最小范数 filter”和“中等范数 filter”之间的差距可能很小。此时只根据范数排序,很容易出现误判。
第二个前提是:最小范数本身要足够小,最好接近 0。
如果最小范数也很大,那么这些 filter 虽然是“相对最小”,但并不意味着它们的绝对贡献很小。论文特别强调,小范数 filter 可能只是“相对不大”,但仍然有正向贡献。
所以,FPGM 的批评点不是说范数剪枝完全没用,而是说:
范数剪枝有效, 需要网络中的 filter 范数分布满足特定条件; 但真实网络中这些条件不一定成立。4.2 几何中位数是什么?
几何中位数是一个经典的鲁棒中心估计。
给定一组点:
几何中位数定义为:
它表示:在空间中找一个点,使它到所有点的欧氏距离之和最小。
在 FPGM 中,每个 filter 都可以看成一个高维点。一个卷积 filter 的形状通常是:
把它展平后,就可以得到一个高维向量。这样,同一层的所有 filters 就构成了一组高维点。
于是,FPGM 可以在这一层的 filter 空间中寻找“中心点”,也就是几何中位数。论文正是用几何中位数来捕捉同一层 filters 的公共信息。
4.3 为什么靠近几何中位数的 filter 可以剪?
假设第 (i) 个卷积层有 (N_{i+1}) 个 filters:
FPGM 定义该层的几何中位数为:
其中:
如果某个 filter () 非常接近几何中位数:
那么它就位于该层 filter 分布的中心附近。
FPGM 的解释是:靠近几何中位数的 filter 代表的是同层 filters 的公共信息,而公共信息可以被剩余 filters 表示。因此,剪掉这些中心附近的 filter,对网络最终性能影响较小。论文也明确写到,靠近 GM 的 filters 可以被剩余 filters 表示,因此剪掉它们不会对模型性能造成明显负面影响。
这和范数剪枝的区别非常关键:
范数剪枝: 低范数 = 贡献小 = 可以剪。 FPGM: 靠近几何中心 = 冗余高 = 可以剪。4.4 实际实现:不直接求精确几何中位数
几何中位数本身是一个非平凡的计算几何问题。论文指出,精确或近似求解几何中位数可能有较高计算代价。
但在 filter pruning 中,我们最终要选择的是已有 filters 中的若干个,而不是空间中任意一个连续点。因此,FPGM 做了一个简化:
不直接求连续空间里的几何中位数,而是在已有 filters 中选择距离其他 filters 总距离最小的 filter。
也就是对每个 filter 计算:
然后选择最小的 filters 进行剪枝。
直观理解:
如果某个 filter 到所有其他 filters 的距离总和最小, 说明它处在该层 filters 的中心位置; 它不是最独特的 filter, 而是最“普通”、最容易被其他 filters 替代的 filter。所以 FPGM 的实际选择标准可以写成:
如果要剪多个 filters,就选择距离和最小的 Top-(m) 个 filters。
4.5 FPGM 的剪枝流程
FPGM 的算法流程和 SFP 有一定相似性:它不是只在训练完成后一次性剪枝,而是在训练过程中周期性执行 pruning 操作。
论文 Algorithm 1 的流程可以概括为:
输入: 训练数据 X 每层剪枝率 P_i 网络参数 W for epoch = 1 ... epoch_max: 1. 正常训练网络参数 W 2. 对每一个待剪卷积层: a. 计算该层 filters 两两距离 b. 对每个 filter 计算到其他 filters 的距离和 c. 选择距离和最小的 N_{i+1} P_i 个 filters d. 将这些 filters 置零 训练结束后: 根据最终置零 filters 构建 compact model论文 Algorithm 1 中明确写到:每个 epoch 更新模型参数,然后对每层找出满足公式的 (N_{i+1}P_i) 个 filters 并将其 zeroize,最后得到 compact model。
因此,FPGM 可以理解为:
训练过程中: 根据几何中位数思想持续压制冗余 filters。 训练结束后: 物理删除这些 filters,得到规则紧凑模型。4.6 FPGM-only 和 FPGM-mix
论文中有两个版本:
FPGM-only: 只使用几何中位数准则选择 filters。 FPGM-mix: 一部分 filters 用 FPGM 选择, 另一部分 filters 用 norm-based criterion 选择。例如论文中写到,FPGM-only 40% 表示某层 40% filters 都由 FPGM 准则选择;FPGM-mix 40% 则表示其中 30% filters 由 FPGM 选择,剩余 10% filters 由 norm-based criterion 选择。
为什么要设计 FPGM-mix?
因为论文并不是完全否定范数准则。某些层中,如果范数分布确实满足“大范数差异、最小范数接近 0”的条件,那么范数准则仍然有用。因此,FPGM 可以作为范数剪枝的补充。
但论文实验也显示,在 ImageNet 上 FPGM-only 和 FPGM-mix 差异不明显;在 CIFAR-10 上,FPGM-mix 有时会略好。论文解释可能是 CIFAR-10 某些层更满足 norm-based criterion 的条件,而 ImageNet 预训练网络中这些条件不那么稳定。
4.7 FPGM 与 SFP 的关系
FPGM 和 SFP 都来自 Yang He 等人的剪枝路线,而且官方 FPGM 代码也说明其 PyTorch 实现基于 soft-filter-pruning 仓库。
但两者关注点不同。
SFP 关注: 被剪 filters 是否还能继续更新? 剪枝是否可以软化,避免不可逆误删? FPGM 关注: 选择哪些 filters 更合理? 是否可以摆脱小范数假设?也就是说,SFP 主要改进的是剪枝过程,FPGM 主要改进的是剪枝准则。
二者可以组合理解:
SFP: 低范数 filters 先置零,但后续仍可更新。 FPGM: 靠近几何中位数的冗余 filters 先置零, 后续训练中继续调整模型。六、实验设置
6.1 数据集
论文主要在两个图像分类 benchmark 上验证 FPGM:
CIFAR-10 ILSVRC-2012 / ImageNet论文中说明,CIFAR-10 包含 60,000 张 32×32 彩色图像,其中 50,000 张训练图像和 10,000 张测试图像;ILSVRC-2012 包含 1.28M 训练图像和 50k 验证图像,共 1,000 类。
6.2 网络结构
论文在单分支网络和多分支网络上都进行了实验:
单分支网络: VGGNet 多分支网络: ResNet在 CIFAR-10 上,论文测试了 VGGNet,以及 ResNet-20、ResNet-32、ResNet-56、ResNet-110。在 ImageNet 上,论文测试了 ResNet-18、ResNet-34、ResNet-50 和 ResNet-101。
6.3 剪枝设置
FPGM 的剪枝设置比较简单:论文中对所有 weighted layers 使用相同剪枝率,因此只需要一个超参数 (P_i=P) 来平衡精度和加速。剪枝操作在每个训练 epoch 结束时执行。
这点很重要。很多剪枝论文需要复杂的 sensitivity analysis 来决定每层剪多少,而 FPGM 论文强调,在它的设置中不依赖复杂敏感性分析也可以取得较好效果。
6.4 从头训练和预训练剪枝
论文同时比较了两种设置:
pruning from scratch: 从随机初始化开始训练,并在训练过程中剪枝; 不额外 fine-tuning。 pruning from pretrained model: 从预训练模型开始剪枝; 降低学习率进行 fine-tuning。论文明确说明,从头剪枝时使用正常训练 schedule,不额外 fine-tuning;从预训练模型剪枝时,将学习率降为原始学习率的十分之一,并使用相同训练 epoch 数进行公平比较。
七、实验结果解读
7.1 CIFAR-10 / ResNet:FPGM 在较高 FLOPs 剪除下保持较小精度损失
在 CIFAR-10 上,FPGM 测试了 ResNet-20、32、56、110,并使用 30% 和 40% 两种剪枝率。论文报告,在 ResNet-56 上剪掉约 52.6% FLOPs 时,FPGM 的 accuracy drop 为 0.66%,而 SFP 为 1.33%。对于 ResNet-110,FPGM-only 40% 在约 52.3% FLOPs 剪除下,pruned accuracy 为 93.74%,相比 baseline accuracy 93.68% 反而略有提升。
这个结果说明,FPGM 的“剪冗余 filter”策略在高剪枝率下比单纯低范数剪枝更稳。
7.2 CIFAR-10 / VGGNet:FPGM 同样适用于单分支网络
论文也在 CIFAR-10 的 VGGNet 上测试 FPGM。对于预训练 VGGNet,FPGM 在相同 34.2% FLOPs 削减下,pruned accuracy 为 93.24%,优于 PFEC 的 93.22%;在从头训练剪枝设置中,FPGM 也能达到与 PFEC 相当甚至更好的结果。
这说明 FPGM 不只是为 ResNet 设计,也可以用于普通串行卷积网络。
7.3 ImageNet / ResNet:FPGM 能扩展到大规模任务
在 ILSVRC-2012 上,论文测试了 ResNet-18、34、50、101。论文摘要中给出的代表性结果是:在 ResNet-101 上,FPGM 可以减少超过 42% FLOPs,并且没有 top-5 accuracy drop。
论文还报告了理论加速和真实推理加速的对比。例如在 GTX1080 GPU、batch size 为 64 的前向推理测试中,ResNet-101 的 forward time 从 219.70 ms 降到 147.45 ms,真实加速约 32.9%,理论 FLOPs 削减约 42.2%。
这个结果也提醒我们:FLOPs 下降不等于真实延迟等比例下降。真实加速还受到 IO、缓存、BLAS/cuDNN 实现效率等因素影响。
7.4 消融实验:剪枝间隔影响不大
FPGM 的默认设置是在每个 epoch 结束时执行剪枝。论文在 ResNet-110 / CIFAR-10 上测试了不同 pruning interval,从 1 个 epoch 到 10 个 epoch。结果显示,准确率波动小于 0.3%,说明 FPGM 对这个超参数不太敏感。
这说明 FPGM 的剪枝准则比较稳定,不需要非常频繁或非常精细地调整剪枝间隔。
7.5 消融实验:剪枝也可能带来正则化效果
论文还测试了 ResNet-110 在不同 FLOPs 削减比例下的表现。结果显示,当 pruned FLOPs 为 18% 和 40% 时,剪枝模型性能甚至超过 baseline。作者认为这说明 FPGM 可能具有一定正则化效果。
这个现象和 SFP、Network Slimming 中的观察有相似之处:适度剪枝不仅减少计算,还可能缓解过拟合或冗余表达。
7.6 消融实验:距离度量可以替换
FPGM 默认使用 L2 距离计算 filter 之间的距离。论文也尝试用 L1 距离和 cosine distance 替换。结果显示,在 ResNet-110 / CIFAR-10 上,L1 距离略好于 L2 距离,而 cosine distance 略差。
这说明 FPGM 的核心不一定局限于 L2 距离,而是“通过 filter 间关系衡量冗余性”这一思想。
八、方法优点
8.1 反思了小范数剪枝的根本假设
FPGM 最大的贡献不是简单提出一个新公式,而是指出:
小范数 filter 不一定不重要。这对 filter pruning 研究非常关键。因为早期很多方法都把范数大小当作重要性依据,而 FPGM 说明这个依据有明确适用条件。
8.2 从“重要性”转向“冗余性”
FPGM 的判断标准不是“哪个 filter 贡献最小”,而是“哪个 filter 最容易被替代”。
这个视角很有价值:
不重要: 这个 filter 自己贡献小。 冗余: 这个 filter 的信息可以由其他 filters 表示。在过参数化 CNN 中,冗余性往往比单个 filter 的范数更稳定。
8.3 不依赖训练数据计算重要性
FPGM 是一种 data-independent filter pruning 方法。它只需要模型权重本身,不需要额外跑训练数据来统计激活或重构误差。论文也将 filter pruning 方法区分为 data-dependent 和 data-independent,并指出 data-independent 方法因为不需要使用训练数据来决定剪枝 filter,所以计算更高效。
这使得 FPGM 比 ThiNet、Channel Pruning、DCP 这类依赖数据或激活的剪枝方法更轻量。
8.4 支持从头训练剪枝
FPGM 可以从 scratch 开始训练并剪枝,也可以从预训练模型开始剪枝。对于从头剪枝设置,论文使用正常训练 schedule,不额外 fine-tuning。
这和 SFP 的思想一脉相承,也与后来的Rethinking the Value of Network Pruning形成呼应:剪枝不一定只是在预训练大模型之后做,也可以融入训练过程。
8.5 最终得到规则稠密小模型
FPGM 属于结构化 filter pruning。最终删除的是整个 filters 和对应 feature maps,因此得到的是规则的紧凑网络,而不是非结构化稀疏矩阵。
这意味着它可以更自然地减少参数量、FLOPs,并在常规硬件上获得实际推理加速。论文也强调,与 weight pruning 产生非结构化稀疏不同,filter pruning 会留下规则结构,更适合利用高效 BLAS 库。
九、方法局限
9.1 仍然需要给定每层剪枝率
FPGM 的剪枝准则可以判断某一层哪些 filters 更冗余,但它并不自动决定每一层应该剪多少。
论文中通常对 weighted layers 使用相同剪枝率。这样实现简单,但不一定是全局最优。不同层的冗余程度不同,统一剪枝率可能会对某些敏感层造成更大影响。
9.2 只基于权重空间,不直接看任务损失
FPGM 不需要数据,这是优点,也是局限。
它只根据 filters 在权重空间中的几何关系判断冗余,而没有直接考虑:
输入数据分布 激活响应 梯度敏感性 最终分类损失 硬件延迟因此,一个 filter 在权重空间中“靠近中心”,不一定严格等价于它对任务最不重要。
9.3 两两距离计算仍有开销
对于某一层,如果有 (N) 个 filters,FPGM 需要计算 filters 之间的两两距离。复杂度大致与 (N^2) 相关。
对于普通 CNN 这通常可以接受,但如果网络非常宽,或者剪枝对象扩展到 Transformer MLP hidden neurons / attention heads,就需要更高效的近似或分块计算。
9.4 对残差结构的真实压缩仍需工程处理
虽然训练阶段可以 zeroize filters,但最终要得到真正 compact model,还需要同步处理:
当前层输出 filters 下一层输入 channels BatchNorm 参数 残差 shortcut / projection 分支结构通道对齐论文在 ImageNet ResNet 实验中也说明,为了简化,不剪 projection shortcuts。
因此,FPGM 的思想简单,但完整部署仍然需要结构依赖处理。
9.5 对 Transformer / LLM 不能直接照搬
FPGM 面向 CNN filters。对于 ViT、LLM、VLM,剪枝对象可能变成:
attention heads MLP hidden dimensions tokens layers KV cache vision tokens“几何中位数选择冗余单元”的思想可以借鉴,但原始公式需要重新定义剪枝单元和距离度量。
十、后续影响
FPGM 对剪枝研究的影响主要体现在三个方面。
第一,它系统反思了small-norm-less-important假设。很多后续剪枝论文都会指出,仅用 L1/L2 范数衡量通道重要性并不充分,而 FPGM 是这个批评脉络中非常典型的一篇。
第二,它把剪枝准则从“个体重要性”转向“群体冗余性”。这对后续基于相似性、聚类、相关性、几何结构的剪枝方法有明显启发。
第三,它延续了 SFP 的训练中剪枝思想,但将选择准则从低范数改为几何冗余。因此,FPGM 可以看作是 SFP 之后对 filter pruning criterion 的进一步改进。
从专栏脉络上看,FPGM 可以放在这里:
Pruning Filters for Efficient ConvNets ↓ ThiNet ↓ Channel Pruning ↓ Network Slimming ↓ NISP ↓ DCP ↓ SFP ↓ FPGM ↓ Rethinking the Value of Network Pruning如果说 SFP 主要回答的是:
剪掉的 filter 是否应该继续更新?那么 FPGM 回答的是:
到底应该剪掉低范数 filter, 还是剪掉最冗余、最可替代的 filter?这就是 FPGM 的核心价值。
十一、一句话总结
《Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration》指出小范数剪枝依赖不稳定的范数分布假设,并提出通过几何中位数寻找同层中最冗余、最容易被其他 filters 替代的 filter,从而将 filter pruning 的核心从“低重要性剪枝”推进到“高冗余剪枝”。