CNN剪枝新突破!渐进式通道剪枝PCP实现5倍压缩率,ImageNet准确率反超原始模型0.8%

大模型向量数据库机器学习

点击下方名片,关注「集智书童」公众号


picture.image

精简阅读版本

本文主要解决了什么问题

通道剪枝中网络结构自动决策问题 :现有通道剪枝方法通常需要手动设定每层保留的通道数量,而本文提出的方法能够在剪枝过程中自动决定每层最佳保留的通道数。

监督学习与迁移学习设置下的模型压缩问题 :大多数现有方法仅适用于监督学习任务,而本文首次将通道剪枝扩展到无监督域适应(如DANN)场景,解决了域间数据分布不匹配带来的挑战。

模型压缩效率与多压缩率模型获取问题 :现有方法通常需要为不同压缩率运行多次实验,而本文提出的方法能够在一次运行中获得一系列不同压缩率的模型,提升效率。

本文的核心创新是什么

渐进式通道剪枝(PCP)框架 :不同于传统的逐层一次性剪枝策略,PCP通过迭代的“尝试-选择-剪枝”三步流程,逐步剪枝少量通道,从而更精细地控制模型结构和性能损失。

自动网络结构决策机制 :在每次迭代中,基于验证集估计各层剪枝后的精度下降,提出一种贪婪选择策略,自动选择剪枝影响最小的层,实现每层通道数的自适应调整。

迁移学习场景下的通道剪枝扩展 :在无监督域适应(如DANN)任务中,引入伪标签目标样本和特征空间筛选策略,有效缓解域间数据分布不匹配问题。

支持多压缩率模型输出 :通过渐进式剪枝,能够自然地获得多个压缩率下的模型,无需额外运行实验。

结果相较于以前的方法有哪些提升

监督学习设置下的性能提升

  • • 在ImageNet数据集上,使用VGG-16、AlexNet和ResNet-50模型,PCP在5倍压缩率下分别比Filter Pruning (FP)、Channel Pruning (CP) 和AMC方法提升了0.8%以上(Top-5准确率)。
  • • 在某些压缩率下甚至优于原始模型(如VGG-16在2倍压缩率时Top-5准确率高于原始模型)。

迁移学习设置下的性能提升

  • • 在Office-31数据集上,PCP(带伪标签)在所有六个域适应任务中均取得最优性能,多数任务中表现优于或接近原始DANN模型,显著优于传统通道剪枝方法(如CP)。

效率与自动化优势

  • • 相比CP方法,PCP在VGG-16和ResNet-50上的剪枝+微调总时间仅增加了7.2%和11.8%,但实现了自动结构决策,无需人工调参。
  • • 超参数对结果影响较小,表明方法具有良好的鲁棒性。

局限性总结

剪枝过程仍依赖验证集性能评估 :虽然自动化程度高,但每次迭代仍需依赖验证集评估精度下降,计算开销相对较大。

未完全并行化尝试步骤 :尽管作者指出尝试步骤可并行执行,但目前的实现仍为串行处理,限制了效率提升。

在深度模型中剪枝效果受限 :尽管PCP在VGG、ResNet等主流模型上表现良好,但对更深或结构更复杂的模型(如Transformer)尚未验证其有效性。

伪标签质量影响迁移学习效果 :在无监督域适应设置中,伪标签的准确性对最终模型性能有较大影响,若初始模型性能较差,可能导致剪枝过程中引入噪声。

深入阅读版本

导读

在这项工作中,作者提出了一种简单但有效的通道剪枝框架,称为渐进式通道剪枝(PCP),用于加速卷积神经网络(CNN)。与现有的通道剪枝方法不同,这些方法仅以逐层的方式对每层进行一次通道剪枝,作者的新渐进式框架迭代地从若干选定层中剪枝少量通道,每个迭代包含一个三步尝试-选择-剪枝的流程。在尝试步骤中,作者使用任何现有的通道剪枝方法从一层中尝试剪枝预定义数量的通道,并根据验证集中的 Token 样本估计该层的精度下降。在选择步骤中,根据所有层的估计精度下降,作者提出了一种贪婪策略来自动选择一组层,这些层在剪枝后会导致整体精度下降较小。在剪枝步骤中,作者从这些选定层中剪枝少量通道。作者进一步将作者的PCP框架扩展到用于深度迁移学习方法,如领域对抗神经网络(DANN),其中作者通过使用源域的 Token 样本和目标域的伪 Token 样本,有效地减少了通道剪枝过程中的数据分布不匹配。作者在两个基准数据集上的全面实验表明,作者的PCP框架在监督学习和迁移学习设置下均优于现有的通道剪枝方法。

  1. 引言

