模型剪枝经典论文精读:Rethinking the Value of Network Pruning

一、论文基本信息

论文题目:Rethinking the Value of Network Pruning

作者:Zhuang Liu、Mingjie Sun、Tinghui Zhou、Gao Huang、Trevor Darrell

发表信息:ICLR 2019

论文链接:arXiv / OpenReview

官方代码:https://github.com/Eric-mingjie/rethinking-network-pruning

这篇论文发表于 ICLR 2019,论文作者包括 Zhuang Liu、Mingjie Sun、Tinghui Zhou、Gao Huang 和 Trevor Darrell。官方代码仓库说明其包含论文复现实验代码和训练好的 ImageNet 模型,并且论文对应 ICLR 2019。

这篇论文的核心观点非常具有冲击力:对于许多结构化剪枝方法,剪枝后继承原始大模型权重并 fine-tune,并不一定比用随机初始化重新训练同一个剪枝结构更好。换句话说,很多时候真正有价值的不是"被保留下来的重要权重",而是"剪枝得到的网络结构"。论文摘要明确指出,作者在多种结构化剪枝方法中观察到,fine-tuning 剪枝模型通常只能达到与随机初始化重新训练相当甚至更差的效果。


二、论文要解决的问题

在这篇论文之前,网络剪枝通常默认采用一个三阶段流程:

复制代码
1. 先训练一个大的过参数化模型;
2. 根据某种重要性准则剪掉冗余参数、通道或 filter;
3. 继承未剪掉的权重,对剪枝后的模型进行 fine-tuning。

这个流程背后有两个常见假设。

第一个假设是:大模型是必要的。因为大模型表达能力更强,先训练大模型,再从中剪掉冗余部分,应该比直接训练小模型更好。

第二个假设是:被保留下来的权重很重要。剪枝算法之所以要设计复杂的重要性指标,就是为了找出"重要权重"或"重要通道",然后继承这些权重继续 fine-tune。

这篇论文要重新审视的正是这两个假设:

复制代码
剪枝真正有价值的部分到底是什么?

是大模型中继承下来的重要权重?

还是剪枝算法找到的网络结构?

论文指出,传统剪枝流程通常认为大模型训练、剪枝准则和继承权重都很重要,但作者的大量实验显示,对于结构化剪枝方法,这些直觉并不总是成立。


三、核心思想

这篇论文的核心思想可以概括为一句话:

不要只比较"剪枝 + fine-tuning"和原始大模型,还必须比较"剪枝结构从头训练"的结果。

过去很多剪枝论文的实验逻辑是:

复制代码
原始大模型
    ↓
剪枝
    ↓
fine-tuning
    ↓
剪枝模型精度接近原模型
    ↓
说明剪枝方法有效

但这篇论文提出,这样的实验不够严格。因为即使剪枝模型表现不错,也不能说明"继承原始权重"有价值。我们还应该问:

复制代码
如果我只保留剪枝后的结构,
把权重全部随机初始化,
然后从头训练,
它会不会一样好,甚至更好?

作者的实验结论是:在很多结构化剪枝方法中,答案是"会"。

于是,论文把剪枝方法的价值拆成两个部分:

复制代码
1. 权重价值:
   剪枝后继承的原始权重是否真的有用?

2. 结构价值:
   剪枝算法找到的通道数、层宽度、稀疏模式是否真的有用?

论文最重要的结论是:

复制代码
对于很多结构化剪枝方法,结构比权重更重要。

这也是标题中 "Rethinking the Value" 的真正含义:重新思考网络剪枝的价值到底来自哪里。


四、方法细节

4.1 对比对象:fine-tune vs train from scratch

论文核心实验不是提出新的 pruning criterion,而是重新设计评估方式。

对于一个已经剪枝得到的模型,作者比较三种训练方式:

复制代码
Fine-tuned:
    从大模型继承未剪掉的权重,然后 fine-tuning。

Scratch-E:
    使用剪枝后的网络结构,随机初始化权重,
    训练与原始大模型相同的 epoch 数。

Scratch-B:
    使用剪枝后的网络结构,随机初始化权重,
    训练与原始大模型相同的计算预算。

这里的 Scratch-E 和 Scratch-B 是理解论文的关键。

Scratch-E 关注的是训练轮数是否相同。

Scratch-B 关注的是计算预算是否相同。

