1. 概述
导读:论文中研究了在资源限制环境下实现较少资源消耗网络推理的两种不同模型压缩方法(结构化剪枝压缩:small-dense与非结构化剪枝压缩:large-sparse),并且提出了一种在多种模型与数据上可以直接使用的新逐渐剪枝方法,并且可以集成到训练过程中去。文中比较了剪裁之后大且稀疏(large-sparse)与小与稠密模型的精度(small-dense),这些模型涵盖了深度CNN网络、多层LSTM与seq2seq LSTM模型,这两种模型的内存占用是相同的,发现大且稀疏的模型在精度上是好于后者的,且在精度损失最小的情况下,使非零参数的数量减少10倍。
从设备上神经网络推理的角度来看,给定模型内存占用限制条件下,如何才能得到最准确的模型?为了回答上面的问题论文给出了两个等价的解决方案:
- 1)非结构化剪枝压缩(large-sparse):训练一个大模型,最后通过剪裁得到只有很小一部分非零参数的大稀疏模型;
- 2)结构化剪枝压缩(small-dense):训练一个小而稠密的模型,参数的数量与大而稀疏的模型一致;
论文还提出了一个简单的渐进修剪方法,它需要最小的调整,就可以无缝地集成到网络训练过程中,并且展现出了它在各种神经网络架构上的适用性和性能表现。而且文章的方法也比较通用,文章提出的方法不用考虑网络的结构以及网络层的连接关系。
2. 剪裁方法
2.1 方法
这篇文章的方法是在TensorFlow环境下开发的,对于每个需要裁剪的层的权重使用一个与权重维度大小的二值mask变量表示是否剪裁掉。在每次裁剪的时候将权值取绝对值,然后按照由小到大排列,在迭代过程中通过mask置0来逐渐达到期望的权值稀疏度 s s s。这里mask被置为0的权值在网络进行反向传播的时候是不会被更新的。这里设置初始的裁剪稀疏度为 s i s_i si( i = 0 i=0 i=0),最后期望的稀疏度为 s f s_f sf