剪枝实践:图像检索如何加速和省显存 ?

2020-02-21 12:37:54 浏览数 (2)

本文转载自知乎,已获作者授权转载,请勿二次转载。

https://zhuanlan.zhihu.com/p/104447447

本文介绍我们最新的工作《Progressive Local Filter Pruning for Image Retrieval Acceleration》,采用剪枝方法解决深度网络图像检索的加速问题。

一、简介:

近年来,深度学习在图像检索领域取得了“垄断性”地位,而“深”层网络的应用,如Resnet, Densnet等,也在不断刷新图像检索领域的记录。然而,鲜有文章关注检索速度的优化。在实际应用中,图像检索速度是考核应用系统重要指标之一。

为提高图像检索网络的执行效率,模型压缩是一种可行的方案。现有模型压缩方法大多用于解决分类任务,其网络输出为离散的类别信息。与分类任务不同,图像检索网络的输出一般为连续的特征数据。

因此,图像检索网络对于压缩算法更加敏感。也就是说,网络微小改动,可能导致输出特征发生较大变化。为解决此问题,我们提出以下两点解决方案:

二、方法:

1. 尽量保持卷积层filter的原有分布

图1 不同剪枝方法对filter分布的影响

现有剪枝方法中,全局-中心(global center-based)法是一种被广泛应用的方法:针对某一卷积层,该类方法首先选定一个参考中心点,然后根据filter与该中心点的距离对filter进行排序,离中心越近的filter将会被优先删除(如图1(a)左边图中红色的圆点)。

然而,该剪枝方式容易造成剪枝后filter分布出现较大变化(如图1(b)的中间图)。

为解决这一问题,我们采用基于局部的方法:优先选择并删除局部关系最紧密的filter,即若某个filter与其邻接的filter足够相似,则其可被安全删除(如图1(a)右边图中红色的圆点)。由于该方法是对filter的局部修改,因此易于保持filter的整体分布不变(如图1(b)最右侧图)。

2. 尽量保持预训练模型的表征力(Representation ability)

我们希望尽量保持预训练模型表征力不变。然而,删除filter容易造成网络容量(Capacity)变小,进而影响网络输出特征。软剪枝(Soft pruning)类方法将待删除filter先置0,并在微调(finetune)过程中给予其一定机会恢复权重,能够在一定程度上缓解直接删除filter带来的网络容量损失的问题。但若删除filter的比例较大时,其也会严重影响网络表征力。为此,我们提出一种filter权重衰减策略,在训练过程中对待删除filter的权重缓慢减小,即权重乘以衰减因子г,直至其收敛为0或接近于0。

图2 剪枝方法流程

图2展示了我们方法的框架。以图中第二层网络为例,首先根据该层中filter的局部信息,筛选出冗余filter(如橘色的方框)并减小其权重值。在下一次训练(Epoch)中,所有的filter(包括冗余filter)又重新被finetune一次,这时如果有的冗余filter比较重要,则其权重会被重新恢复(如绿色方框)。重复执行此过程,直至冗余filter的权重均被置为0或者接近于0。这时,我们再从网络中删除这些冗余的filter得到压缩后的网络。

三、实验结果-局部信息重要性

我们在两个图像检索(基于VGG-16)数据集Oxford5K和Paris6K,和一个行人重识别(基于Resnet-50)Market-1501数据集上验证了所提出的方法。

表1显示了我们方法在行人重识别Market-1501数据集上的效果,其中k代表局部信息计算的范围,k越大则将在对每一个filter排序时考虑其更多邻接信息。

表1 不同方法行人重识别Market-1501数据集上的效果

从图中可以看出,我们的方法在不同剪枝比例上均优于其它方法,且剪枝比例越大,优势越大。当删除90%的filter时,我们的方法在mAP上至少超越其它方法8%。说明局部剪枝相对全局剪枝具有较大的优势。同时,我们发现,当剪枝比例较少时,大k容易获得好的效果,反之,当剪枝比例较大时,小k更有优势。这一现象有利于我们确定k的值。

同样,如下表,在图像检索应用上,我们方法同样能够在压缩率较高或者相当的情况下,取得要优于其它方法的结果。

四、实验结果-权重衰减的重要性

下图展示了我们的方法在给定不同权重衰减因子г的mAP值变化情况,其中,г越大权重衰减速度越慢,反之衰减越快。可以看出,当剪枝比例较小时,方法对于г并不敏感,反之,当剪枝比例较大时,较小г有利于获得好的结果。

同时,我们也对比了不同算法剪枝后网络(剪枝比例90%)与原始模型(未剪枝)输出特征的欧氏距离。从下表可以看出,我们的方法与原始模型输出特征最为接近。以上实验结果也验证了我们之前的假设,即当剪枝比例较大时,权重衰减策略有利于保持预训练模型表征力。

五、实验结果-特征图

下图我们的方法中(在剪枝90%情况下)Resnet-50第一个卷积层特征图(feature maps)(下标从0至63),其中红色边框图表示被剪枝的特征图。可以看出,这些被剪枝的特征图包括了行人的上衣(59)、帽子(57)、裤子(28)等的特征,这些图均可被其它特征图取代,如上衣(11,42),帽子(1,53),裤子(20,22)等。

文章链接:

https://arxiv.org/abs/2001.08878

目前作者在整理代码,后续会开源,欢迎大家持续关注。


0 人点赞