论文:Structured Pruning for Deep ConvolutionalNeural Networks: A survey
摘要
深度卷积神经网络(CNN)的卓越性能通常归因于它们更深、更宽的架构,这可能会带来巨大的计算成本。因此,修剪神经网络已经引起了人们的兴趣,因为它有效地降低了存储和计算成本。与导致非结构化模型的权重修剪不同,结构化修剪通过产生对硬件实现友好的模型,提供了实现加速的好处。结构化修剪的特殊要求导致了许多新挑战的发现和创新解决方案的开发。本文调查了深度CNN结构化修剪的最新进展。我们总结并比较了最先进的结构化修剪技术,包括滤波器排名方法、正则化方法、动态执行、神经架构搜索、彩票假说以及修剪应用。
1. 简介
尽管transformer中的自我关注[20]在计算序列表示方面是有效的,但transformer由于缺乏归纳偏差,仍然需要大量的训练数据。相比之下,CNN的结构强制对权重施加两个关键归纳偏差:局部性和权重共享,以提高学习算法的泛化能力并独立于数据。
2. 方法
2.1 权重
权重依赖标准根据滤波器的权重来评估滤波器的重要性。与基于激活的方法相比,权重依赖方法不涉及输入数据。因此,权重依赖方法被认为是简单明了的,并且需要较低的计算成本。权重依赖标准有两个子类别:滤波器范数和滤波器相关性
2.1.1 滤波器范数
结构化修剪计算滤波器范数值作为度量。滤波器的`p-范数可以写为:
2.1.2 滤波器相关性
通过几何中值的滤波器修剪(FPGM)[51]揭示了“小范数-不太重要”的假设并不总是正确的,这基于神经网络的实际分布。它不是修剪掉不重要的滤波器,而是通过利用同一层中滤波器之间的关系来查找冗余滤波器
结构冗余减少(SRR)[55]通过寻找最冗余层来利用结构冗余,而不是所有层中最低排名的过滤器。
2.2 激活值
激活图是输入数据和滤波器(公式1)的卷积结果。除了使用滤波器的权重,激活图也可以用于滤波器修剪。激活通道修剪是滤波器修剪的另一个名称,因为删除激活图的通道相当于删除滤波器。除了当前层的影响外,滤波器修剪还通过特征图影响下一层的滤波器。
1)当前层 - 通道重要性可以通过使用重建误差[58]、激活图分解[59]、通道独立性利用[61]和后激活[62],[63]来评估;
2)相邻层 - 冗余通道可以通过利用当前层和下一层之间的依赖关系有效地识别[66],[67]。此外,前一层的激活图也可以用来指导修剪决策[123],[124];
3)所有层 - 删除过滤器的整体效果可以通过最小化最终响应层[69]的构造误差并考虑所有层[70]的判别能力来评估。
…
2.2.3 所有层
尽管现有方法取得了成功,但神经元重要性评分传播(NISP)[69]的支持者认为,大多数方法并未考虑重建误差的传播。NISP提出使用最终响应层(FRL)来确定神经元的重要性,因为来自所有先前层的重建误差最终都会传播到FRL。最初,FRL的重要性得分可以由任何特征排名技术确定,例如Inf-FS [226]。然后,神经元的重要性被向后传播。最后,层中重要性得分低的神经元被修剪。被修剪的神经元将不再向前一层反向传播得分。
歧视感知通道修剪(DCP)[70]旨在保留在缺失时会显著改变最终损失的歧视性通道。然而,修剪浅层通常会由于传播路径较长而触发较小的最终损失减少。为了解决这个问题,Zhuang等人在每个中间层的最后一层引入了歧视感知损失。然后使用贪心算法根据歧视感知损失和基线网络与修剪网络之间的重建损失来选择通道。
2.3 正则化
正则化可以通过添加不同的稀疏正则化器Rs(·)来学习结构化稀疏网络。如果网络包含批量归一化层,则稀疏正则化器可以应用于BN参数。为了实现结构化稀疏性,BN参数用于指示诸如通道或滤波器之类的结构的修剪决策。
引入了作为可学习门的额外参数来指导修剪。有了这些额外的参数,网络不再需要批量归一化层。稀疏正则化器也可以直接应用于滤波器。群套索正则化通常用于以结构化方式稀疏化滤波器。
2.3.1 bn正则化
Network Slimming(NS)[73]直接使用BN中的缩放参数γ来控制输出通道。然后引入通道级稀疏诱导的1正则化,以与γ一起联合训练权重。训练后,接近零的γ对应的通道被修剪。为了优化非光滑的1惩罚项,使用了次梯度下降[228]。
与NS [73]的情况类似,门控批量归一化(GBN)[74]使用γ作为通道级门,并使用γ的`1范数作为正则化项。提出了一个Tick-Tock修剪框架,通过迭代修剪来提高准确性。Tick阶段使用少量数据训练网络,在训练一个时期期间,只允许更新门和最终线性层。同时,通过一阶泰勒展开计算全局滤波器排名的通道重要性。然后,Tock阶段使用稀疏性约束对稀疏网络进行微调。
EagleEye [78]提出了一个三阶段的流程。首先,通过简单的随机抽样生成修剪策略(即,逐层修剪比率)。其次,根据修剪策略和滤波器的`1范数生成子网络。第三,使用基于自适应BN的候选评估模块来评估子网络的性能。李等人认为,过时的BN统计数据对子网络评估不公平,每个候选人的BN统计数据都应在训练数据集的一小部分上重新计算[78]。在使用自适应BN统计数据评估子网络后,选择性能最佳的一个作为最终修剪模型。
2.3.2 额外的参数