文章目录
- 1.摘要和介绍
- 1.1摘要部分
- 2.背景和方法
- 2.1 背景
- 2.2 贡献
- 2.3 方法
- 3.实验和结果
- 3.1 实验
- 3.2 结果
- 4.总结和展望
- 4.1 总结
- 4.2 展望
本系列是在阅读深度神经网络模型小型化方面论文时的笔记!内容大部分从论文中摘取,也会有部分自己理解,有错误的地方还望大家批评指出!
论文链接:Meta Filter Pruning to Accelerate Deep Convolutional Neural Networks
1.摘要和介绍
1.1摘要部分
原文摘要:
Existing methods usually utilize pre-defined criterions, such as ‘ p-norm, to prune unimportant filters. There are
two major limitations in these methods. First, the relations of the filters are largely ignored. The filters usually work
jointly to make an accurate prediction in a collaborative way. Similar filters will have equivalent effects on the network prediction, and the redundant filters can be further pruned. Second, the pruning criterion remains unchanged during training. As the network updated at each iteration, the filter distribution also changes continuously. The pruning criterions should also be adaptively switched.
传统的通道裁剪方法都是需要预先定义通道的裁剪准则,然后使用该一成不变的准则对网络进行裁剪,而其中使用的是裁剪准则是不考虑通道之间的相关性,如:lp_norm。该方法存在下面两个问题:1)没有考虑网络中不同通道之间的相关性。一般而言,相关性大的两个通道就可以裁剪掉其中的一个。2)没有考虑网络更新过程中状态的改变。应该使用自适应的通道裁剪准则。
In this paper, we propose Meta Filter Pruning (MFP) to solve the above problems. First, as a complement to the existing ‘p-norm criterion, we introduce a new pruning criterion considering the filter relation via filter distance.
Additionally, we build a meta pruning framework for filter pruning, so that our method could adaptively select the most appropriate pruning criterion as the filter distribution changes. Experiments validate our approach on two image classification benchmarks. Notably, on ILSVRC-2012, our MFP reduces more than 50% FLOPs on ResNet-50 withonly 0.44% top-5 accuracy loss.
文章提出了一种基于元学习的通道删除方法。主要是改进了上面提出的另个问题。其中为了解决第一个问题,提出了两种用于度量两个不同通道之间的相关性的方法,并将其作为新的通道裁剪准则,与常用lp_norm准则一起构成裁剪准则候选集合;为了解决第二个问题,提出了一种基于元学习的自动选择合适的通道裁剪准则框架,其在每一个epoch中会根据当前网络的状态,自动从通道裁剪集合中选择合适的裁剪准则。最终,本文实现了在ILSVRC-2012数据集上,对模型resnet50裁剪50%的flops,得到0.44%的top_5的精度。
2.背景和方法
2.1 背景
- 为了在计算资源有限的平台上(手机等终端设备)上使用深度神经网络模型,对模型的裁剪是必须的。其中对模型的裁剪分为:权重的裁剪(weight pruning)和卷积通道( filter pruning)的裁剪。其中前者是对神经元进行裁剪,而后者是将整个通道都删除了。前者因为得到的是非结构化稀疏(unstructured sparsity)无发很好的利用基本线性代数子程序库(BLAS)进行加速,所以意义不是很大,所以大家基本上都是研究通道级别的裁剪,因为其得到的是结构化的稀疏( structured sparsity)。
- 在过去的工作中,裁剪的准则主要分为两种:1)系数值越小则越不重要(smaller-norm-less-important),即:如果某个通道的卷积系数或者BN层的稀疏比较小,那么该通道对于结果贡献就不大,可以删除。所以,该类方法大多采用正则化的方法使得模型的系数稀疏化,从而达到裁剪通道的目的。但是该方法没有考虑到通道之间的相关性。2)基于通道之间的相关性(Relational Criterion),相关性越大的两个通道,则必定有一个是冗余的。采用的方法是使用几何均值筛选中模型中最不重要的通道,因为越是接近集合均值的通道这说明和剩下的通道相关性越大,则可以被删除。
- 传统的通道裁剪存在以下两个问题:1)通道之间的相关性度量方法尝试太少;2)由于通道的裁剪,模型中卷积核的参数分布是动态变换的,所以固定不变的通道裁剪准则是不是不太合适。
2.2 贡献
- 提出了两种新的通道相关性度量的方法
- 提出了基于元学习的通道裁剪准则自适应变换框架,从而尽可能的降低裁剪前后模型之前的loss差异
- 在常用的数据集:cifar10和ImageNet上对常用的模型(resnet , vggnet等)进行试验,得到的实验记过非常好。
2.3 方法
- 在每一个epoch过程中,分别会根据lp_norm准则和distace_norm准则,对网络中所有的通道进行排序,然后通过元学习的方法筛选出适合当前状态的通道裁剪准则,并按照该准则的分数对模型进行裁剪。
- 其中距离准则下使用了Minkowski Distance和Cosine Distance,并通过计算当前通道与剩下所有通道之间距离之和然后再求平均得到的值表示该通道的相关性分数,分数越大则表示通道越重要。
- lp_norm准则下,使用的是l1和l2正则化来产生稀疏性,然后计算当前通道参数的1范数或者2范数作为通道重要性的分数,分数越大,则通道越重要。
- 文章的优化目标是降低模型裁剪前后元属性,其中元属性可以为:sparsity level κ, the mean value of weights,
top-5 loss, top-1 loss等。
3.实验和结果
3.1 实验
- 数据集:CIFAR-10 , ILSVRC-2012
- 模型: ResNet , VGGNet
- 每个实验重复三次,并对结果取均值和方差
- Minkowski distance with p = 1; 2 cosine distance
3.2 结果
- 通过上面的实验结果可以看出,无论是在resnet模型还是vggnet模型,在数据集cifar10和imgnet上的结果都比其他方法要好,即:更大的裁剪量可以得到更好的模型
- 在裁剪量小于40%的时候,在resnet-100,数据集cifar10上,得到的裁剪后的模型精度比未裁剪的要好。
- This means the performance of our framework is not sensitive to the pruning interval
- we find that during the early training process, the distance-based criteria are adopted less than norm-based criteria
4.总结和展望
4.1 总结
- 本文的方法不仅使用基于系数大小的裁剪准则,还使用了基于相关性的裁剪准则,使得结果更好
- 本文提出了一种基于元学习的自适应选取裁剪准则的框架,可以在每个epoch下,更根据模型的状态选择合适的裁剪专责。
- MFP achieves comparable performance with state-of-theart methods in several benchmarks.
4.2 展望
- 目前裁剪准则的查找是在epoch级别上,未来可以考虑将其做在层上。
- 可以尝试更多的元属性。