深度神经网络已被广泛应用于许多计算机视觉任务,但由于计算资源紧张和电池电量有限,将其部署在移动设备上仍然是一项具有挑战性的任务。近年来,人们开发了多种模型压缩方法(详见第二节)以在资源受限的设备上部署深度模型,其中通道剪枝技术受到了越来越多的关注,因为这些技术在CPU和GPU上通常都表现出高效性,且无需特殊的实现。

在这项工作中,作者提出了一种新的迭代通道剪枝框架,称为渐进式通道剪枝(PCP),用于在监督学习和迁移学习设置下的模型压缩。对于任何已训练的卷积神经网络(CNN),在第三节中,作者介绍了在监督学习设置下的PCP框架,该框架迭代地从几个选定层中剪枝少量通道。具体而言,PCP在每个迭代中包含一个三步尝试-选择-剪枝流程。在第一步尝试中,作者使用任何现有的通道剪枝方法(例如,[1],[2])尝试从一个层中剪枝预定义数量的通道。结果,作者可以根据验证集中的 Token 样本估计剪枝该层后的精度下降。在第二步选择中,作者提出了一种贪婪策略,利用尝试步骤中获得的各层估计精度下降,自动选择一组层,其中剪枝这些选定层后的总体精度下降最小。在第三步剪枝中,作者使用现有的通道剪枝方法从这些选定层中剪枝少量通道。上述三步重复进行,直到FLOPs数量或压缩率达到满足要求。

在第四部分,作者进一步扩展作者的PCP框架,用于对深度迁移学习方法如领域对抗神经网络(DANN)进行通道剪枝。在这些方法中,作者在通道剪枝过程中同时使用源域的 Token 样本和目标域的伪 Token 样本。为了获得伪 Token 的目标样本,作者首先使用DANN方法对预训练模型进行微调,以获得初始的深度模型进行剪枝。然后,作者使用该初始模型对目标样本进行伪标签预测。通过额外使用伪 Token 的目标样本,作者的PCP框架能够在通道剪枝过程中有效减少两个域之间的数据分布不匹配。

在第五节中,作者在两个基准数据集ImageNet [3]和Office-31 [4]上进行了全面的实验,以比较作者的PCP框架在监督学习和迁移学习设置下与现有通道剪枝方法的性能。结果清晰地表明了作者的PCP方法在两种设置下进行模型压缩的有效性。

作者希望强调这项工作的主要贡献。首先,据作者所知,这是首个能够在通道剪枝后自动决定网络结构(即每层保留的最佳通道数)的通道剪枝框架,适用于监督学习模型(如VGG、AlexNet和ResNet)以及无监督域适应(UDA)方法(如DANN [5])。现有的几种通道剪枝技术(如[1]、[2])可以方便地集成到作者的PCP框架的尝试和剪枝步骤中。其次,作者可以同时获得一系列不同压缩率下的压缩深度模型,这非常适合压缩率可能随时间变化的可扩展应用。例如,如果作者旨在将模型剪枝以实现5倍的压缩率,作者可以在作者的PCP框架中获得一系列较低压缩率(如4倍和2倍)的压缩深度模型作为副产品,而无需运行不同设置的额外实验。最后,作者的PCP方法在监督学习和无监督域适应设置下均取得了有前景的模型压缩结果。

  1. 相关工作

作者的工作与模型共情和迁移学习相关。以下作者总结了最相关的工作。

A. 模型压缩与加速

提出了大量模型压缩方法以加速神经网络,这些方法大致可分为五类:张量分解[6]-[10]、量化[11]-[14]、优化实现[15]-[18]、紧凑网络设计[19]-[21]和连接剪枝[1]、[2]、[22][33]。

在张量分解[6]-[10]中,权重被分解为轻量级组件。例如,在[7]中,一个

卷积核被分解为一个

和一个

的卷积核。在[10]、[34]、[35]中,截断奇异值分解(truncated SVD)被用于加速全连接层。在[11]中,量化技术通过直接用较低位表示浮点数来降低计算复杂度。紧凑型网络设计[19]、[20]改变了传统卷积的不同格式。例如,在[20]中,使用分组卷积来加速传统卷积。同时,也提出了优化的实现技术[15]-[18],利用特殊的卷积算法(如FFT)来加速卷积操作。

