这是ICLR 2017的一篇文章,文章认为既然我们无法直观得去衡量weights,layers,kernels的重要性,那我们就用random的方式。对于N个要剪枝的对象,我们可以有2^N种组合。在给定裁剪率 α 的情况下,就有 α*2^N种组合。从这些组合中挑选在验证集上精度最大的作为局部最优剪枝。文章建议的N=50,α=40%。
单纯从效果上来讲,还不错:
讨论
但是,读者从自己做裁剪工作的角度来说,这种裁剪方式更像是钻了一个空子:神经网络本身就有很多冗余,随机地对CNN中的weights置0可能并不会影响准确度。这种简单粗暴的方式很难用到更为紧凑的网络架构上,只可能是技术的一种过度。