Skip to main content
QUICK REVIEW

[论文解读] Manipulating Identical Filter Redundancy for Efficient Pruning on Deep and Complicated CNN

Xiaohan Ding, Tianxiang Hao|arXiv (Cornell University)|Jul 30, 2021
Advanced Neural Network Applications参考文献 90被引用 4
一句话总结

该论文提出了一种名为Centripetal SGD(C-SGD)的新训练方法,通过聚类滤波器并在反向传播过程中驱动它们收敛到相同值,从而在深度卷积神经网络中诱导出完全相同的滤波器冗余。通过创建纯粹的冗余滤波器,C-SGD 实现了无需微调的一次性、精度保持剪枝,在 CIFAR-10、ImageNet 以及 ResNet/DenseNet 架构上取得了最先进性能,且计算开销极低。

ABSTRACT

The existence of redundancy in Convolutional Neural Networks (CNNs) enables us to remove some filters/channels with acceptable performance drops. However, the training objective of CNNs usually tends to minimize an accuracy-related loss function without any attention paid to the redundancy, making the redundancy distribute randomly on all the filters, such that removing any of them may trigger information loss and accuracy drop, necessitating a following finetuning step for recovery. In this paper, we propose to manipulate the redundancy during training to facilitate network pruning. To this end, we propose a novel Centripetal SGD (C-SGD) to make some filters identical, resulting in ideal redundancy patterns, as such filters become purely redundant due to their duplicates; hence removing them does not harm the network. As shown on CIFAR and ImageNet, C-SGD delivers better performance because the redundancy is better organized, compared to the existing methods. The efficiency also characterizes C-SGD because it is as fast as regular SGD, requires no finetuning, and can be conducted simultaneously on all the layers even in very deep CNNs. Besides, C-SGD can improve the accuracy of CNNs by first training a model with the same architecture but wider layers then squeezing it into the original width.

研究动机与目标

  • 为解决在具有跳跃连接和密集块的极深且复杂的卷积神经网络中,因滤波器重要性分布不均而使标准剪枝方法易导致性能下降的挑战。
  • 通过创建纯粹的冗余滤波器,消除剪枝后微调的需求,从而实现无性能损失的剪枝。
  • 通过将冗余组织为理想的完全相同滤波器模式,而非依赖小范数正则化,提升滤波器剪枝的效率与效果。
  • 实现在极深网络中所有层的同步、全局剪枝,克服逐层或逐滤波器剪枝策略的局限性。
  • 探索结构化冗余是否能提升训练收敛速度与模型性能,提出一种新的训练范式——Scaling and Squeezing,用于性能增强。

提出的方法

  • C-SGD 引入一种改进的损失函数,通过最小化每个聚类内滤波器之间平方偏差之和,强制实现滤波器聚类。
  • 它使用一个可学习的平均矩阵 $\bm{\Gamma}$ 和一个衰减矩阵 $\bm{\Lambda}$,在反向传播过程中计算每个滤波器聚类的质心更新。
  • 通过一个超参数 $\epsilon$ 施加向心力,使每个聚类中的滤波器以恒定速率向其均值收敛,确保收敛到完全相同的权重。
  • 该算法被集成到标准 SGD 训练流程中,每层每轮迭代仅需增加两次矩阵乘法,计算开销可忽略不计。
  • 冗余模式在训练过程中形成,因此剪枝可立即在训练结束后执行,无需任何微调步骤。
  • 该方法支持端到端训练与剪枝,可实现对 ResNet-164 和 DenseNet-121 等深度网络中所有层的同时剪枝。

实验结果

研究问题

  • RQ1在训练过程中诱导完全相同的滤波器冗余,是否能实现在深度卷积神经网络中无需微调的一次性无损剪枝?
  • RQ2C-SGD 在 ResNet 和 DenseNet 等复杂架构上的表现如何,这些架构因跳跃连接和密集块的存在,使得受限剪枝极具挑战?
  • RQ3与小范数冗余(如 group-Lasso)相比,所提出的完全相同滤波器冗余模式在剪枝效率和精度保持方面是否更具优势?
  • RQ4C-SGD 是否能够同时应用于所有层进行全局剪枝?在极深网络中,其性能是否保持或提升?
  • RQ5Scaling and Squeezing 策略——即使用 C-SGD 训练更宽的模型,再剪枝回原始宽度——是否能从 C-SGD 中受益并提升最终精度?

主要发现

  • C-SGD 在 ResNet-164 和 DenseNet-121 上实现了无需精度下降的一次性剪枝,即使同时剪枝所有层,也展现出在极深网络中的强大鲁棒性。
  • 在 CIFAR-10 上,C-SGD 在将 ResNet-56 剪枝至 2× 宽度后达到 76.25% 的 top-1 准确率,优于需要微调且出现精度损失的先前方法。
  • 在 ImageNet 上,C-SGD 在将 ResNet-56 剪枝至 2× 宽度后达到 75.88% 的 top-1 准确率,超过基线方法,在类似设置下误差增加更小(0.94 vs. 0.74)。
  • 该方法计算高效:训练速度与标准 SGD 无异,且无需微调,而大多数先前方法均需此步骤。
  • C-SGD 对向心力强度 $\epsilon$ 具有鲁棒性,在 $\epsilon = 1\times 10^{-3}$、$2\times 10^{-3}$ 和 $1\times 10^{-2}$ 下均保持稳定收敛与性能。
  • Scaling and Squeezing 策略——即使用 C-SGD 训练更宽的模型并剪枝回原始宽度——可提升最终精度,表明冗余有助于模型收敛与泛化。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。