[论文解读] Approximated Oracle Filter Pruning for Destructive CNN Width Optimization
AOFP 提出了一种多路径、基于二分搜索的裁剪框架,通过对下一层输出进行局部估计滤镜重要性来近似 Oracle Pruning,从而实现跨层同时裁剪,耗时更少、精度损失最小,在 CIFAR-10 和 ImageNet 上得到验证。
It is not easy to design and run Convolutional Neural Networks (CNNs) due to: 1) finding the optimal number of filters (i.e., the width) at each layer is tricky, given an architecture; and 2) the computational intensity of CNNs impedes the deployment on computationally limited devices. Oracle Pruning is designed to remove the unimportant filters from a well-trained CNN, which estimates the filters' importance by ablating them in turn and evaluating the model, thus delivers high accuracy but suffers from intolerable time complexity, and requires a given resulting width but cannot automatically find it. To address these problems, we propose Approximated Oracle Filter Pruning (AOFP), which keeps searching for the least important filters in a binary search manner, makes pruning attempts by masking out filters randomly, accumulates the resulting errors, and finetunes the model via a multi-path framework. As AOFP enables simultaneous pruning on multiple layers, we can prune an existing very deep CNN with acceptable time cost, negligible accuracy drop, and no heuristic knowledge, or re-design a model which exerts higher accuracy and faster inference.
研究动机与目标
- 解决为 CNN 选择层宽(滤波器数量)以在准确性和效率之间取得平衡的挑战。
- 开发一种在显著减少参数量和 FLOPs 的同时保持准确性的裁剪方法,且时间成本可接受。
- 实现跨多层的同时裁剪,而不需要大量的启发式指导。
- 引入 Destructive CNN Re-design 框架,以优化层宽以提升准确性和推理速度。
提出的方法
- 通过对下一层的影响来定义滤镜重要性,而非对最终输出的影响。
- 使用 Damage Isolation 通过下一层输出量化每个滤镜的影响,从而实现局部并行评分。
- 引入多路径训练时裁剪,在不同层之间并行化评分和微调。
- 应用二分查找式程序迭代识别最不重要的滤镜(AOFP),并通过细化阈值控制裁剪粒度。
- 使用基线掩码和评分掩码在裁剪滤镜的同时进行微调,从而实现跨层的渐进全局裁剪。
实验结果
研究问题
- RQ1AOFP 是否能在显著降低时间成本的同时近似 Oracle Pruning,并保持准确性?
- RQ2同时对多层进行裁剪是否能够在不损害准确性的前提下实现更高效的 CNN 压缩?
- RQ3基于 Damage Isolation 的重要性估计与传统启发式方法或基于全量再训练的裁剪相比有多有效?
- RQ4AOFP 是否能够在不手动调参的前提下自动确定层级宽度和裁剪粒度?
主要发现
| Model | Top-1 | Top-5 | FLOPs | FLOPs Down % |
|---|---|---|---|---|
| Alex base | 55.71 | 79.45 | 838M | - |
| Alex AOFP-B1 | 56.54 | 79.95 | 578M | 30.98 |
| Alex AOFP-B2 | 56.17 | 79.53 | 492M | 41.33 |
| Res50 base | 75.34 | 92.56 | 3.85G | - |
| Res50 AOFP-C1 | 75.63 | 92.69 | 2.58G | 32.88 |
| Res50 ThiNet-70 | 72.04 | 90.67 | 2.44G | 36.75 |
| Res50 NISP | 0.89 | - | - | 44.01 |
| Res50 Chan-Pr | - | 90.80 | - | 50.00 |
| Res50 SPP | - | 90.40 | - | 50.00 |
| Res50 Autopr | 74.76 | 92.15 | - | 51.21 |
| Res50 ThiNet-50 | 71.01 | 90.02 | 1.70G | 55.76 |
| Res50 C-SGD-50 | 74.54 | 92.09 | 1.70G | 55.76 |
| Res50 AOFP-C2 | 75.11 | 92.28 | 1.66G | 56.73 |
| Res101 base | 76.63 | 93.29 | 7.57G | - |
| Res101 AOFP-D1 | 76.88 | 93.49 | 5.29G | 30.11 |
| Res101 ISTA | 75.27 | - | 4.47G | 40.95 |
| Res101 AOFP-D2 | 76.40 | 93.07 | 3.77G | 50.19 |
| Res152 base | 77.37 | 93.52 | 11.28G | - |
| Res152 AOFP-E1 | 77.47 | 93.76 | 6.12G | 45.72 |
| Res152 AOFP-E2 | 77.00 | 93.49 | 4.13G | 63.36 |
| Res152 AOFP-E3 | 76.40 | 93.02 | 2.85G | 74.69 |
- AOFP 在显著降低评分成本的同时实现近 Oracle Pruning 的裁剪质量。
- AOFP 在 VGG、AlexNet 和 ResNet 家族上实现显著的 FLOPs 和参数降低,且准确率损失很小,某些情况下还可提高准确性。
- Damage Isolation 与多路径训练使跨层安全地并行裁剪,并在裁剪过程中减小误差传播。
- AOFP 能自动识别更适合裁剪的层并在不进行手工超参数微调的情况下调整裁剪粒度。
- Destructive CNN Re-design 作为裁剪后的再调优范式,能够通过重新优化层宽进一步提升准确性。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。