模型剪枝经典论文精读:BlockDrop: Dynamic Inference Paths in Residual Networks

发布时间:2026/7/16 4:01:07
模型剪枝经典论文精读:BlockDrop: Dynamic Inference Paths in Residual Networks 一、论文基本信息论文题目BlockDrop: Dynamic Inference Paths in Residual Networks作者Zuxuan Wu、Tushar Nagarajan、Abhishek Kumar、Steven Rennie、Larry S. Davis、Kristen Grauman、Rogerio Feris发表信息CVPR 2018论文链接CVF Open Access / arXiv官方代码Tushar-N/blockdrop这篇论文提出BlockDrop核心目标是让 ResNet 在推理阶段根据每张输入图片动态选择执行哪些 residual blocks从而减少计算量。论文摘要中明确说明BlockDrop 会在给定预训练 ResNet 的基础上训练一个 policy network让它为每张输入图像选择需要执行的 residual blocks并在保持预测精度的同时尽量减少 block 使用量。官方代码仓库为Tushar-N/blockdropREADME 中说明该代码实现了一个 policy network用于动态选择 ResNet 中哪些 blocks 执行在 ResNet-101 / ImageNet 上BlockDrop 平均加速 20%部分图像可达 36%同时保持 76.4% Top-1 accuracy。二、论文要解决的问题传统模型压缩方法通常得到一个固定结构的小模型。例如 filter pruning、channel pruning、quantization、low-rank decomposition 等方法压缩后每张图像都经过同一个网络。这种方式的问题是所有输入样本都被分配相同计算量。但现实中不同图像的难度不同。有些图像目标清晰、背景简单可能不需要完整深层网络有些图像目标遮挡严重、背景复杂才需要更多层提取高级特征。所以 BlockDrop 要解决的问题是能不能让网络对简单样本少算对困难样本多算换句话说它不是问哪些 filters 应该被永久删除而是问对于当前这张输入图像哪些 residual blocks 可以临时跳过这就是 BlockDrop 和传统静态剪枝方法的根本区别。三、核心思想BlockDrop 的核心思想可以概括为一句话给一个预训练 ResNet 配一个 policy network让 policy network 根据输入图像一次性输出所有 residual blocks 的 keep / drop 决策。对于一个包含 K 个 residual blocks 的 ResNetBlockDrop 会预测一个二值向量其中执行第 (k) 个 residual block。跳过第 (k) 个 residual block。论文中明确写到policy network 会输出一个 binary policy vector表示每个 block 是 keep 还是 drop然后 ResNet 只运行 policy vector 中被激活的 blocks。所以BlockDrop 的推理过程是输入图像进入 policy network。policy network 输出一个完整的 block 执行策略。ResNet 只执行被保留的 residual blocks。最终输出分类结果。这里最重要的是BlockDrop 的决策是 image-specific 的。也就是说不同图像会走不同推理路径。image-specific 的。也就是说不同图像会走不同推理路径。四、为什么 BlockDrop 适合 ResNetBlockDrop 选择 ResNet 作为基础网络不是偶然的。ResNet 的 residual block 一般可以写成如果跳过第 (k) 个 block就变成也就是直接走 identity shortcut。因此ResNet 天然适合 block dropping因为 residual connection 本来就提供了跳过 block 的路径。论文也指出ResNet 由于 skip connection 的存在可以被看作很多不同深度路径的集合因此删除某些 residual blocks 通常不会像普通顺序网络那样立刻导致结构断裂。这点非常关键BlockDrop 利用的是 ResNet 的结构冗余和路径冗余。如果换成 VGG 这种普通顺序网络直接跳过中间层会更加困难因为层与层之间没有天然 identity shortcut。五、方法细节5.1 Policy NetworkBlockDrop 的 policy network 输入是一张图像输出是一个长度为 K的概率向量其中x输入图像。policy network。Wpolicy network 参数。(s_k)第 (k) 个 residual block 被 drop 或 keep 的概率。论文将 block dropping 行为建模为一个 (K)-dimensional Bernoulli distribution。每个 block 的决策从 Bernoulli 分布中采样最终形成一个二值 policy vector。论文也强调policy network 的计算成本要足够低否则动态跳过 blocks 节省的计算会被 policy network 自身开销抵消。论文实验中policy network 的计算量约为 CIFAR ResNet-110 总计算量的 4.8%在 ImageNet ResNet-101 上约为 3.0%。(所以BlockDrop 的一个关键设计原则是路由器必须足够轻量。5.2 动态路径对于每张图像BlockDrop 都会产生一个不同的执行路径。例如一张简单图像可能只执行较少 blocks一张困难图像可能执行更多 blocks。论文 Figure 1 的说明中指出BlockDrop 学到的路径不仅反映图像难度简单样本会使用更少 blocks而且不同 block pattern 还可能对应有意义的视觉模式。这说明 BlockDrop 学到的不是随机跳层而是输入相关的动态推理路径。5.3 奖励函数BlockDrop 使用强化学习训练 policy network。其目标是同时鼓励两件事预测正确。使用尽可能少的 residual blocks。论文定义的 reward 为如果预测正确那么使用的 blocks 越少reward 越大。如果预测错误则直接给负奖励。论文明确说明控制 efficiency 和 accuracy 的折中较大的会让策略更重视正确率但计算节省会变少.这个奖励函数的核心含义是只有在预测正确的前提下少用 blocks 才有价值。这点非常重要因为单纯少算很容易只要全部跳过即可真正难的是在保持精度的同时少算。5.4 强化学习目标BlockDrop 希望最大化期望 reward其中是 policy network 定义的 block keep / drop 分布。由于 keep / drop 是二值离散决策不能直接用普通反向传播优化因此论文使用 policy gradient 方法来训练 policy network。论文明确写到它们利用 policy gradient 来最大化期望 reward.这里的关键难点是block dropping 是离散决策所以需要强化学习或类似的离散优化方法。六、训练策略6.1 为什么不能直接训练BlockDrop 的搜索空间非常大。如果 ResNet 有 (K) 个 residual blocks那么所有可能路径数量是每个 block 都有 keep 或 drop 两种选择因此路径组合数量随 block 数指数增长。论文指出直接从随机初始化的 policy 开始同时优化精度和 block usage 效果不好因为搜索空间维度极大。所以BlockDrop 不能简单粗暴地直接训练 policy network。6.2 Curriculum Learning为了解决训练困难论文使用curriculum learning课程学习。课程学习的思想是不要一开始就让 policy network 决定所有 blocks而是逐渐增加它需要决策的 blocks 数量。训练初期让前面大部分 blocks 固定执行只让 policy network 学习后面少量 blocks 的 drop / keep。随着训练进行逐步开放更多 blocks 给 policy network 决策。论文写到在第 (t) 个 epoch如果会保持前 (K-t) 个 blocks 打开只学习剩余 blocks 的 policy。这样做的好处是把一个极大的路径搜索空间分阶段暴露给 policy network降低训练难度。6.3 Joint Finetuning课程学习完成后policy network 已经能为输入图像选择 blocks。但是原始 ResNet 是在所有 blocks 都执行的情况下训练的。现在某些 blocks 被动态跳过网络内部特征分布会发生变化。因此论文进一步进行joint finetuning。也就是policy network 和 base ResNet 一起微调使 ResNet 适应动态 block dropping 行为。论文明确说明移除 blocks 会带来训练和测试条件不匹配因此需要把 ResNet 与 policy network 共同 fine-tune让网络适应学到的 block dropping behavior。(所以 BlockDrop 的完整训练流程是先训练 policy network。再联合微调 policy network 和 ResNet。这也是它和单纯静态剪枝不同的地方。七、BlockDrop 与 SkipNet 的区别BlockDrop 和 SkipNet 都是动态跳过 residual blocks 的方法但二者并不完全一样。BlockDrop 的 policy network 一次性输出所有 blocks 的 keep / drop 决策。SkipNet 更强调在网络内部逐层做 gating 决策。BlockDrop 论文特别指出它的策略执行是 single-step 的所有决策基于输入实例一次性产生因此 policy execution 更轻量也更适合扩展到很深的网络。(所以二者可以这样区分SkipNet 更像是逐层动态路由。BlockDrop 更像是整网路径一次性规划。这也是 BlockDrop 的重要特点它不是每经过一个 block 再决定下一个 block而是先为整张图像生成完整推理路径。八、实验设置论文在三个主要数据集上验证CIFAR-10。CIFAR-100。ImageNet ILSVRC2012。CIFAR-10 和 CIFAR-100 都有 50,000 张训练图像和 10,000 张测试图像ImageNet 包含约 1.2M 训练图像和 50,000 张验证图像。论文在 CIFAR 上使用 ResNet-32 和 ResNet-110在 ImageNet 上使用 ResNet-101。官方代码中也提供了 CIFAR 和 ImageNet 的训练与测试流程包括 curriculum learning、joint finetuning 和 testing/profiling。九、实验结果解读9.1 CIFAR-10ResNet-110 上只用约 33% blocks 仍达到 93.6%论文报告在 CIFAR-10 的 ResNet-110 上BlockDrop 只使用约 33% residual blocks 就能达到 93.6% accuracy在 CIFAR-100 上使用约 55% blocks 达到 73.7% accuracy。这说明很多输入样本并不需要完整 ResNet-110 的所有 blocks。对于相对简单的 CIFAR-10BlockDrop 可以跳过大量 blocks并保持甚至略高于原模型的精度。9.2 CIFAR-10相比完整 ResNet-110平均 FLOPs 减少 65%在 CIFAR-10 上论文报告 BlockDrop 的最佳模型 accuracy 为 93.6%相比原始 ResNet-110 的 93.2% 还高 0.4%同时平均 FLOPs 从降到减少约 65%。这说明动态跳层不仅能减少计算还可能带来一定正则化效果。论文也认为fine-tuning 中的 block dropping 可能类似 stochastic depth具有正则化作用。9.3 ImageNetResNet-101 平均加速 20%保持 76.4% Top-1在 ImageNet 上BlockDrop 基于 ResNet-101。论文摘要和 GitHub README 都报告BlockDrop 平均加速约 20%部分图像可达 36%同时保持 ResNet-101 的 76.4% Top-1 accuracy。论文结果还显示当稍微放宽时BlockDrop 可以在保持完整 ResNet-101 相同 76.4% Top-1 accuracy 的同时将 FLOPs 从降到。这说明在 ImageNet 这种复杂任务上BlockDrop 不能像 CIFAR 那样跳过大部分 blocks但仍然能获得有意义的动态计算节省。9.4 单步 policy 比顺序 policy 更高效论文比较了 single-step policy 和 sequential policy 的效率。在 CIFAR-10 上ResNet-110 的完整推理时间为 24.1msBlockDrop single-step policy 为 10.9ms加速 52.3%而 sequential policy 反而需要 29.1ms比完整模型更慢。这个结果非常关键动态推理不只是少算 blocks还要保证路由决策本身足够便宜。如果每个 block 前都做一次复杂决策控制开销可能抵消计算收益。这也是 BlockDrop 采用一次性 policy vector 的重要原因。9.5 学到的路径具有视觉语义论文还做了定性分析。它发现 BlockDrop 学到的 dropping policies 与图像视觉模式有关。例如在 “orange” 类别中一堆橙子的图片和橙子特写图片会走不同 inference paths清晰可见目标的简单图像通常使用更少 blocks而包含遮挡或复杂背景的困难图像会使用更多 blocks。这说明BlockDrop 学到的不是随机省计算而是和图像难度、视觉模式相关的动态路径选择。十、方法优点10.1 输入自适应BlockDrop 最大优点是instance-specific inference。它不是为所有图像提供同一个固定小模型而是让每张图像拥有自己的推理路径。这比静态剪枝更灵活。10.2 保留完整 ResNet 表达能力静态剪枝会永久删除 filters 或 blocks。BlockDrop 不会永久删除 blocks而是根据输入动态跳过。因此对于困难样本它仍然可以执行更多 blocks。这意味着BlockDrop 的计算量是动态的而不是固定的。10.3 与其他压缩方法互补论文指出BlockDrop 与传统模型压缩方法是互补的。保留下来的 residual blocks 仍然可以继续做 filter pruning、quantization 或低秩分解。也就是说可以先用 BlockDrop 动态减少 block 使用再对每个 block 内部做静态压缩。这对部署很有意义。10.4 单步策略执行开销低BlockDrop policy network 一次性输出所有 blocks 的决策避免逐层 gating 带来的高控制开销。论文也强调single-step associative reinforcement learning 让 policy execution 更轻量更适合很深的网络。10.5 有助于理解 ResNet 的路径冗余BlockDrop 的实验说明ResNet 中不同 residual blocks 对不同图像的重要性不同。这进一步支持一种观点ResNet 不只是一个单一路径网络而是包含大量可选择路径的组合结构。十一、方法局限11.1 它不是静态剪枝BlockDrop 不会生成一个固定的小模型。它仍然保留原始 ResNet 和 policy network只是在推理时动态跳过部分 blocks。因此它更适合归类为动态推理 / 条件计算方法。而不是传统意义上的 filter pruning 或 channel pruning。11.2 动态控制流对硬件不一定友好虽然 BlockDrop 能减少 FLOPs但真实加速依赖硬件和推理框架。如果 batch 中每张图像执行路径不同GPU 或 NPU 可能难以高效并行。所以在部署时需要验证真实 latency而不能只看 FLOPs。11.3 强化学习训练复杂BlockDrop 需要 policy gradient、curriculum learning 和 joint finetuning。相比 L1、FPGM、HRank、CHIP 这类排序式剪枝方法训练流程更复杂。11.4 搜索空间很大如果 ResNet 有 (K) 个 residual blocks那么路径空间是 (2^K)。虽然 curriculum learning 缓解了这个问题但这仍然说明动态路径学习本质上是一个大规模离散搜索问题。11.5 依赖 ResNet 的 shortcut 结构BlockDrop 适合 ResNet是因为 residual blocks 可以被跳过。如果换成没有 shortcut 的网络直接跳层可能导致结构和语义不匹配。因此BlockDrop 的适用性比 DepGraph 这种通用结构化剪枝框架更窄。十二、和前面论文的关系Pruning Filters for Efficient ConvNets 关注静态 filter pruning。ThiNet 和 Channel Pruning 关注重构误差驱动的通道剪枝。Network Slimming 关注BN gamma 稀疏化。FPGM、HRank、CHIP 关注不同冗余度量。Importance Estimation 和 Gate Decorator 关注loss sensitivity / gate-based importance。DepGraph 关注任意结构剪枝中的依赖关系。SkipNet 关注逐层动态路由。BlockDrop 关注整网动态路径选择。所以BlockDrop 的核心定位是从“永久剪掉结构”转向“按输入动态选择路径”。它和 SkipNet 的共同点是都跳过 residual blocks。区别是SkipNet 更强调逐层 gating。BlockDrop 更强调一次性生成完整 block dropping policy。十三、一句话总结《BlockDrop: Dynamic Inference Paths in Residual Networks》提出用 policy network 为每张输入图像一次性生成 ResNet residual blocks 的 keep / drop 决策并通过 curriculum learning、policy gradient 和 joint finetuning 学习动态推理路径它的核心贡献不是静态删除通道或 filter而是让 ResNet 根据输入难度自适应选择执行路径在 ImageNet ResNet-101 上实现平均 20% 加速并保持 76.4% Top-1 accuracy。