To prune,or not to prune: exploring the efficacy of pruning for model compression
论文摘要
15年开始应该是稀疏刚刚兴起,当时发现稀疏后的模型性能和稀疏前的几乎一致,所以认为模型是过于参数化的,将冗余的参数进行置0有利于模型布置在资源受限的设备中,但是需要对模型的大小和精度进行权衡。作者探讨了两种不同的方式对模型在资源受限设备中的压缩,分别是剪枝后的稀疏大模型与没有剪枝但是稠密的小模型之前的,两者占用的内存大小相同。结论认为前者优于后者,对于模型的压缩效果可以达到10x同时精度损失非常小。并且提出了一种渐进的稀疏策略,该稀疏策略可以适应于各种不同的模型中同时只需要小量的改动,和训练过程能够较好的兼容。
相关工作
1990年的Optimal Brain Damage对每一个参数使用对角海森近似来计算显著性,对于低显著性的参数进行剪枝。
1993年的Optimal Brain Surgeon使用海森矩阵的逆矩阵来计算显著性,对低显著性的参数剪枝,其余参数使用二阶信息进行更新
剪枝方法
作者在训练的过程中将权值矩阵的元素的绝对值进行排序,假定设定的稀疏度为 s,将矩阵绝对值最小的部分置为0,直到达到稀疏度 s 为止。紧接着构建了一个mask矩阵,这个矩阵由0,1组成。mask矩阵的size和权值矩阵的大小相等,0的位置对应矩阵原本应该剪枝为0的元素的位置,1对应不需要剪枝的元素的位置。
将mask矩阵和对应的权值矩阵相乘,则得到一个剪枝后的矩阵。反向传播对于那些被mask的权重不会进行更新。
作者引入了自动化的渐进式稀疏训练方法,经过 n 次step后,稀疏度初始值 si (通常为0)递增到最终设定的稀疏度 sf ,假设初训练的初始step为 t0,剪枝的频率为 Δ \Delta Δt ,有以下公式:
s t = s f + ( s i − s f ) ( 1 − t − t 0 n Δ t ) 3 s_t=s_f +(s_i-s_f) {\left( 1- \frac{t-t_0}{n\Delta t}\right)}^3