文章全名:ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression 原文链接

简介

过去几年计算机视觉方面发展迅速,各种模型被提出来提升精度,但是有一个很现实的问题,这些模型对硬件要求高,导致模型受限制无法部署在一些可移动设备上。模型压缩是因此被提出,剪枝也是其中一个非常火的方向去减少模型复杂度。在本文中作者重点关注卷积核级别的剪枝方法,并将其作为一个优化问题,同时作者提出我们需要依据下一层计算的数据统计来剪枝卷积核,这样是ThiNet不同于其他方法的地方,最后经过试验,证明了方法的有效性。

相关工作

许多研究人员发现,深层模型会受到严重的 over-parameterization。实际上一个网络可以有效地利用其原始参数的一小部分来构造。最近的一些方法被提出追求模型大小和准确率的平衡。
Han提出一种迭代的剪枝方法去一处深度模型里面的多余变量,主要的意见是小权值 的连接在一个基准下的应该被抛弃。Lebedev和Lempitsky通过对loss function的组稀疏正则化去探索组稀疏的卷积,这样一些组的权值会被收缩到0,就可以被移除了。
符合我们研究方向的,一些方法也被提出了,核心都是评估神经网络的重要性。
ThinNet整体框架
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
ThiNet的插图。首先,我们关注虚线框。部分确定了几种弱通道及其对应卷积核(第一行用黄色突出显示)。这些通道
(以及相关的卷积核)对整体的影响很小性能,因此可以被丢弃,从而导致一个修剪模型。最后,对网络进行微调以恢复其准确性。

1. Filter selection.

与现有方法使用i层的统计来指导第i层卷积核的修剪,我们使用层i + 1指导层i的修剪。其关键思想是:如果我们可以在层中使用通道的子集(i + 1)的输入来近似第i + 1层的输出,则剩余的v其他通道可以安全地从删除第i+ 1层的输入。注意图层(i + 1)中的一个通道输入是由第i层中的一个卷积核产生的,因此我们可以安全地修剪第i层中相应的卷积核。

2. Pruning.

层(i + 1)的输入的弱通道它们在图层i中对应的卷积核将被修剪离开,导致一个更小的模型。请注意,,剪枝网络具有完全相同的结构但是更少的卷积核和渠道。换句话说,原始的宽网络正在变得越来越薄。这就是为什么我们称我们的方法为“ThiNet”。

3. Fine-tuning.

微调是恢复的必要步骤。过滤修剪破坏了泛化能力。但大型数据集和复杂数据集需要很长时间模型。为了节省时间,我们修剪一层后进行了微调一个或两个epoch。在为了得到一个精确的模型,在所有图层被修剪后更多的epoch会进行。
In order to determine which channel can be removed safely,a training set used for importance evaluation would be col-
lected

Collecting training examples

为例决定哪些通道可以被安全的移除,评估重要性的训练集必须被收集。
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
如上图所示,一个随机采样数据y ,是随机从TensorLi+2(relu之前)采样的。W是卷积核,x是滑动窗口
一个卷积过程如下图所示:
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
如果我们定义为:
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
那么公式1可简化为:
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
这里y^=y-b,值得注意的是x^haty是随机变量,X^=(x1^,xw2^,””,xC^)是独立的。如果找到一个子集S{1,2,…,C’},同时保证

这样一些通道就可以被丢弃了。
作者用贪心算法去解决通道选择问题:
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法
ThiNet:一种深度卷积网络压缩的过滤器级别剪枝方法

相关文章:

  • 2021-04-10
  • 2021-08-09
  • 2021-05-16
  • 2021-10-29
  • 2021-12-23
  • 2022-01-24
  • 2021-10-22
  • 2021-06-01
猜你喜欢
  • 2021-10-08
  • 2021-10-24
  • 2023-02-02
  • 2021-05-19
  • 2021-09-23
  • 2021-12-01
  • 2021-07-06
相关资源
相似解决方案