论文指出,在多数情况下,Scratch-E 已经足够与 fine-tuning 相当;在部分情况下,Scratch-B 可以进一步保证比较的公平性。作者也说明,为了保持实验接近原论文,如果原剪枝方法有公开训练设置,就沿用原实现,否则对较简单方法进行复现。


4.2 两类结构化剪枝:预定义结构与自动发现结构

论文把剪枝方法分成两类。

第一类是 predefined target architecture,也就是目标结构预先由人指定。例如,每一层都剪掉 50% channels。不管具体剪掉哪些通道,最后每一层剩下多少通道是确定的。

第二类是 automatically discovered target architecture,也就是目标结构由剪枝算法自动决定。例如,某些层剪得多,某些层剪得少,最后形成一个非均匀的通道分布。

这一区分非常重要。因为对于预定义结构,如果最后结构本来就是人工指定的,那么我们甚至可以跳过整个"训练大模型 → 剪枝 → fine-tuning"流程,直接训练这个小结构。论文 Figure 2 也专门区分了 predefined 与 automatically discovered target architectures。

可以这样理解:

复制代码
预定义结构剪枝:
    剪枝算法主要决定哪些权重要继承;
    但最终网络宽度是人已经定好的。

自动结构剪枝:
    剪枝算法不仅决定哪些权重要继承,
    还决定每层最终保留多少通道。

因此,这篇论文对两类方法的结论略有不同。


4.3 对预定义结构剪枝的重新解释

对于预定义结构剪枝,例如每层固定剪掉一定比例的 filters,论文的结论很直接:

如果从头训练剪枝后的结构就能达到 fine-tuning 的效果,那么完整剪枝流程就不是必要的。

例如 L1-norm Filter Pruning、ThiNet、Channel Pruning 等方法,很多实验都预先定义了目标剪枝比例。既然目标结构已经确定,那么真正需要检验的是:

复制代码
这个结构本身是不是好?
继承原始权重是不是必要?

论文实验显示,在许多这种设定下,随机初始化训练剪枝后的结构可以达到与 fine-tuning 相同甚至更好的结果。


4.4 对自动结构剪枝的重新解释

对于自动结构剪枝,例如 Network Slimming,情况更有意思。

这类方法确实需要先训练一个大模型,因为剪枝算法要通过训练过程或重要性指标自动决定每层保留多少通道。此时剪枝流程的价值可能仍然存在,但价值不一定是"继承权重",而是:

复制代码
找到一个高效的网络结构。

论文指出,对于自动结构化剪枝,训练剪枝结构本身从头开始也常常能取得与 fine-tuning 相当甚至更好的结果。这说明剪枝算法更像是一种 architecture search,而不是简单的 weight selection。

这也是这篇论文非常关键的视角转变:

复制代码
传统理解:
    pruning = 找重要权重

本文观点:
    structured pruning = 找高效结构

4.5 为什么这篇论文很重要?

这篇论文并没有否定剪枝。

它否定的是一种不严谨的实验结论:

复制代码
剪枝模型精度高
≠
继承权重很有价值
≠
剪枝准则真的找到了不可替代的重要权重

如果一个剪枝后的结构从随机初始化开始训练,也能达到同样精度,那么我们就不能把最终性能完全归功于"剪枝保留的重要权重"。

更合理的解释是:

复制代码
剪枝方法可能找到了一个不错的小网络结构。

这使得剪枝研究必须引入更强的 baseline:

复制代码
同样结构,从头训练。

五、关键公式与实验比较方式

这篇论文不是公式驱动的剪枝方法,因此没有像 ThiNet、Channel Pruning 或 Network Slimming 那样的核心优化公式。它的关键在于实验对照。

5.1 传统剪枝流程

复制代码
W_large = Train(A_large)

A_pruned, W_pruned = Prune(A_large, W_large)

W_finetuned = FineTune(A_pruned, W_pruned)

其中:

  • (A_{large}):原始大模型结构;

  • (W_{large}):大模型训练得到的权重;

  • (A_{pruned}):剪枝后的结构;

  • (W_{pruned}):从大模型继承下来的未剪权重;

  • (W_{finetuned}):fine-tuning 后的权重。

传统剪枝论文通常报告的是:

复制代码
Accuracy(A_pruned, W_finetuned)