在连接剪枝方面,Han等人[26]提出了一种新的迭代方法,通过移除所有对应权重低于预设阈值的连接来构建Sparse网络。然而,由于缓存和内存访问问题,该方法在实际加速性能方面往往表现不佳。为解决这一问题,许多研究(例如[23]-[25]、[36]-[38])被提出以在滤波器 Level 减少冗余连接。Luo等人[2]提出了一种通道剪枝方法,根据从下一层计算出的统计信息移除每层中较不重要的通道。He等人[1]提出了一种两步方法,通过优化用于通道选择的LASsO回归问题和用于更新相应权重的最小二乘问题来剪枝每一层。最近,He等人[39]提出利用强化学习通过自动搜索模型设计空间来提升模型压缩结果。Zhao等人[36]使用变分技术来剪枝网络中的滤波器,而对抗学习技术则被用于[37]中剪枝冗余结构。在[38]中,通道间关系被用于确定应剪枝或保留的通道。文献[40]提出了一种跨域剪枝策略,以同时剪枝源网络和目标网络。与[1]、[2]、[39]、[40]相比,作者的工作能够自动确定网络结构(即每层保留的最佳通道数)。更重要的是,现有方法[1]、[2]、[36]-[39]未研究在UDA(未配对域适应)设置下的更具挑战性的通道剪枝问题,在该设置下,由于源域和目标域之间存在显著的数据分布不匹配,手动设计/调优的网络结构或基于源域数据自动学习的网络结构均不是最优的。因此,现有工作在UDA设置下无法取得令人满意的效果。与[1]、[2]、[36]-[39]相比,作者的PCP(渐进式通道剪枝)框架通过迭代方式利用 Token 的源样本和伪 Token 的目标样本来逐步学习最优网络结构并减少数据分布不匹配,其有效性也通过作者的综合实验得到了验证。

B. 深度迁移学习

深度迁移学习方法旨在通过显式减少源域和目标域之间的数据分布不匹配来学习领域不变特征,大致可分为基于统计的方法[41]-[44]和基于对抗学习的方法[5], [45]-[50]。领域对抗神经网络(DANN)[5]是最具代表性的工作之一,其中通过从领域分类器的损失中反向传播梯度来学习领域不变特征。在本工作中,作者以DANN为例,展示了作者的PCP框架在模型压缩方面的有效性。据作者所知,目前尚无现有方法能够自动决定网络结构以加速深度迁移学习方法(如DANN),以便在资源受限的设备上部署。

  1. 在监督学习设置下的渐进式通道剪枝

几种通道剪枝方法[1], [2]可以直接应用于PCP。作者选择[1]中的方法来展示作者渐进式通道剪枝(PCP)框架的有效性,因为其源代码是公开的,且性能表现良好。在本节中,作者首先回顾这种通道剪枝方法[1]。然后,在监督学习的设置下,介绍作者提出的渐进式通道剪枝(PCP)方法。

A. 通道剪枝简介

为了减少参数和计算量,通道剪枝方法通过减少CNN模型每层输入通道的数量来实现。更正式地说,作者以剪枝一个卷积层为例进行说明。假设卷积核

作用于输入特征张量

,生成输出矩阵

,其中

表示样本数量。

分别表示该层的输入通道数和输出通道数。

分别表示卷积核的高度和宽度。对于通道剪枝,作者的目标是将特征张量

的通道数从

减少到

,并移除该层对应通道的卷积核以及前一层的对应卷积核。

通道剪枝方法[1]将通道剪枝问题表述如下:

,约束条件为

是从形状为

的输入特征体积

的第

个通道中切割出来的矩阵,

是从形状为

的卷积滤波器的第

个通道中切割出来的矩阵。

是一个通道选择向量,即如果其第

个元素

,则

中的相应通道将被从该层中移除。

是Frobenius范数,

范数。为了更清晰地表达,卷积层中的偏差项和激活函数未包含在公式(1)中。

为了解决公式(1)中的优化问题,作者交替优化两个子问题。首先,作者固定卷积滤波器参数

,通过将其构建为一个LASsO回归问题来求解

以进行通道选择,具体如下:

满足

A,其中

范数。

其次,作者固定

,通过求解以下最小二乘优化问题来找到最优的W:

其中

是通过求解公式 (2) 得到的信道选择向量,

的第

个分量。作者从第一次迭代的

开始逐渐增加

,交替求解公式 (2) 和公式 (3) 来更新信道选择向量和相应的权重,直到满足约束条件

B. 剪枝残差架构

由于残差块中的快捷设计,作者无法像上述描述那样直接剪枝残差块中的第一个卷积层,因为该残差块中第一个卷积层的输入特征将与第三个卷积层的输出特征相加。通道剪枝方法[1]针对残差网络开发了几种剪枝策略。作者选择了其中的两种来剪枝作者的残差网络,如图1所示。

picture.image

剪枝第一卷积层。如图1所示,作者添加一个通道采样器,以获得一个通道数减少的特征图,并将其作为残差块中后续卷积层的新输入特征图,以避免直接剪枝图1中的输入特征图,确保后续求和操作时不会出现形状不匹配。作者遵循文献[1]的方法,求解等式(2)中的LASsO优化问题,以生成采样器 Mask 。

剪枝第三卷积层。如图1(右)所示,输出特征图是

的和,其中

