目录
摘要
分类
1、依赖权重
2、基于激活函数
3、正则化
3.1 BN参数正则化
3.2 额外参数正则化
3.3 滤波器正则化
4、优化工具
5、动态剪枝
6、神经架构搜索
性能比较
摘要
深度卷积神经网络(CNNs)的显著性能通常归因于其更深层次和更广泛的架构,这可能会带来巨大的计算成本。剪枝神经网络有效地降低了存储和计算成本,因此引起了人们的兴趣。与导致非结构化模型的权重剪枝相比,结构化剪枝通过生成对硬件实现友好的模型,提供了现实加速的好处。结构化剪枝的特殊要求导致了许多新挑战的发现和创新解决方案的发展。本文综述了深度CNN的结构化剪枝的最新进展。我们总结和比较了最新的结构化剪枝技术,包括过滤器排序方法、正则化方法、动态执行、神经结构搜索、彩票假设和剪枝的应用。在讨论结构化剪枝算法时,我们简要介绍了非结构化剪枝对等物,以强调它们的区别。
分类
1、依赖权重
与权重相关的准则基于过滤器的权重来评估过滤器的重要性。与基于激活的方法相比,依赖于权重的方法不涉及输入数据。因此,依赖于权重的方法被认为是简单的,并且需要更低的计算成本。与权重相关的准则有两个子类别:滤波器范数和滤波器相关性。
2、基于激活函数
激活映射是输入数据和滤波器的卷积结果。除了使用过滤器的权重外,激活映射还可以用于过滤器剪枝。激活通道剪枝是过滤器剪枝的另一个名称,因为删除激活映射的通道相当于删除过滤器。除了当前层的影响外,过滤器剪枝还会通过特征映射影响下一层的过滤器。
3、正则化
正则化可以通过添加不同的稀疏正则化器Rs(·)来学习结构化的稀疏网络。如果网络包含批处理归一化层,则稀疏性正则化器可以应用于BN参数。为了实现结构稀疏性,BN参数用于表示结构,如通道或滤波器的剪枝决策。引入了额外的参数作为可学习门的工作来指导修剪。有了这些额外的参数,网络就不再需要批处理规范化层了。稀疏性正则化器也可以直接应用于滤波器。群套索正则化通常用于以结构化的方式稀疏滤波器。
3.1 BN参数正则化
BN层在许多现代神经网络中被广泛应用,以提高模型泛化。通过对每个小批训练进行归一化,解决了内部协变量移位问题。
3.2 额外参数正则化
3.3 滤波器正则化
4、优化工具
5、动态剪枝
动态剪枝可以在训练和推理过程中进行。动态修剪在训练过程中的目的是通过在训练过程中保持动态剪枝掩模来保持模型的代表性能力。它也被称为软剪枝,以确保不适当的修剪决策可以稍后恢复。另一方面,硬修剪永久去除与一个固定的面具的重量。推理过程中的动态修剪表明,网络是根据不同的输入样本进行动态修剪的。例如,与一个复杂的图像相比,一个包含清晰目标的简单图像需要更少的模型容量。因此,动态推理提供了更好的资源-准确性的权衡。
6、神经架构搜索
由于手动确定与剪枝相关的超参数很麻烦,如分层剪枝比率,因此提出了神经结构搜索(NAS)[25]来自动查找剪枝结构。
性能比较
最新剪枝方法性能比较
参考资料:Structured Pruning for Deep Convolutional Neural Networks: A survey