原文链接:https://openaccess.thecvf.com/content_CVPR_2019/papers/He_Filter_Pruning_via_Geometric_Median_for_Deep_Convolutional_Neural_Networks_CVPR_2019_paper.pdf 发表:CVPR2019
code: https://github.com/he-y/filter-pruning-geometric-median
编辑:牛涛
传统剪枝是以卷积核的范数大小作为重要性评判标准,理想情况下其分布应该符合以下几个要求,方差很大即遍布很大范围的值域,同时要求极小值要接近0,这样按照阈值去剪枝的时候才能把真正意义上不重要的剪掉(范数很小即绝对小,与其他相比也小即相对小),如下图
但是实际情况往往做不到这么理想,其分布可能如下图
因此采用另一种重要性评估方式,不通过范数大小,而采用几何中值的方法,认为几何中值附近的卷积核可以用其他的表示,首先给出了几何中值的定义。
同样的,对于某一层卷积核来说,也可以定义如下几何中心:
通过找到距离几何中心最小的filter,我们认为可以安全删除他(看到别的博客举了个例子,比如有三个点(1,0),(1,1),(0,1),(1,1)就是离几何中心近的,他可以用另外两个点加权得到,具体可以参考几何深度学习这一领域)
计算上述几何中心复杂度很高,因为filter一般都是很高维的,因此对几何中心松弛,假定
也就是默认其中一个filter等于几何中心,现在问题转变为找到距离其他filter最近的那个,然后把他删掉。文章的伪代码如下:
仍然是一种软剪枝的策略,每次在训练一个epoch后计算每个filter和其他的距离,按比例Pi找到距离最近的哪些并置零,重复上述步骤直到收敛,再把权重中的0删去即得到轻量化网络。
实验结果:
没啥有用的