分别是第一卷积层的输入特征图以及剪枝前几层后的第三卷积层的输出特征图。与剪枝残差分支(图1中的Feature map 1、Feature map 2和Feature map 3分支)不同,作者无法通过求解式(1)中的优化问题来近似

,因为残差块中的快捷分支是无参数的。因此,当网络深度增加时,快捷分支产生的误差会累积。为了补偿这种误差,作者将式(1)中的优化目标从

(注意:剪枝第三卷积层时

)更改为

,其中

分别是原始模型中第一卷积层和第三卷积层的输入特征图,

是剪枝前几块后的第一卷积层的输入特征图。

作者使用与第III-A节中介绍的方法相同的方式,对残差分支中的第二卷积层进行剪枝。

C. 作者的PCP方法

符号变更。在PCP中,作者考虑在不同的迭代中剪枝不同的层。当需要时,给

层添加上标 -

以表示(例如,公式 (4) 和算法 1)。给下标

添加以表示第

次迭代。如果未指定,符号与公式 (1)、公式 (2) 和公式 (3) 中的含义相同。例如,

在公式 (1)中表示通道选择向量,作者将使用 3(l) 表示第

层在第

次迭代的通道选择向量。作者使用下标 -

表示模型压缩前原始模型中的参数/特征。例如,Y) 表示原始模型中第

层的输出特征。

在微调过程之前的PCP方法。给定目标压缩率

,作者旨在搜索具有最高测试精度的最佳压缩模型

可以是FLOPs的目标压缩率或参数数量。形式上,作者将图像分类网络定义为一个函数

。作者的目标函数可以表示为:

其中

表示交叉熵损失。

是输入图像,

是输入图像

的标签。

表示所有网络参数。

是一组通道选择向量,其中

是第

层的通道选择向量,

是第

层输入特征图的通道数。

是网络的层数。

是基于通道剪枝后的参数和通道选择向量预测的输入图像

的概率。

的函数,表示压缩率。在公式 (4) 中,作者省略了训练样本的求和,以便更好地呈现。

该任务的目标是通过最小化公式(4)中的交叉熵损失来提高压缩模型的分类精度。然而,对于

的离散选择,可能的解的数量使得穷举搜索难以实现。反向传播也需要用于优化参数

,这是一个耗时的过程。因此,直接求解公式(4)中的目标函数非常困难。为了解决这个问题,通道剪枝方法[1]提出以逐层的方式在每一层优化公式(1)。但它与交叉熵损失无关。

为此,作者提出一种贪婪搜索算法来解决公式(1),同时在优化过程中考虑公式(4)以获得一个能更好地逼近公式(4)解的方案。作者提出在每一层迭代地剪枝,而不是仅剪枝一次。具体而言,每次迭代中,作者提出一个包含尝试步骤、选择步骤和剪枝步骤的三步流程。(1)尝试步骤:给定前一迭代的输出模型,作者尝试从某一层剪枝少量通道,并估计该层的精度下降。(2)选择步骤:根据对所有层估计的精度下降,作者选择一组剪枝后精度下降最小的层。(3)剪枝步骤:作者对选定的层剪枝少量通道,同时保持未选定的层不变。然后相应地调整与选定层相关的权重。上述三个步骤重复进行若干次,直到满足所需的压缩率。图2显示了每次迭代中的三步流程。

picture.image

符号变化。下面,作者仅关注第

层的操作。为了更好的表示,在介绍每个操作时,作者忽略层索引。然而,在必要时会使用层索引。例如,在算法1中,它被表示为上标 .(l)。

picture.image

(1) 尝试步骤:在此步骤中,作者遵循文献[1]尝试从某一层中剪除少量通道,并估计该层的分类精度下降。在

次迭代中,作者对每一层优化以下LASsO回归问题:

其中,

表示在第

次迭代中第

层预定义的剪枝通道数。

分别是

的第

个元素。

是从第

次迭代中获得的通道选择向量,定义见下方公式(7)。

是从第

次迭代中获得的调整权重,定义见下方公式(8)。

是第

次迭代中输出模型第

层的输入张量,其参数表示为

根据公式(5),作者尝试从第

层中剪枝

个通道,并得到第

层在第

次迭代时的临时通道选择向量

。然后作者固定

,并通过求解以下最小二乘优化问题来找到第

层在第

次迭代时的临时权重

与通道剪枝方法[1]类似,作者在公式(5)中逐渐增加

,并交替优化公式(5)和公式(6),直到满足约束条件。公式(5)和公式(6)中的优化问题基于原始输出特征

以及前一次迭代的输入特征

。因此,每次迭代中剪枝某一层的通道与剪枝其他层的通道是相互独立的。通过这种方式,当前迭代中所有层的优化过程可以并行执行,以提高作者的PCP框架的效率,这将在作者未来的工作中进行研究。

