基于搜索的剪枝方法

📅 发布时间:2026/7/12 23:48:15 👁️ 浏览次数:
基于搜索的剪枝方法
https://cs.nju.edu.cn/wujx/paper/Pruning_Survey_MLA21.pdf一、先给你打个总比喻剪枝到底在干嘛我们可以把神经网络看成一栋超级大别墅房间太多、走廊太宽跑起来慢、占地大模型大、FLOPs高、推理慢剪枝 给别墅合法拆迁、精简结构拆掉没用的房间、缩窄多余走廊目标房子变小、跑得快但住起来功能几乎没变模型变小、速度变快精度不掉太多之前主流的剪枝叫基于重要性的剪枝人先定规则“这个卷积核重要、那个通道没用”然后按重要性删。而你要学的是另一大类二、基于搜索的剪枝让AI自己找“最佳瘦身方案”1. 先铺垫两个必须懂的基础词神经网络结构搜索NAS以前网络结构几层、每层多少通道都是专家手工设计累、难、费人。NAS 让机器自动搜索出好的网络结构代替人设计。早期Zoph Le 用强化学习做NAS巨耗算力。后来DARTS 用基于梯度的搜索速度快很多变成主流。基于搜索的剪枝研究者换了个思路把结构化剪枝看成一次“在原模型里搜一个最优小模型”的过程。原模型 大别墅搜出来的子模型 精简后的小别墅就是剪枝完的模型三、逐个讲懂经典的基于搜索的剪枝方法我每个都给你大白话 专业细节 核心贡献。1. AMC2018——用强化学习“智能体”来剪枝思路把剪枝交给强化学习智能体去试错。技术细节把每一层的输入维度、卷积核大小、步长等编码成一个状态state用DDPG算法训练一个智能体智能体输出“剪多少”的动作action奖励reward分类错误越少、FLOPs越小奖励越高人话让AI像玩游戏一样试各种剪枝方案越准、越快得分越高。2. ABCPruner——模仿蜜蜂找蜜搜最优通道数算法人工蜂群算法仿生优化算法和传统剪枝最大区别传统剪枝挑哪个通道重要删不重要的。ABCPruner不挑单个通道只决定每层留多少个通道。技术细节每层通道数 → 拼成一个可行解一堆可行解 → 组成种群子模型在数据集上的效果 → 叫适应度评分蜂群算法在这些解里搜最高分方案效果在 ResNet-152 上FLOPs ↓ 62.87%参数量 ↓ 60%精度几乎不变3. MetaPruning——元学习 演化搜索自动剪通道思路用元学习学会“怎么剪枝”再用演化算法搜好模型。关键 trick不搜“具体哪一个通道留”只搜**“每层留多少通道”**极大缩小搜索空间。效果ResNet-50 减少 25% FLOPsTop-1 精度只掉 0.4%。4. NetworkAdjustment——用数学公式“算出来”怎么剪思路不搜、不试错直接建模。技术细节把模型准确率看成FLOPs计算量的函数算出每一层的 FLOPs 利用率按利用率自动调整每层通道数人话给准确率和计算量列个方程解方程就知道每层该留多少。5. DMCP——解决“搜索太慢”的神器可微分 马尔可夫前面的演化算法、蜂群算法搜索时间还是巨长。DMCP 做了一件事把剪枝变成可微分、能用梯度下降训练。技术细节把每层通道的剪/留→ 建模成一个马尔可夫过程通道数变多/变少 → 对应马尔可夫状态转移直接用梯度下降优化不用暴力搜索效果ResNet-50 减少46% FLOPs精度只降 0.4%又快又好。四、表格2 一眼看懂搜索剪枝 VS 传统重要性剪枝这张表统一用ResNet-50ILSVRC-2012 数据集比谁剪得狠、精度掉得少。先认指标FLOPs计算量越小越快剪枝百分比(%)剪掉多少计算量Top-1 准确率(%)分类正确率准确率变化(%)和原模型比掉了多少越接近0越好两大类对比基于重要性的剪枝左边靠人定规则熵、范数、几何中值、高激活排名等。特点剪多了精度掉得很猛比如 HRank 剪76%精度掉7%。基于搜索的剪枝右边让算法自动搜最优结构DMCP剪 31% FLOPs精度还涨了 0.4%AutoSlim剪 27% FLOPs精度几乎没变-0.15%MetaPruning、TAS 等都比传统方法更稳、掉点更少五、极简总结小白也能背下来基于搜索的剪枝 把剪枝当成一次神经网络结构搜索NAS让AI自己找最优小模型。早期用强化学习AMC、仿生算法ABCPruner、演化算法MetaPruning。后来进阶可微分搜索DMCP把剪枝变成马尔可夫过程梯度下降又快又准。核心优势不靠人工定重要性规则大多只搜每层通道数搜索空间小同等剪枝量下精度比传统重要性剪枝高很多3 基于搜索的剪枝方法神经网络结构搜索Neural Architecture Search, NAS近年来在网络结构自动设计领域得到广泛研究与应用。传统深度学习模型的结构依赖研究者根据领域经验进行人工设计不仅需要大量的先验知识与反复实验同时人力成本与调试成本较高。Zoph 和 Le 最早提出基于强化学习的神经网络结构搜索方法以自动搜索替代人工设计网络结构但这类方法通常需要巨大的计算资源与训练开销。随着 DARTS 等基于梯度的搜索方法被提出因其搜索效率高、可端到端优化等优势逐渐成为 NAS 的主流方案。在此背景下研究者将结构化剪枝建模为一种在给定原型网络上进行子结构搜索的过程以预先训练好的大型网络为搜索空间通过搜索算法从中筛选出精度高、计算量低的最优子网络该子网络即为剪枝后的轻量化模型。本节对典型的基于搜索的剪枝方法进行系统梳理与介绍。3.1 基于强化学习的剪枝搜索——AMCAMCAutoML for Model Compression是较早将强化学习引入通道剪枝的代表性工作。其核心思路是将模型剪枝过程建模为序列决策问题把网络每一层的输入特征维度、卷积核尺寸、步长、输出通道数等信息编码为强化学习的状态State采用深度确定性策略梯度算法DDPG作为决策智能体输出每一层的剪枝比例作为动作Action。在优化目标上 AMC 以分类错误率与FLOPs共同构成奖赏函数在保证精度尽可能高的同时鼓励模型计算量尽可能小。通过与环境不断交互试错智能体可自动学习到每层最优的剪枝策略避免人工设定剪枝比例与重要性准则。3.2 基于仿生优化算法的剪枝搜索——ABCPrunerABCPruner 采用人工蜂群算法Artificial Bee Colony进行剪枝结构搜索与传统基于重要性的剪枝存在明显区别传统剪枝通常先评估每个通道的重要性分数再按分数删除低贡献通道而 ABCPruner 并不直接选择具体通道而是搜索每层应当保留的通道数量。具体实现中将每一层保留的通道数组合成一个可行解若干可行解构成算法的搜索种群以剪枝后子模型在验证集上的精度作为适应度值通过人工蜂群的雇佣蜂、观察蜂、侦察蜂阶段迭代搜索最优通道配置。在 ILSVRC-2012 数据集上ABCPruner 可在 ResNet-152 模型上实现62.87% FLOPs 与 60% 参数量的压缩同时精度基本保持不变。3.3 基于元学习与演化搜索的剪枝——MetaPruningMetaPruning 采用元学习与演化搜索结合的方式实现自动通道剪枝。该方法首先训练一个元网络Meta Network用于学习不同结构下的剪枝先验知识再通过演化算法搜索表现最优的剪枝子模型。为降低搜索复杂度MetaPruning 同样采用搜索每层通道数而非搜索单个通道去留的策略大幅缩小搜索空间提升搜索效率。实验结果表明在 ResNet-50 模型上减少 25% FLOPs 时其在 ILSVRC-2012 数据集上的 Top-1 准确率仅下降 0.4%。3.4 基于计算量建模的自动结构调整——NetworkAdjustmentNetworkAdjustment 从数值建模角度实现自动剪枝不依赖复杂的搜索迭代。其核心思想是将模型精度建模为关于计算量 FLOPs 的函数通过对该函数进行分析得到每一层的FLOPs 利用率再依据利用率自动分配每层应保留的通道数。该方法将剪枝转化为一个资源分配问题通过数学关系直接推导最优结构具有计算开销小、推理速度快的特点。3.5 基于可微分马尔可夫过程的高效搜索——DMCP基于演化算法、蜂群算法的搜索方法虽然效果较好但通常存在搜索耗时长、难以端到端训练的问题。DMCPDifferentiable Markov Channel Pruning将剪枝过程建模为可微分的马尔可夫过程从而可以直接通过梯度下降进行端到端优化。具体而言将每一层通道的剪枝与保留构造成一个独立的马尔可夫决策过程通道数量的增加或减少对应马尔可夫链中的状态转移将结构搜索从离散优化转化为连续可微分优化可与网络训练同步完成。在 ILSVRC-2012 数据集上DMCP 可对 ResNet-50 减少近46% FLOPs同时 Top-1 精度仅下降 0.4%在压缩率与精度之间实现了优秀平衡。表2 不同剪枝算法在 ResNet-50 上的性能对比下表统一以 ResNet-50 为基础模型在 ILSVRC-2012 数据集上对比各类剪枝算法的压缩性能与精度变化。由于不同方法的训练框架与初始化存在差异以相对精度变化作为主要对比依据。表 2 不同剪枝算法在 ResNet-50 上的性能表现类别方法模型FLOPs剪枝百分比(%)子模型Top-1准确率(%)准确率变化(%)基于重要性的剪枝方法SFP8.17076.150.004.754274.61-1.54FPGM8.17076.150.004.744275.59-0.563.805374.83-1.32HRank8.17076.150.004.604474.98-0.173.106271.98-4.171.967669.10-7.05ThiNet7.72072.880.004.883772.04-0.843.415671.01-1.872.207268.42-4.46Entropy7.72072.880.007.16773.560.686.381772.890.015.043570.84-2.04CURL8.17076.150.002.227373.39-2.76EagleEye8.17076.600.006.002777.100.504.005176.40-0.202.007674.20-2.40LFPC8.17076.150.003.206174.46-1.69基于搜索的剪枝方法ABCPruner8.17076.010.005.123774.84-1.172.606872.58-3.421.887770.29-5.72MetaPruning8.17076.600.006.002776.20-0.404.005175.40-1.202.007673.40-3.20TAS8.17077.460.002.317276.20-1.26AutoSlim8.17076.150.006.002776.10-0.154.005175.60-0.552.007674.00-2.15DMCP8.17076.600.005.603177.000.404.404676.20-0.402.207374.40-2.20深度总结从表中可以看出基于重要性的剪枝依赖人工设计的重要性评价准则在低压缩率下尚能保持精度但随着剪枝比例提升精度会出现明显下降而基于搜索的剪枝将剪枝视为结构搜索问题通过强化学习、演化算法、可微分搜索等策略自动优化通道配置能够在更高压缩率下更稳定地保持模型精度。其中DMCP、AutoSlim 等可微分搜索剪枝方法在搜索效率与性能上均表现突出成为当前结构化剪枝的主流发展方向。