Learning Filter Pruning Criteria for Deep Convolutional Neural Networks Acceleration
https://openaccess.thecvf.com/content_ECCV_2018/papers/Zehao_Huang_Data-Driven_Sparse_Structure_ECCV_2018_paper.pdf
background
NN部署balabala~~~。
related work and the limit
经典的三段式(training-pruning-finetune)裁剪方法,很重要的一个步骤就是如何选择合适的重要性评判标准(select an appropriate pruning criterion is the key ingredient)。现有方法存在两个问题:1、对所有层采用相同的criterion,没有考虑到不同层特征的不同分布;2、现有方法大多贪心地逐层独立裁剪,没有考虑到各层对最终精度的协作作用。
novel points
提出了加入criterion采样器的方法,通过学习来为每一层选择合适的criterion,同时该采样器是在学习中通过Loss来同步更新的,所有能够同时考虑所有层。
本质上,就是对SFP等方法加入了可微NAS的模块,搜索空间为criterion (对每一层有L1 / L2 / GM 三种选择, 所以搜索复杂度只有 3N)
methodology
采用基于可微梯度的NAS搜索方法(Darts系列)来实现采样器Sampler(就是对每一层的每一种待选criterion加一个结构参数α)。对每一个卷积层,首先分别采用不同的criterion来进行评估得到裁剪方案,然后根据概率P来对每一种方案的输出进行加权并对齐求和。这里的对齐是因为各种裁剪方案下所裁剪掉的filter可能是不同的,只对各个criterion下保留的filter结果进行组合。这里的概率P由α通过softmax获得,为实现离散采样的梯度传播,采用Gumble-Softmax。
具体算法流程如下,从算法来看,这里给出的是针对预训练模型的裁剪,只进行结构参数α的搜索,寻找到该pretrained模型下的最优criterion组合,再进行裁剪后模型的finetune。
evaluation(benchmark, experiments design)
ResNet系列在 Cifar10/Cifar100/ImageNet上的结果,最终结果是很优秀的,在Cifar10上压缩Res56,在裁剪掉53%FLOPs的同时可以保留93.24%的精度,在ImageNet上,裁剪掉61%的FLOPs可以达到94.46%的精度。但是只给出了几个最终结果,没有多个裁剪量级上的结果展示,也没有更多网络或不同任务上的泛化性结果。例如ImageNet上只给出裁剪掉61%的FLOPs的结果,比较的对象却是其它方法裁剪掉50%的结果,精度没有现有方法高,无法有效证明该方法的有效性。
更多试验,证明了 large-norm-more-importance,有点意义不大。。。对于训练过程中,criterion逐渐趋于收敛的现象也没有更充分的解释或进一步试验。。。。
Thoughts:
1、 Describe what the authors of the paper aim to accomplish, or perhaps did achieve.
采用NAS来自动搜索各层的裁剪criterion,代替人工选择。
2、 If a new approach/ technique/ method was introduced in a paper, what are the key elements of the newly proposed approach?
套用了基于梯度的NAS模式,进行了一个较小搜索空间上的搜索。最终结果还较为可观,但是没有进一步的解释说明,只是归结于了NAS的大力出奇迹。。。
3、 What content within the paper is useful to you?
将搜索空间扩展到criterion,确实是比较新颖的一个方向
4、 Which parts are not perfect, or need to be improved or researched further?
a、 实验结果不完善不充分。。。评审居然没有提出意见???
b、 搜索空间较少,只有三种待选criterion,且L1/L2相似度较高
c、 这里的实现只适用于weights-based评估策略,可以考虑更进一步加入基于激活值的策略,扩大搜索空间
d、 很重要的一个问题:前文说不同层有着不同粒度的特征提取,但后文基本再无提及。这里只是将NAS套用,没有更多地讨论分析
e、 不同层采用criterion是否真的有用???搜索更好的criterion是很好的方向,但是否应该是在不同层实现异构搜索?该搜索结果对于CNN的特征解释是否能带来一些启示?
5、 What other references do you want to follow?
本篇参考文献中应该有一些filter特征的分析。[52] J. Yosinski, J. Clune, A. Nguyen, T. Fuchs, and H. Lipson. Understanding neural networks through deep visualization. ICML Deep Learning Workshop, 2015. 2