从实证角度来看,作者在微调过程之前发现,准确率更高的模型在微调后通常能获得更好的性能[1][39]。因此,作者在微调过程之前基于作者的验证集评估每个剪枝后的模型,以估计该模型在微调后的准确率。这种准确率可以作为公式(4)中整体交叉熵损失

的指标。具体来说,更高的准确率意味着更小的交叉熵损失,这表明剪枝后的通道对整体交叉熵损失的影响较小,即该层存在更多的冗余。

(2) 选择步骤:在尝试步骤之后,作者获得了所有层的估计精度下降值,作者选择精度下降值最低的top_n层。在t次迭代时,选定的层集合表示为

。然后,作者将这些层的索引按升序排序,以确保在下面引入的剪枝步骤中,作者将从较浅的层(即靠近输入图像)剪枝通道到较深的层(即靠近网络输出)。

(3) 剪枝步骤:在获得选定层集

后,作者遵循文献[1]的方法,以浅层到深层的顺序对这些选定层进行剪枝,具体通过解决以下优化问题来实现,其中

..

在迭代

中,当之前的层被剪枝时,

是第

层的输入张量。通过这种方式,作者更新

中选定层的通道选择向量,但保持未选层的通道选择向量不变。

为了调整网络参数,作者对

中选定的层解决如下的最小二乘优化问题:

通过这种方式,作者使用固定的通道选择向量

更新所选层的参数。为了节省计算时间,作者保持未选层的参数不变。

例如,假设在第

次迭代时选定的层集

。在剪枝步骤中,作者使用LASsO求解器求解公式(7)以更新通道选择向量,然后求解公式(8)以更新该层的参数。该过程从较浅的层到较深的层依次执行,因为公式(7)和公式(8)中的LASsO和最小二乘优化问题均基于当前的特征图

。剪枝较浅的层(例如层2)会影响该层之后的输入特征(例如层6)。这种从浅到深的顺序更新过程可以使较深的层感知到因剪枝较浅层而导致的输入特征变化,从而实现更精确的通道选择和更优的深层参数调整,该方法也应用于文献[1]。

作者对通道进行多次剪枝,直到模型达到目标压缩率。自然地,作者可以在每次迭代后保存模型,以获得具有不同压缩率的模型,以适应可扩展的应用,其中压缩率可能会随时间变化。算法1展示了作者的PCP算法在微调过程之前的伪代码。

微调。作者基于所有 Token 的训练数据对压缩模型进行微调。请注意,在尝试选择剪枝过程中不使用微调过程以实现快速速度。

  1. 转移学习环境下的渐进式通道剪枝

在本节中,作者将作者的PCP方法扩展到用于压缩深度迁移学习方法,该方法遵循该任务中最常见的无监督域适应设置。作者以DANN方法[5]为例,介绍作者的PCP方法,该方法可以方便地扩展到压缩其他深度迁移学习方法。

在无监督域适应任务中,作者拥有来自源域的 Token 样本集和来自目标域的无 Token 样本集,其中源域与目标域之间的数据分布存在差异。该任务的目标是学习一个能够对目标域的无 Token 样本进行正确分类的判别器。

在本任务中,渐进式通道剪枝过程包含三个主要步骤:(1)作者首先使用来自源域和目标域的样本预训练一个初始深度迁移学习模型(例如DANN模型[5])。(2)作者使用作者的PCP框架压缩初始模型,以加速网络同时保持领域自适应能力。(3)作者使用来自两个域的样本对压缩后的模型进行微调。

预训练初始模型。为了使压缩模型在目标域上具有更好的性能,作者发现从深度迁移学习模型(例如DANN模型)中剪枝通道比在领域自适应之前从深度模型中剪枝通道更为有效。具体而言,作者使用简单且有效的领域自适应方法DANN[5][47]来获取待压缩的初始模型。DANN方法使用与VGG[51]或ResNet[52]相同的CNN结构来提取特征。然而,它还包含一个领域分类器来决定样本是否来自源域或目标域,并采用梯度反转层将领域分类器的梯度反向传播以提取领域不变特征。

基于PCP的通道剪枝。在获得初始DANN模型后,作者使用作者的PCP方法逐步对初始DANN模型的通道进行剪枝。考虑到在此设置中存在 Token 源样本和 未标注 目标样本,作者提出了两种策略以有效利用这些样本。(1)作者选择一组高度置信的目标样本,并为他们分配伪标签。(2)作者在合适的空间位置选择信息量丰富的特征。以下介绍这两种策略。