5.2 本文提出的关键 baseline

论文要求额外比较:

复制代码
W_scratch = Train(A_pruned, random initialization)

也就是:

复制代码
Accuracy(A_pruned, W_scratch)

然后比较:

复制代码
Accuracy(A_pruned, W_finetuned)
vs
Accuracy(A_pruned, W_scratch)

如果:

复制代码
Accuracy(A_pruned, W_scratch)
≥
Accuracy(A_pruned, W_finetuned)

那么说明继承大模型权重并不是必要条件。


5.3 结构价值与权重价值

这篇论文可以抽象成下面这个判断:

复制代码
如果剪枝结构从头训练也很好:
    说明结构有价值。

如果继承权重明显优于从头训练:
    说明权重也有价值。

而论文在大量结构化剪枝实验中观察到的现象是:

复制代码
结构价值明显;
权重价值并不稳定,很多时候并不显著。

六、实验设置

6.1 数据集和模型

论文主要在 CIFAR-10、CIFAR-100 和 ImageNet 上进行实验,使用的典型网络包括 VGG、ResNet 和 DenseNet。作者说明这些数据集和网络结构是剪枝文献中的常用基准。

论文评估了多类剪枝方法,包括:

复制代码
1. L1-norm based Filter Pruning
2. ThiNet
3. Regression based Feature Reconstruction
4. Network Slimming
5. Sparse Structure Selection
6. Soft Filter Pruning
7. Unstructured weight-level pruning

官方 GitHub README 也列出了这七种被评估的方法,其中前六种是结构化剪枝,最后一种是非结构化权重剪枝。


6.2 训练和 fine-tuning 设定

论文在 CIFAR 上通常训练 160 epochs,fine-tuning 40 epochs;在 ImageNet 上训练 90 epochs,fine-tuning 20 epochs。作者指出,这种设置仍然相对有利于传统剪枝流程,因为比较 Scratch 模型时没有额外计算 fine-tuning 成本。

这点很重要。因为如果从计算预算角度看,传统流程实际上包含:

复制代码
训练大模型 + 剪枝 + fine-tuning

而从头训练剪枝结构只需要:

复制代码
训练小模型

因此,如果后者精度相当,那么在训练成本上可能更有优势。


七、实验结果解读

7.1 L1-norm Filter Pruning:从头训练并不差

对于 L1-norm based filter pruning,论文在 CIFAR 和 ImageNet 上都比较了 fine-tuned、Scratch-E 和 Scratch-B。

例如在 ImageNet ResNet-34 上,未剪枝模型准确率为 73.31;ResNet-34-A fine-tuned 为 72.56,Scratch-E 为 72.77,Scratch-B 为 73.03;ResNet-34-B fine-tuned 为 72.29,Scratch-E 为 72.55,Scratch-B 为 72.91。也就是说,从头训练剪枝结构并没有明显落后,甚至更好。

这直接挑战了上一篇 L1 filter pruning 中隐含的假设:

复制代码
保留下来的 L1 大 filter 权重很重要。

这篇论文的结果说明,至少在这些设定下,剪枝后的通道结构可能比继承的权重更重要


7.2 ThiNet:从头训练常常更好

论文也重新评估了 ThiNet。ThiNet 本来强调通过下一层输出重构选择通道,并逐层剪枝、fine-tuning。

但在这篇论文中,作者发现对于 VGG-16 和 ResNet-50,Scratch-E 和 Scratch-B 几乎总是可以比 fine-tuned 模型取得更好表现,且有时优势明显。论文在 Table 2 中专门报告了 ThiNet 的结果,并指出除极端剪枝的 VGG-Tiny 外,从头训练通常不差。

这说明一个问题:

复制代码
即使剪枝算法用复杂的重构准则选择通道,
继承下来的权重也未必比随机初始化更有价值。

7.3 Channel Pruning:LASSO 选通道的价值也需要重新解释

对于 Channel Pruning for Accelerating Very Deep Neural Networks,论文同样比较了 fine-tuning 与从头训练。

这类方法使用 LASSO 选择通道,并用最小二乘重建权重。直觉上,它似乎更应该保留"重要权重"。但本文结果仍然表明,剪枝结构从头训练可以达到相当结果。

因此,LASSO 的价值可能不只是找出"必须继承的权重",而是找到了一个合理的小网络结构。


