针对极致紧凑卷积神经网络的双重注意力卷积核剪枝算法
Pushing to the Limit: An Attention-Based Dual-Prune Approach for Highly-Compacted CNN Filter Pruning
-
摘要:研究背景 近年来,随着卷积神经网络模型结构日益复杂,其推理时对计算资源、存储资源、设备能源的需求也大幅增加。因此,如何在不影响模型准确性的前提下,高效地压缩深度卷积神经网络的需求也日益增长。神经网络剪枝作为一种模型压缩的技术,正受到越来越多的关注。这种技术通过对模型中冗余的结构进行删剪,实现了模型的压缩。神经网络剪枝可分为参数剪枝和卷积核剪枝两类。由于卷积核剪枝与现有硬件高度兼容,且易于在通用GPU上部署、无需特殊的库支持,成为当前研究的热点。然而,当前的卷积核剪枝方法对卷积神经网络模型进行高压缩比剪枝时,会导致模型性能严重下降,限制了已有算法的实用性。目的 现有的卷积核剪枝方法在高压缩比下表现不佳的主要原因是某些层会被过度剪枝,导致无法恢复的信息丢失。较大的全局剪枝比例意味着某些层将被剪枝的百分比较高,有时甚至接近或等于100%,导致层次塌陷,信息流无法正确通过剪枝的层,使得模型无法训练。且已有算法从卷积核个体的角度对其重要性进行贪心评估,无法捕捉到卷积核之间的联结关系。我们旨在提出一种新颖的卷积核剪枝方法,推动高压缩比的极限,为卷积核剪枝领域引入新的见解。方法 本文提出的DualPrune采用三重创新策略,旨在解决高压缩率下现有算法性能不佳的难题。首先,为更全面评估卷积核的重要性,引入了图注意力网络。该网络通过学习卷积神经网络的结构特征和卷积核间的联通特征,构建了卷积核的全局特征表示,进而准确捕捉层间相关性,全面揭示卷积核在整个神经网络中的作用。其次,提出了一种旁路注意力网络,生成旁路注意力权重,这些权重用于评估卷积核在剪枝决策中的重要性,从而能够自动调整剪枝策略,确保在压缩过程中获得最佳性能。最后,通过引入旁路路径设计,保障了高度压缩模型中信息流的顺畅,有效避免了层次崩溃问题。仅需对原始模型和注意力网络进行少量训练,即可在模型初始化阶段实现高效剪枝,随后通过从头训练压缩模型,达到高准确性的目标。通过联合训练图注意力网络和卷积神经网络,DualPrune从卷积核中提取出全面的特征,并利用一个全连接网络。为确保在过度剪枝某些卷积层时信息仍能在网络中顺畅流通,我们引入了一种旁路路径机制,有效避免了层次崩溃问题。结果 基于三个真实数据集的主流卷积神经网络模型的实验显示:DualPrune的性能超越了其他先进的卷积核剪枝算法。特别是在高剪枝率下,DualPrune实现了显著的性能提升。在ImageNet数据集上对ResNet-50进行剪枝时,当剪去网络中高达85%的浮点计算量时,与次优方法PFS相比,DualPrune的准确率提升了高达7.13%。而在CIFAR-100数据集的实验中,DualPrune在高压缩率下的准确率增益更是达到了33.77%。这些实验结果充分显示了DualPrune对卷积网络进行高压缩率剪枝时的优越性和有效性。结论 本文提出了一种名为DualPrune的卷积核剪枝方法,该方法基于注意力机制,能够在初始化阶段以极高的剪枝率对卷积神经网络进行精准剪枝。通过联合训练图注意力网络和卷积神经网络,DualPrune从卷积核中提取出全面的特征,并利用一个全连接网络生成旁路注意力权重,这些权重用于评估卷积核在剪枝决策中的重要性。为确保在过度剪枝某些卷积层时信息仍能在网络中顺畅流通,我们引入了一种旁路路径机制,有效避免了层次崩溃问题。经过剪枝后的网络随后从头开始训练。得益于图注意力网络设计与旁路路径机制的巧妙结合,DualPrune在初始化阶段即能准确识别出最关键的卷积核,在剪枝后依然能够保持良好的训练效果。Abstract: Filter pruning is an important technique to compress convolutional neural networks (CNNs) to acquire light-weight high-performance model for practical deployment. However, the existing filter pruning methods suffer from sharp performance drops when the pruning ratio is large, probably due to the unrecoverable information loss caused by aggressive pruning. In this paper, we propose a dual attention based pruning approach called DualPrune to push the limit of network pruning at an ultra-high compression ratio. Firstly, it adopts a graph attention network (GAT) to automatically extract filter-level and layer-level features from CNNs based on the roles of their filters in the whole computation graph. Then the extracted comprehensive features are fed to a side-attention network, which generates sparse attention weights for individual filters to guide model pruning. To avoid layer collapse, the side-attention network adopts a side-path design to preserve the information flow going through the CNN model properly, which allows the CNN model to be pruned at a high compression ratio at initialization and trained from scratch afterward. Extensive experiments based on several well-known CNN models and real-world datasets show that the proposed DualPrune method outperforms the state-of-the-art methods with significant performance improvement, particularly for model compression at a high pruning ratio.