首先,由于两个域之间的数据分布不匹配,如果作者仅使用 Token 的源数据在尝试步骤中估计目标域的准确率下降,可能会在目标域上获得较差的分类性能。因此,考虑 未标注 的目标数据是有益的。为此,作者使用初始的DANN模型来预测目标域图像的类别,将其作为伪标签。作者通过算法1逐步剪枝初始DANN模型的通道,其中作者在作者的三步流程中同时使用 Token 的源样本和伪 Token 的目标样本。

其次,原始的通道剪枝方法[1]在求解公式(1)中的优化问题时,仅使用从特征图上随机选择的一些空间位置上的少量特征,而不是使用整个特征图。然而,在无监督域适应设置下,由于较大的域方差(例如,源域为纯色背景而目标域为复杂背景),许多空间位置上的特征具有无信息响应(例如,某些空间位置的所有通道响应接近于零)。在这种情况下,从特征图上随机选择空间位置并不是一个好的选择。为了解决这个问题,作者仅使用那些在所有通道上方差大于经验定义阈值的某些空间位置上的特征,在尝试和剪枝步骤中求解优化问题,以避免从背景区域选择具有无信息特征的 spatial locations。

微调。在完成通道剪枝过程后,作者使用基于 Token 源图像和伪 Token 目标图像的DANN方法对剪枝后的模型进行微调。

  1. 实验

在本节中,作者在ImageNet数据集[3]的监督学习设置下,将作者的PCP方法与几种最先进的通道剪枝方法进行比较。作者还评估了作者的PCP方法在Office-31数据集[4]上的无监督域适应任务。

A. 有监督学习设置下的实验

作者以ImageNet数据集[3]为例,评估了三种流行模型:VGG-16[51]、AlexNet[53]和ResNet-50[52],以验证PCP在模型压缩方面的有效性。

ILSVRC-2012数据集[3]包含超过一百万张训练图像和五万张测试图像,涵盖1000个类别。作者从训练集中划分出五万张图像作为作者的验证集,以评估在尝试步骤中每层准确性的下降情况。在微调阶段,作者将图像调整到256×256的大小,并对调整后的图像进行随机裁剪,裁剪到224×224的大小。在测试阶段,作者将调整后的图像进行中心裁剪,裁剪到224×224的大小。关于不同网络结构和数据集的其他实现细节将在下文的相关章节中讨论。

VGG-16的结果。VGG-16是一个16层网络,由13个卷积层和3个全连接层组成。考虑到第一个卷积层的输入是原始图像,作者仅剪枝VGG-16模型的最后12个卷积层(即conv1_2到conv5_3)。本节中的压缩率指的是模型压缩前后原始模型的FLOPs数量与压缩模型FLOPs数量的比值。

在作者的实验中,作者通过经验设定选择步骤(即top_n)中选择的层数为4,以加速作者的PCP框架中的三步流程。当压缩率小于2时,作者将预定义的剪枝通道数f_t^(l)设置为max{当前通道数的30%,40},以在每个迭代中更积极地剪枝更多通道,因为在这种情况下模型中存在更多冗余。当压缩率从2增加到5时,作者逐渐将f_t^(l)降低到min{当前通道数的10%,40}。达到5倍压缩率需要12次迭代。在微调阶段,作者将学习率设置为1e^-3,并使用批大小为128的SGD优化器进行优化。遵循 Baseline 方法通道剪枝[1]中的相同设置,作者对压缩后的模型进行10个epoch的微调。作者将其他参数与原始VGG工作[51]保持一致。

表1 展示了作者的 PCP 框架在压缩率

下的结果。作者将PCP与几种最先进的通道剪枝方法进行了比较,包括:Filter Pruning (FP) [24]、Channel Pruning (CP) [1] 和 AMC [39]。值得一提的是,CP 方法需要仔细设计网络每一层的保留通道数。AMC 方法使用强化学习以非渐进的方式决定每一层的保留通道数。在

的压缩率下,作者的 PCP 方法比 FP 和 CP 方法分别提高了

以上,并且比 AMC 方法提高了

。由于基准方法 FP、CP 和 AMC 未报告 Top-1 准确率,作者无法将 Top-1 准确率与它们进行比较。然而,作者报告了作者的 PCP 框架的 Top-1 准确率,以便与其他方法进行更好的比较。在

的压缩率下,PCP的 Top-1 准确率分别为

。作者强调,在

的压缩率下,作者的 PCP 方法在 Top-5 准确率方面甚至优于原始的 VGG-16 模型。一个可能的解释是,原始的 VGG-16 模型可能存在冗余通道,因此丢弃这些冗余通道是有益的。

此外,作者比较了使用单个GTX2080Ti GPU时,作者的PCP方法与CP方法压缩VGG-16模型的运行时间。对于CP方法,剪枝过程需要0.3小时,微调过程需要15小时。在作者的PCP框架中,剪枝过程(即作者的三步流程)需要1.4小时,微调过程需要15小时。与 Baseline CP方法相比,作者的PCP方法整个框架的总运行时间增加了7.2%,这表明作者的PCP框架能够自动决定每层的剩余通道数,并且只需要少量额外时间。

