没有合适的资源?快使用搜索试试~ 我知道了~
1910重新审视神经网络压缩中的随机通道修剪0Yawei Li 1 Kamil Adamczewski 2 Wen Li 3 Shuhang Gu 4 Radu Timofte 1 Luc Van Gool 1 , 501 ETH Z¨urich计算机视觉实验室 2 MPI-IS 3 UESTC 4 USYD 5 KU Leuven0{ yawei.li, radu.timofte, vangool } @vision.ee.ethz.ch0摘要0通道(或3D滤波器)修剪是加速神经网络推理的有效方法。已经有一系列算法试图解决这个实际问题,每个算法都声称在某些方面有效。然而,由于算法的复杂性和一些自定义设置(如特定的网络配置或训练过程),缺乏直接比较这些算法的基准。一个公平的基准对于进一步发展通道修剪非常重要。同时,最近的研究表明,修剪算法发现的通道配置至少与预训练权重一样重要。这给通道修剪赋予了新的角色,即搜索最佳通道配置。在本文中,我们尝试通过随机搜索确定修剪模型的通道配置。所提出的方法提供了一种比较不同方法的新方法,即与随机修剪相比,它们的表现如何。我们展示了这种简单策略与其他通道修剪方法相比效果相当好。我们还展示了在这种设置下,不同的通道重要性评估方法之间没有明显的优胜者,这可能会使研究工作倾向于先进的通道配置搜索方法。代码将在https://github.com/ofsoundof/random_channel_pruning发布。01. 引言0自从基于深度学习的计算机视觉解决方案出现以来,网络压缩一直是减少神经网络计算复杂性、加速推理并使其能够在资源受限设备上部署的核心问题[20, 21, 31, 41, 55, 56, 63,65]。通道修剪(或结构化修剪、滤波器修剪)是可以实现卷积神经网络(CNN)加速的方法之一[10, 18, 30, 32,40]。本文的目标是对通道修剪过程进行实证研究,该过程尚未得到足够的关注。0关注的是随机通道修剪。通过随机修剪,我们指的是每个层的修剪比例是随机选择的,并且在该层内要修剪的通道是根据某些准则确定的。随机修剪经常被称为基准,以展示最先进的通道修剪方法[11, 12, 35, 39, 42, 47, 49, 61,64]的改进。然而,随机修剪的能力尚未完全释放。通过本文的严格研究,我们得出以下几个重要发现。0F1在随机修剪的相同设置下,最近提出的通道修剪准则[19,36, 44, 49]与简单的L1和L2范数修剪准则的性能相当。0F2 与以预训练模型为起点的通道修剪算法相比[9, 17-19,23, 37-39, 45, 60,66](见表3中的结果),随机修剪可以找到具有可比甚至更好性能的修剪模型。0F3即使与优化整体网络架构(如池化层的放置[40]和可用网络宽度的扩展[57])的先进修剪方法相比,随机修剪仍然缩小了性能差距(在ImageNet分类任务上不到0.5%)。0F4微调的轮数对修剪网络的性能有很大影响。高性能的修剪网络通常需要较长的微调轮数。0这些发现带来了几个含义。首先,考虑到F1,由于基于L1/L2的通道剪枝可以与其他剪枝标准一样表现出色,根据奥卡姆剃刀原理,大多数情况下,简单的L1和L2剪枝标准就可以满足通道剪枝的目的。其次,结合F2和F3,作为中立基准的随机剪枝揭示了网络剪枝领域的基本发展。对于依赖预定义网络架构和预训练网络权重的算法,我们还没有走得太远。1920自网络剪枝出现以来,网络整体架构优化带来了额外的好处。大多数方法的性能差异在1%的范围内,接近原始网络的性能。一方面,这表明了通道剪枝的特点,即通道剪枝网络的性能上限是原始网络1。另一方面,这也表明了问题的难度,即每一个小的改进都需要巨大的努力(主要是计算)。第三,考虑到F4,为了公平比较和领域的长期发展,应该规范微调的轮数。我们鼓励该领域的研究人员详细解释训练和微调协议,特别是轮数。这样,计算成本可以同时考虑到研究人员和工业从业者。上述讨论导致了随机剪枝在通道剪枝中所起到的独特作用,即作为基准来评估不同的通道剪枝方法[5]。一方面,随机通道剪枝可以在相同的制度下引入不同的剪枝标准。因此,不同的通道重要性估计方法成为一个适合与现有方法配合使用的元组件。另一方面,随机剪枝可以成为其他算法的基准。由于通道剪枝算法的性能可以受到几个因素的影响,特别是微调过程,解耦影响因素并中立地显示成本和收益有助于创建清晰度。随机通道剪枝还简化了剪枝算法。通道剪枝可以简化为从一个子网络池中随机采样并选择最佳子网络,而不是使用复杂的算法,如强化学习[18]、进化算法[40]和近端梯度下降[30]。本文研究了两种设置下的随机剪枝。在第一种设置中,任务是对预训练的网络进行剪枝。在第二种设置中,不需要预训练的网络,剪枝算法从一个随机初始化的网络开始。该问题被形式化为一个架构搜索问题。为了应对搜索,网络被重新参数化为与原始网络相似的架构。由于网络是从头开始训练和剪枝的,本文将第二种设置称为“从头开始剪枝”。在这两种情况下,随机剪枝旨在通过随机采样所有可能的通道配置空间来搜索紧凑网络的最佳通道数量。尽管非常简单,但与精心设计的剪枝算法相比,随机剪枝的表现出人意料的好。随机剪枝的意外成功也呼唤一种优化的采样方法,以提高搜索效率。0更多讨论见补充材料。0简而言之,本文的贡献如下。01)我们提出了随机剪枝,作为一个强大的基准来评估其他通道剪枝方法。本文分析了随机剪枝的特性。02)我们将通道剪枝的基本概念形式化,并试图分析为什么随机剪枝可以导致与精心设计的算法相当的结果。03)我们对一些通道剪枝方法进行了基准测试,包括随机剪枝的标准,以了解通道剪枝的当前状态。02. 相关工作0通道剪枝方法是压缩神经网络的主要方法之一,还包括通过量化[7, 13]和低秩逼近[24, 31, 62,63]减少权重位数的方法。通道剪枝方法的目的是在最小损失性能的情况下创建一个更薄的架构,相对于原始网络。早期的剪枝方法主要集中在所谓的非结构化剪枝上,即从网络中删除单个参数[14,48]。尽管这些方法在理论上很有趣,但在当前的硬件和软件环境中更难以实现。因此,最近的工作更多地集中在结构化剪枝上,其中网络通道可以被移除,模型可以被实际压缩和加速[2]。剪枝方法适用于不同的范式。最常见的剪枝方法依赖于根据权重的大小进行剪枝,例如L1/L2范数[56],或者更近期的中位数剪枝[19]。在卷积中,权重提供了计算和剪枝后近似特征图的直接方法[45]。评估输出特征图,即通道,可以作为分析网络参数重要性的替代方法[37,66]。另一组剪枝方法是利用损失函数相对于权重的梯度,通过一阶或二阶泰勒级数逼近[15, 27,49]。在这一系列工作中,较不重要的权重对损失函数的影响较小,因此可以被移除。最近的方法各不相同,包括通过KL散度评估通道重要性[44],模拟退火[50],重要性采样[3],以及学习参数上的狄利克雷分布[1]。最近,剪枝方法与知识蒸馏相结合,其中两个网络,一个大的和一个小的,共享输出信息以产生相似的结果[21, 30, 33,54]。这种方法还可以与生成对抗学习相结合进行剪枝[38]。1930然而,这些方法的问题在于,虽然它们为权重提供了重要性评分,但它们既不指示应该剪枝多少参数,也没有提供关于剪枝架构选择的充分理由。然而,广泛认为一些剪枝架构可能比其他架构更好[12]。我们的工作提出了一种随机架构搜索的方法,这是一种简单、无偏和通用的方法,可以比较大多数剪枝方法,并在给定预定义模型的情况下找到一个好的架构。我们还注意到其他一些尝试比较不同方法的工作[22,41]。然而,本文在目标和分析启示方面与这些工作根本不同。[41]的目标是确定网络剪枝的价值,而我们的目标是提出随机剪枝作为比较不同剪枝方法的中立基准。[22]的研究“指导和激励研究人员设计更合理的标准”,而我们的研究发现先进的剪枝标准与朴素的L1/L2范数几乎相当,并呼吁采用优化的采样方法进行高效搜索。更多讨论见补充材料。03. 定义和预备知识03.1. 基本概念和形式化0在深入讨论本文中的随机剪枝过程的细节之前,首先介绍本节中的一些概念。0定义1(通道剪枝中的随机选择)。就网络中的随机剪枝而言,随机性可以以不同的方式出现。I.完全随机。要剪枝的通道是完全随机选择的,跨层没有任何约束。这通常被用作一个较弱的基准[12, 42, 49]。II.有约束的随机。每层的剪枝比例根据一些先验知识确定。在每层中被剪枝的通道是随机选择的。这在[47]中进行了研究。III.随机通道数量选择。每层的剪枝比例是随机采样的,并且根据某些标准剪枝层中的滤波器。本文研究了随机剪枝的第三种情况。0定义2(通道配置空间)。网络的通道配置空间E被定义为包含所有可能的通道数配置的空间。设li层中的通道数为cli,则该层内的通道配置数量为2cli-1(我们至少需要一层中的一个通道),而所有配置的空间包含ni2cli-1个样本,其中n是架构中的层数。空间中的不同配置具有不同的模型复杂度(计算量、参数数量、延迟)。0(a) 邻域中网络的性能。0(b) 在配置空间中搜索网络。0图1. (a)在CIFAR10图像分类任务上稍作修改的ResNet20。在配置空间的局部区域中,网络的准确性变化不大。(b)随机修剪只需要在配置空间中的最优解附近取样。0和准确性。通道修剪方法的目标是找到一个目标通道配置,使得在固定的模型复杂度下网络的准确性最大化。配置空间与网络的参数空间非常不同。下面总结了两个高度影响通道修剪算法的属性。0属性1:通道配置空间是离散的。在这个空间中进行可微分分析是不可能的。这个属性对于通道修剪和架构搜索方法构成了一个重要挑战。为了在空间中进行搜索,已经利用了强化学习、进化算法和近端梯度下降等方法。0属性2:轻微改变网络的通道数不会对网络的准确性产生太大影响,这意味着配置空间中的局部区域的通道配置往往具有相似的准确性。这个属性在图1a中展示,其中网络在左上区域的准确性变化不大。这个属性意味着通道修剪问题的解决方案并不唯一。相反,可能存在一组解决方案。这为随机修剪的有效性提供了启示。基于正则化的方法逐渐从初始网络更新到最优解[30,56]。相比之下,随机修剪只需要在最优解的邻域中获取一个样本,而不是最优解本身(见图1b)。正如在引言中提到的,我们研究了通道修剪中的随机修剪,有两种设置。我们在下面进行描述。0设置1:修剪预训练网络。在这个设置中,通道修剪方法会对预训练网络进行修剪,根据重要性评分来修剪不重要的通道。0设置2:从头开始修剪。在这个设置中,网络从头开始训练[4, 6, 32, 40, 58, 59]。在每个1940在小批量迭代中,允许的通道配置空间中的子网络并行训练,采样四个子网络用于参数更新。为了应对并行训练,根据第5.1节的描述重新构建了一个与原始网络类似的网络。训练结束后,使用优化的搜索方法寻找候选网络[4, 6,58]。最近的一项工作还将搜索阶段融入到训练阶段中,通过对重新构建的网络的参数进行惩罚,实现更快的收敛[32]。在修剪网络的过程中,关键的评估标准是修剪后模型本身的性能。当迭代进行修剪和微调时,可以在修剪过程中评估网络的性能。但是,如果网络被严重修剪,网络的准确性会急剧下降。例如,当直接修剪MobileNetV2中30%的计算量时,Top-1错误率可能会恶化到90%。在这种情况下,直接评估网络变得不可靠。简而言之,我们面临着一个挑战:如何高效评估修剪网络的性能?对于这两种修剪设置,存在不同的解决方案。当对预训练网络进行随机修剪时,通过最小化修剪网络和原始网络的特征图之间的差异来更新修剪网络的参数。与微调网络相比,更新参数更加高效,特别是当随机样本的数量较大时。当从头开始修剪时,解决方案在于网络的并行训练过程。在训练过程中,会采样大量的子网络。网络的训练使得所有子网络的准确性都趋于降低。并行训练使网络具备了插值未采样子网络准确性的能力。因此,在训练结束后,可以可靠地评估采样的子网络的性能。03.2. 修剪准则0对于通道修剪,评估通道的相对重要性至关重要。存在几种方法可以从不同的角度测量通道重要性分数。最直接的方法是基于滤波器的L1/L2范数。考虑一个具有权重参数 W =[W1, ∙ ∙ ∙, Wn] 的网络中的单个层,其中 W ∈ Rn×c×w×h,Wi ∈ Rc×w×h。0其中 i 表示网络的第 i个输出通道(为了清晰起见,我们省略了偏置项)。n、c、w和h分别表示输出通道数、输入通道数和层的内核大小。然后,基于L1/L2范数的重要性分数计算为 I norm =∥Wi∥p,其中 p可以是1或2。具有较小范数的滤波器很可能被修剪,因为它们生成的输出特征图具有较小的幅度。0然而,一些研究指出,依赖L1/L2范数可能存在问题,因为批归一化层可以重新校准特征图的幅度[56]。此外,“较小范数-较少信息”准则不尊重网络中滤波器的分布[19]。因此,在[19]中提出了几何中位数来解决这个问题。该准则发现了可以由其他滤波器替换的相似滤波器,I gm = �0其中 S( Wi, Wj )表示两个滤波器之间的相似性。上述准则仅基于网络中滤波器的分布,可能不完全尊重它们对网络准确性的影响。因此,在[44]中,使用Kullback-Leibler散度通过在网络中屏蔽通道来衡量通道的重要性,I kl = �0其中 P 是输出概率。0其中 Qik是网络中屏蔽单个通道后修剪网络的概率,具有较小KL散度得分的通道对输出概率的影响较弱,可以被修剪。然而,该方法需要对网络中的每个通道进行一次前向传播。与其他方法相比,这种方法非常慢。在[49]中,通过估计具有和不具有特定参数的预测误差来加速计算。估计是通过对预测误差进行一阶或二阶泰勒展开来完成的。简而言之,通道的重要性分数由 I te = ( �0其中 w s 表示通道 Wi 中的单个权重,g s表示梯度。此外,在[3,36]中,提出了基于特征图的经验敏感度。直观上,特征图的敏感度反映了它对下一层的预激活的相对影响。在本文中,我们尝试在随机修剪下比较这六个度量标准。04. 修剪预训练网络0在本节中,介绍了修剪预训练模型的随机过程。流程如图2所示。修剪算法从预训练网络开始。首先计算预训练网络中各个通道的重要性分数。重要性分数是下一步修剪哪些通道的指标。然后我们选择一些子架构,并修剪得分最低的通道。子架构是通过分别对每个层采样修剪比例,然后修剪按比例给出的通道数形成的。设置了剩余通道的最小比例。也就是说,修剪比例的采样范围是[η,1]。接下来,通过最小化修剪网络的特征图和原始网络之间的平方差,更新修剪网络的参数,并在验证集上评估修剪网络的准确性。1950选择了前5个准确率较高的模型,并进行了几个时期的微调,以进一步恢复网络的准确性。最后,选择具有最佳准确性的模型,并进行更长时间的微调。接下来,详细解释了流程中的重要步骤。04.1. 随机抽样0通过独立地随机抽样每个层的修剪比例来得到子网络。总共抽样了N个子网络。保留满足目标计算复杂度的配置。具体而言,设C prune 和C orig分别表示修剪网络和原始网络的浮点运算(FLOPs),则保留满足以下条件的样本0C prune C orig − γ ≤ T,(1)0其中γ是网络的整体修剪比例,T是限制实际修剪比例与目标修剪比例之间差异的阈值。在抽样过程中,剩余通道的最小比例η根据以下考虑经验性地设置为(等于或略小于)整体修剪比例γ。1)这种设置足够简单,不涉及复杂的超参数调整。2)它为算法探索一个合理受限的随机抽样子空间。η的设置防止了在某一层中大部分通道被修剪的情况。网络中的瓶颈可能会影响修剪网络的性能。随机抽样过程搜索配置空间。尽管看起来很简单,但实验证明这个过程出人意料地具有竞争力。04.2. 更新网络参数0对于每个抽样的子架构,根据每层的修剪比例直接修剪网络。然而,在修剪后,网络的准确性很可能会急剧下降,特别是当修剪比例很高时。直接评估修剪网络是不可靠的。常见的做法是对网络进行几个时期的微调。但考虑到抽样了大量的子网络,这可能耗时。因此,我们选择另一种解决方案,即最小化修剪网络和原始网络的特征图之间的距离[20,29,45]。设Fp ∈ Rn'×d和Fo ∈ Rn×d0分别表示修剪网络和原始网络的特征图。注意,特征图被重塑为矩阵。由于网络被修剪,其特征图的通道数少于原始网络,即n'
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功