7.4 Network Slimming:剪枝更像结构搜索

Network Slimming 是自动结构化剪枝方法。它通过 BN gamma 稀疏化自动决定每层保留通道数。

论文对 Network Slimming 的分析非常关键。作者发现,Network Slimming 找到的 VGG-16 剪枝结构在参数效率上优于均匀剪枝结构;同样从头训练时,Network Slimming 得到的结构可以用更少参数达到相近精度。

这说明 Network Slimming 的主要价值可能是:

复制代码
发现每一层应该保留多少通道。

而不是:

复制代码
保留原始大模型中的某一组 gamma 或卷积权重。

论文 Figure 3 显示,Network Slimming 得到的 VGG-16 通道结构比 uniform pruning 更具参数效率。


7.5 非结构化剪枝:结论更复杂

论文也测试了 Han et al. 的非结构化权重剪枝。对于非结构化剪枝,结论不像结构化剪枝那么简单。

作者发现,在较小数据集上,从头训练稀疏结构有时也能接近 fine-tuning;但在 ImageNet 这类大规模任务上,从头训练高度稀疏网络通常更困难,fine-tuning 仍然有明显优势。论文在摘要和正文中都指出,对于非结构化剪枝,尤其在 ImageNet 上,训练 from scratch 会失败或明显不如 fine-tuning。

这点很重要。它说明本文并不是简单说:

复制代码
所有剪枝都不需要继承权重。

更准确的说法是:

复制代码
对于许多结构化剪枝方法,
继承权重的价值被高估了。

但对于高稀疏的非结构化剪枝,
尤其在大规模任务上,
继承权重可能仍然有价值。

7.6 与 Lottery Ticket Hypothesis 的关系

这篇论文还和 Lottery Ticket Hypothesis 做了比较。

Lottery Ticket Hypothesis 强调在随机初始化大网络中存在某些"中奖彩票"子网络,这些子网络配合其原始初始化可以被训练到较好性能。

而 Rethinking Pruning 的结果更偏向于:在作者评估的结构化剪枝设定中,如果使用合适的大初始学习率,winning ticket initialization 并没有比随机初始化带来提升。论文摘要也明确提到,在最优学习率下,Frankle & Carbin 使用的 winning ticket initialization 不优于随机初始化。

这两个工作看似矛盾,其实研究对象不同:

复制代码
Lottery Ticket:
    更关注稀疏子网络和原始初始化。

Rethinking Pruning:
    更关注结构化剪枝后的小网络是否需要继承权重。

八、方法优点

8.1 提出了更严格的剪枝评估标准

这篇论文最大的贡献不是新算法,而是新的评估标准。

它告诉后续研究者:只报告 "prune + fine-tune" 的结果是不够的,必须加入:

复制代码
same architecture, train from scratch

这个 baseline。

否则我们无法判断剪枝方法到底是:

复制代码
找到了重要权重,
还是只是找到了一个还不错的小结构。

8.2 揭示结构化剪枝的真正价值

论文把结构化剪枝重新解释为一种 architecture search。

对于自动剪枝方法,剪枝算法可能真正学到的是:

复制代码
每层应该保留多少通道;
哪些 stage 应该更宽;
哪些 stage 可以更窄。

这使剪枝和神经架构搜索之间建立了联系。论文也明确指出,自动结构化剪枝有时可以被看作搜索高效模型结构的一种方式。


8.3 对后续剪枝论文影响很大

这篇论文之后,很多结构化剪枝论文都会主动加入:

复制代码
train from scratch baseline

或者强调:

复制代码
我们的剪枝结构从头训练也不如继承权重;
我们的剪枝准则不仅找到结构,也找到更好的初始化;
我们的方法节省训练成本,而不只是提升精度。

因此,这篇论文实际上提高了剪枝论文的实验标准。


8.4 提醒研究者公平比较训练预算

论文指出,有些早期剪枝论文中,剪枝模型表现优于 scratch baseline,可能和 scratch baseline 的训练超参数、数据增强、训练预算设置不充分有关。论文作者认为,训练小模型时应使用合理调参,而不是简单沿用不合适的设置。

这对后续实验非常重要。一个弱 baseline 很容易夸大剪枝算法的贡献。


九、方法局限

9.1 它不是新的剪枝算法