作者还报告了在微调过程后,使用不同选择的层数(即top_n)的PCP方法的Top-5准确率。当设置top_n为1、2、4、6时,在5倍压缩率下压缩的VGG-16模型经过微调后的Top-5准确率分别为88.8%、88.9%、89.0%和88.7%。从结果来看,当top_n从1增加到4时,PCP方法的准确率增加,而当top_n高于4时,准确率则下降。在设置超参数f(l)时,作者也通过使用不同的f()进行了实验。1. 当f()分别为max{20%的当前通道数,40}、max{30%的当前通道数,40}和max{40%的当前通道数,40}时,在5倍压缩率下压缩的VGG-16模型经过微调后的Top-5准确率分别为89.2%、89.0%和88.8%。增加f_t^(l)会提高PCP框架的速度,但会降低压缩模型的准确率。因此,在作者的实验中,为了在性能和速度之间取得平衡,作者将f)设置为max{30%的当前通道数,40}。从不同的top_n和f_t^(l)选择结果来看,作者可以观察到作者的PCP框架对这些超参数不敏感。

在图3中,作者以VGG-16模型在5倍压缩率下的情况为例,报告了PCP和CP方法[1]在每一层保留的通道百分比。该百分比是指经过通道剪枝后保留的通道数与剪枝前原始通道数的比值。从图3可以看出,作者PCP方法自动决定的保留通道百分比趋势与[1]中精心设计的人工方法趋势相似。具体而言,深层层的保留通道百分比更高。这一观察结果在[1]中也有报道,其中指出"通道剪枝从浅层到深层逐渐变得困难"。作者还假设深层层的冗余通道更少。

picture.image

使用AlexNet的结果。作者以AlexNet为例,进一步展示作者PCP方法的有效性。AlexNet是一个8层网络,由5个卷积层和3个全连接层组成。与VGG-16的设置类似,作者仅剪枝最后4个卷积层(即conv2到conv5)的输入。

作者在选择步骤中经验性地将所选层数(即top_n)设置为2。经过4次迭代获得了压缩模型,其FLOPs为

。在微调阶段,作者将初始学习率设置为

,并使用批大小为512的SGD优化器进行优化。其他设置与在ImageNet上剪枝VGG-16的设置相同。作者对剪枝的AlexNet进行了90个epoch的微调,而 Baseline 方法NISP-B [54]和通道剪枝(CP)[1]分别需要90个epoch和106个epoch来微调压缩模型。

在表2中,作者比较了作者的PCP框架与不同通道剪枝方法在Top-1和Top-5准确率上的表现。

作者将作者的PCP方法与文献[54]中的NISP-B方法进行比较,因为这两种方法都剪除了AlexNet的最后4个卷积层。NISP-B计算全局通道重要性分数,并同时从不同层中剪除重要性分数最小的通道集。与NISP-B方法和CP方法相比,很明显作者的PCP方法在更低的FLOPs下实现了更高的准确率。

ResNet-50的结果。作者进一步在ImageNet数据集上对ResNet-50模型[52]进行剪枝实验,以验证作者PCP框架的有效性。作者在选择步骤中(即top_n)经验性地将选定层的数量设置为32,以加速作者的PCP框架,并将预定义的剪枝通道数

设置为

当前通道数,40}。经过2次迭代获得了压缩模型,其FLOPs降低了44.5%。在微调过程中,所有设置与剪枝VGG-16的设置相同,除了将批大小设置为64。作者对剪枝的ResNet-50进行10个epoch的微调,这与 Baseline 方法ThiNet[2]和Channel Pruning[1]中的设置相同。

表3展示了作者的PCP方法在ImageNet数据集上的结果。作者将PCP与两种当前最先进的方法进行了比较:ThiNet [2] 和通道剪枝 (CP) [1]。从表3可以看出,作者的PCP方法始终优于ThiNet方法和CP方法。再次,上述结果清晰地证明了作者PCP框架的有效性。

作者还比较了使用单个GTX2080Ti GPU时,作者的PCP方法与CP方法在压缩ResNet-50模型时的运行时间。对于CP方法,剪枝过程需要1小时,微调过程需要19.3小时。在作者的PCP框架中,剪枝过程(即作者的三步流程)需要3.4小时,微调过程需要19.3小时。与 Baseline CP方法相比,作者的PCP框架的总运行时间增加了

,这表明作者的PCP框架所需的额外时间有限。

B. 无监督领域自适应设置下的实验

