同构剪枝:一种适用于先进视觉模型的高效网络压缩方法
摘要
本文介绍了一种名为“同构剪枝”(Isomorphic Pruning)的新方法,旨在通过移除深度神经网络中的冗余子结构来减少计算开销。该方法特别针对具有自注意力、深度卷积或残差连接等新颖机制和架构的先进视觉模型。同构剪枝通过在预定义的重要性标准下评估不同类型的子结构,进行孤立的排序和比较,从而实现更可靠的剪枝。实验结果表明,该方法在ImageNet-1K数据集上超越了多个专门为Transformer或CNN设计的剪枝基线。例如,通过剪枝一个现成的DeiT-Base模型,将DeiT-Tiny的准确率从74.52%提高到77.50%。此外,对于ConvNext-Tiny,性能从82.06%提升到82.18%,同时减少了参数数量和内存使用。该方法的代码已在GitHub上公开。
原理
同构剪枝的核心思想是将网络分解为多个基于子结构计算拓扑的同构组。每个同构组包含具有相同结构和相似重要性分布的元素,使得在组内进行相对重要性的比较更为合理。该方法通过识别网络中的可移除子结构,并根据其拓扑图进行分组和剪枝,从而实现对不同类型子结构的孤立排序和比较。这种方法不仅适用于Vision Transformers和CNNs,还能在不同模型大小上提供竞争性的性能。
流程
同构剪枝的工作流程包括以下步骤:
- 识别子结构:初始化一个空的子结构列表,遍历网络中的每一层,如果该层未分配到任何子结构,则初始化一个图,并找到并添加相关的依赖层,直到没有新的依赖。
 - 按组剪枝:遍历每个子结构,如果该子结构未分配到任何组,则初始化一个组,并找到满足同构条件的其他子结构添加到该组。计算组内每个子结构的重要性分数,并根据这些分数移除一定比例的不重要子结构。
 - 返回剪枝后的网络:经过上述步骤后,返回剪枝后的网络。
 
应用
同构剪枝方法具有广泛的应用前景,特别是在需要高效处理大量数据的场景中,如图像识别、视频分析和自动驾驶等领域。该方法不仅能够减少模型的参数数量和计算开销,还能在不牺牲性能的情况下提高模型的推理速度和内存效率。此外,同构剪枝的通用性和实用性使其能够适应各种新颖的网络架构和机制,为未来的深度学习模型压缩和加速提供了新的方向。
