这是南京大学与上海交通大学2017年在CVPR上发表的一篇论文,剪枝方法比较具有实操性。
剪枝的思想可以被总结为一句话:(以某一标准)评估每一个神经元的重要性,移除不重要的那些神经元,再finetune整个网络来恢复精度。
所以,剪枝一般有三个阶段:filter selection,pruning,与fine-tuning。
文章创新点:
1. filter selection:
主要思想:如果i+1层中的通道的子集的输入(x)可以近似得到i+1层的输出(y),则其它的通道可以被剪枝。
也就是说,作者认为,只要i+1层的输出不改变太多,则整个模型分类的效果也不会差太多。所以,这个方法是data-driven的,需要先输入一些数据去确定剪枝前后输出是否有变化。作者用Imagenet实验后,发现每个类别大概10张图,每张图10个位置就足够完成分类任务。
寻找需要剪枝的通道用的是一个贪婪算法:
<