在Office-31上的实验。Office-31数据集[4]是一个用于评估不同领域自适应方法在物体识别任务中的基准数据集,其中包含来自31个类别的4,110张真实图像。该数据集包含三个领域,包括亚马逊(A)、网络摄像头(W)和单反相机(D)。作者遵循原始的DANN工作[47],使用通用的评估协议进行领域自适应任务。

作者使用AlexNet、VGG16和ResNet50作为 Backbone 网络来提取特征,并使用未经通道剪枝的初始DANN模型进行实验。在第一次迭代中,将学习率设置为

。作者遵循其他深度迁移学习方法[5]、[41]、[47],使用INV函数逐渐降低学习率。通过这种方式,作者学习到的初始DANN模型在目标域上取得了良好的性能,为模型压缩提供了一个良好的起点。据作者所知,现有的模型压缩方法并未专门设计用于压缩深度迁移学习方法(如DANN)。为此,作者设计了几种 Baseline 方法来验证PCP方法的有效性,具体如下:

(1) VGG16(对应AlexNet、ResNet50):作者首先使用ImageNet数据集预训练VGG16(对应AlexNet、ResNet50)模型,然后仅使用Office-31数据集中的 Token 源样本对预训练的VGG16(对应AlexNet、ResNet50)模型进行微调。微调后的VGG16(对应AlexNet、ResNet50)模型的结果在表4(对应表5、表6)中报告为VGG16(对应AlexNet、ResNet50)。

(2) VGG16-DANN(对应AlexNet-DANN、ResNet50-DANN):作者首先使用ImageNet数据集对VGG16(对应AlexNet、ResNet50)模型进行预训练。然后,作者使用Office31数据集中的所有 Token 源样本和 未标注 目标样本,通过DANN方法[5]对预训练的VGG16(对应AlexNet、ResNet50)模型进行微调,以获得初始的DANN模型进行剪枝。结果在表4(对应表5、表6)中报告为VGG16-DANN(对应AlexNet-DANN、ResNet50-DANN)。

(3) CP [1]: 由于通道剪枝(CP)方法[1]的源代码是公开的,作者直接使用该方法通过仅使用Office-31数据集中的源域 Token 样本来剪枝初始DANN模型的通道。当 Backbone 网络为VGG16(或AlexNet、ResNet50)时,结果以CP的形式报告在表4(或表5、表6)中。

(4) PCP(不含PL)(PCP):作者使用新提出的PCP方法,仅利用Office-31数据集中的源域 Token 样本来压缩初始DANN模型,当 Backbone 网络为VGG16(对应AlexNet、ResNet50)时,结果以PCP(不含PL)(PCP)的形式报告在表4(对应表5、表6)中。

(5) PCP(带PL)(PCP):作者使用作者的PCP方法通过在Office-31数据集中使用 Token 的源样本和伪 Token 的目标样本来压缩初始DANN模型,当 Backbone 网络为VGG16(分别对应AlexNet、ResNet50)时,结果以PCP(带PL)(PCP)的形式报告在表4(分别对应表5、表6)。

结果与分析。从表4、表5和表6中的结果,作者得到以下观察: (1) VGG16-DANN、AlexNet-DANN和ResNet50-DANN模型分别优于相应的微调模型VGG16、AlexNet和ResNet50,这表明在使用域适应方法DANN在模型压缩前显式减少源域和目标域之间的数据分布不匹配是有益的。 (2) 使用CP方法剪枝通道后的压缩模型性能通常劣于初始的DANN模型。 (3) 作者的PCP方法(不使用PL)在大多数设置中优于CP方法,这表明使用作者新提出的PCP方法剪枝DANN模型的通道是有用的。 (4) 作者的PCP方法(使用PL)在所有六个设置中均达到最佳性能。大多数任务的结果与初始的DANN模型一样好甚至更好,这表明在无监督域适应设置下,使用伪 Token 的目标样本在作者的PCP方法中压缩模型是有益的。

  1. 结论

在这项工作中,作者提出了渐进式通道剪枝(PCP)框架,用于在监督学习和迁移学习环境下加速卷积神经网络。作者的PCP方法通过迭代使用三步尝试-选择-剪枝流程,从每次迭代中选定的几个层中剪枝少量通道。作者的PCP方法不仅可以自动决定每层保留的通道数量,还可以同时获得一系列不同压缩率下的压缩深度模型。在无监督域适应设置下,它还可以减少通道剪枝过程中不同域之间的数据分布不匹配。在两个基准数据集上的综合实验表明,作者提出的PCP方法在这两种设置下都十分有效。

如第III-C节所述,在作者的PCP框架中,每一层的尝试步骤与其他层相互独立,可以并行执行。在未来的工作中,作者将研究尝试步骤的并行实现,以进一步提高作者的PCP框架的效率。

参考

[1]. Model Compression using Progressive Channel Pruning

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论