深度学习模型压缩方法综述(一)
深度学习模型压缩方法综述(二)
深度学习模型压缩方法综述(三)
前言
上一章,将基于核的稀疏化方法的模型压缩方法进行了介绍,提出了几篇值得大家去学习的论文,本章,将继续对深度学习模型压缩方法进行介绍,主要介绍的方向为基于模型裁剪的方法,由于本人主要研究的为这个方向,故本次推荐的论文数量较多,但都是非常值得一读的。
基于模型裁剪的方法
对以训练好的模型进行裁剪的方法,是目前模型压缩中使用最多的方法,通常是寻找一种有效的评判手段,来判断参数的重要性,将不重要的connection或者filter进行裁剪来减少模型的冗余。同样也分为regular和irregular的方式。 这类方法最多,下面列举几篇典型的方案。
Pruning Filters for Efficient Convnets 论文地址
作者提出了基于量级的裁剪方式,用weight值的大小来评判其重要性,对于一个filter,其中所有weight的绝对值求和,来作为该filter的评价指标,将一层中值低的filter裁掉,可以有效的降低模型的复杂度并且不会给模型的性能带来很大的损失,算法流程如下:
裁剪方式如下:
对于ResNet之类的网络:
作者在裁剪的时候同样会考虑每一层对裁剪的敏感程度,作者会单独裁剪每一层来看裁剪后的准确率。对于裁剪较敏感的层,作者使用更小的裁剪力度,或者跳过这些层不进行裁剪。目前这种方法是实现起来较为简单的,并且也是非常有效的,它的思路非常简单,就是认为参数越小则越不重要。Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures 论文地址
作者认为,在大型的深度学习网络中,大部分的神经元的激活都是趋向于零的,而这些激活为0的神经元是冗余的,将它们剔除可以大大降低模型的大小和运算量,而不会对模型的性能造成影响,于是作者定义了一个量APoZ(Average Percentage of Zeros)来衡量每一个filter中激活为0的值的数量,来作为评价一个filter是否重要的标准。APoZ定义如下:
作者发现在VGG-16中,有