这篇论文并没有提出一种新的剪枝准则,也没有给出新的压缩方法。它更像是一篇系统性实验分析论文。

因此,如果读者期待直接拿它来剪模型,可能会失望。它真正的价值是告诉我们:

复制代码
怎么正确评价剪枝方法。

9.2 结论主要针对已评估的剪枝方法

论文评估了多种典型剪枝方法,但不代表所有剪枝方法都满足相同结论。

尤其对于后来的硬件感知剪枝、训练中动态稀疏、Transformer/LLM 剪枝、稀疏 MoE、token pruning 等方法,不能直接套用本文结论。


9.3 非结构化剪枝上结论更复杂

论文自己也指出,非结构化剪枝在 ImageNet 上并不符合"从头训练同样好"的简单结论。高度稀疏网络从随机初始化开始训练更困难,继承权重和 fine-tuning 仍然可能很重要。

因此,不能把本文简单总结成:

复制代码
剪枝都没用。

更准确的说法是:

复制代码
对于很多结构化剪枝方法,
继承权重的价值被高估了;
但剪枝结构本身仍然可能有价值。

9.4 没有否定预训练模型在现实部署中的作用

论文也承认,如果已经有一个预训练大模型,并且训练预算有限,那么从大模型剪枝并 fine-tune 可能仍然更快。论文指出,在已有预训练大模型、训练预算很少、或需要获得多个不同压缩率模型时,传统 pruning + fine-tuning 仍然有实际价值。

所以,这篇论文不是说工程上永远应该从头训练,而是说研究论文中必须公平比较 scratch baseline。


十、后续影响

这篇论文对模型剪枝领域的影响非常大。

第一,它改变了结构化剪枝论文的实验范式。后续论文如果声称剪枝有效,通常需要回答:

复制代码
为什么不直接训练这个小模型?

第二,它把剪枝和架构搜索联系起来。对于自动结构化剪枝,剪枝算法可能真正贡献的是高效结构,而不是继承的权重。

第三,它促进了更公平的 baseline 设计。论文明确建议未来结构化剪枝研究需要更谨慎的 baseline evaluation。

从专栏脉络上看,这篇论文可以放在这里:

复制代码
Pruning Filters for Efficient ConvNets
    ↓
ThiNet
    ↓
Channel Pruning
    ↓
Network Slimming
    ↓
Rethinking the Value of Network Pruning

前几篇论文都在回答:

复制代码
如何选择要剪掉的通道?

而这篇论文追问的是:

复制代码
剪枝选择出来的权重真的重要吗?
还是剪枝后的结构才重要?

这使它成为理解结构化剪枝研究脉络时非常关键的一篇论文。


十一、一句话总结

《Rethinking the Value of Network Pruning》通过系统比较"剪枝后 fine-tuning"和"同结构随机初始化从头训练",指出许多结构化剪枝方法的核心价值不在于继承所谓重要权重,而在于发现高效网络结构,从而极大提升了剪枝研究的 baseline 标准。

相关推荐
京东云开发者1 小时前
把业务流程沉淀成高质量 Skill 的实践路径
深度学习·产品·运营
阿尔泰科技官方1 小时前
阿尔泰科技——NVH/振动/声学测试专用解决方案
人工智能·信号采集·仪器仪表·数据采集卡·采样率
2601_951659992 小时前
4.19华为OD机试真题 新系统 - WIFI设备网络规划 (JavaPyCC++JsGo)
深度学习·yolo·计算机视觉·yolo11·yolo26
147API2 小时前
Claude global workspace 研究给智能体测试提了一个醒
人工智能·算法·机器学习
闲猫2 小时前
深入理解 Skills:从 API 调用到智能体行为封装
人工智能·python·langchain
葫三生2 小时前
《论三生原理》与模糊数学的关联、异同、互补关系?
人工智能·科技·算法·机器学习·开源
刘一说2 小时前
AI科技热点日报 | 2026年7月7日
人工智能·科技
ACP广源盛139246256732 小时前
破局 PCIe 4.0 交换瓶颈@ACP#IX8024 / ASM58024参数及应用对比
大数据·人工智能·分布式·嵌入式硬件
ishangy2 小时前
吊箱号AI识别技术:防爆摄像机实现港口集装箱自动核对
人工智能·边缘计算·智慧港口·ai视觉识别·集装箱箱号识别·港口智能化