一、introduction
动机:作者发现网络剪枝超过了一定的稀疏程度(约95%)后,一些经典剪枝方法(SNIP,GRASP)不能保证网络性能,甚至比随机修剪还要差。
(* 笔者:大部分应用类剪枝不会往95%以上剪,研究极稀疏的情况是否有意义?)
- SNIP(Lee et al. (2019)):分析初始化时每个权重对损失函数的影响,预测每个权重在随后的训练中的重要性
- GRASP(Wang et al. (2020)):认为SNIP在剪枝前的预测准则是次优的,提出在剪枝后最大化梯度范数gradient norm的近似(一阶泰勒近似)。达到在稀疏情况下优于SNIP的效果。
本文提出的标准为 Foresight Connection sEnsitivity (FORCE),通过两个过程逐步优化:
- 迭代SNIP:在每一步删除一小部分权重,并在每一轮修剪后重新计算梯度。
- FORCE:也是迭代,但允许经过修剪的参数恢复。
注:本文的剪枝是初始化剪枝,在训练权重更新之前找到稀疏的子网络。SNIP和GRASP也是。同时本文是希望在极端剪枝率(甚至99%)情况下保证网络的可训练性。
二、FORESIGHT CONNECTION SENSITIVITY
网络可训练性的衡量标准:connection sensitivity。定义为去除神经网络的连接后对其前向和后向信号产生显著的影响。
计算方式:经过一个batch后的G*W,而SNIP只考虑梯度变化
算法的思路是暴力遍历所有符合约束的子网络,然后找到最优解。但是暴力遍历无法实现,所以用两个方案求近似解。
1. 迭代SNIP / progressively increasing the degree of pruning
假设每次修剪保留的parameters为K,根据schedule表(下文交代)逐渐把网络从Kt修剪到Kt+1。当总修剪次数T=1时,就相当于SNIP。次数T与最终的结果是有关的,迭代SNIP获得的每个中间结构是一个局部极小值,T增加则越接近最优解。
2. FORCE / Progressive Sparsification
在修剪过程中的parameters不会被删除,而是暂时weight=0,gradient有可能不等于0,所以有可能被恢复。稀疏性满足要求后weight=0的parameters才会被剪掉。
3. Sparsity schedule / K的更新方式
三、experiments
基本上优势体现在保留5%以下的网络中。到10%以上,迭代压缩的优势就不明显了。
从上表看,大部分效果甚至不如random(……)尤其是resnet50,作者猜想对于一个具挑战性的任务(Imagenet有1000个类),Resnet50架构可能不会被过度参数化。
网络结构特征:高稀疏性(99.9%)时,更少的层数比层数多但每层更稀疏会好一些。