论文记录-Pruning Filters For Efficient ConvNets

Posted 莫失莫忘Lawlite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文记录-Pruning Filters For Efficient ConvNets相关的知识,希望对你有一定的参考价值。

1、概述

  • 一些剪枝的操作主要是减少了全连接层的参数,全连接层的参数量占比最多(比如VGG-16中全连接层操作占了90%,计算量只占了不到1%), 但是主要的计算量集中在卷层操作
  • 论文就是提出了对卷积层进行剪枝操作,然后进行retrain,不会造成稀疏连接(像上篇论文一样,稀疏矩阵操作需要特殊的库等来处理)
  • 全连接层可以使用平均池化层来代替以减少参数量

2、对Filters进行剪枝,以及Feature maps

2.1 基础(CNN相关内容)

  • 设第 i 层的卷积层的输入 channel ni , hi wi 表示输入的特征图feature map的高和宽
  • 使用 ni+1 3D filters Fi,jRni×k×k , 则卷积操作可以将输入的feature maps xiRni×hi×wi 转化为 xi+1Rni+1×hi+1×wi+1
  • 卷积操作的运算数量是: ni+1nik2hi+1wi+1 (对应到下图的kernel matrix)
  • 所以如下图所示,取出一个feature map可以直接减少 nik2hi+1wi+1 个运算
    • 同时接下来的feature map也就没有了,附加移除 ni+2k2hi+2wi+2 个运算
  • 所以减少mfeaturemaps 可以减少 m/ni+1 的计算量
    • 下图的kernel matrix,一个 feature map 对应一列,所以是 m/ni+1

2.2 去除哪些filters (在单层中)

  • 之前的论文介绍的,权重的绝对值越小,则权重的作用也就越小
    • [ 假设权重值都在0附近,进行乘积得到的值很小,所以对结果造成的影响也很小 ]
    • [ 删除一些冗余的值还有可能防止过拟合 ]
  • 本文使用的是filter的绝对值的和来衡量这个filter的作用,即 |Fi,j| , ( l1 范数)
    • 选择前m最小的绝对值删除
    • 文章和随机选择相同数量的filters和选择最大值的结果比较,此方法最好
  • VGG-16Cifar-10数据集上训练得到的卷积层的权重分布情况,可以看出每一卷积层的分布变化还是很大的

2.3 剪枝的敏感度(Sensitivity)

  • 就是每一卷积层进行单独剪枝,查看在validation set上准确度的变化
  • 对于VGG-16, 一些卷积层的filter数量是一样的,所以对于差不多 Sensitivity 的卷积层,使用相同的比例进行剪枝,而对于 Sensitivity 比较大的,选择最小的比例进行剪枝或者不进行剪枝

2.4 多层剪枝的策略

  • 之前的一些剪枝策略是逐层剪枝,然后进行retraining,但是这样是非常耗时的
  • 两种策略
    • 独立剪枝:就是每一层是独立的,然后进行剪枝
    • 贪心剪枝:就是考虑到上一层被剪掉的情况
  • 如下图,第一种方法就是不考虑已经前面已经移除的filters(蓝色的),就是黄色的kernel仍然参与计算
    • 而对于贪心剪枝就不用计算黄色的kernel

3、 Retraining

  • 剪枝之后,应该retraining,(和迁移学习很像,有些fine-tune的意思)
  • 也是两种策略:
    • 一次性剪枝然后 retrain
    • 逐层剪枝进行 retrain
  • 第二种策略结果可能会更好,但是需要更多的epochs

4、实验结果

  • 剪枝之后进行retrain,在原来的基础之上得到的结果要比完全重新训练得到的结果好


- 和随机剪枝、减去最大值 l1 范数的filters的结果比较

5、结论

  • 剪枝filters,减少计算量
  • 注意有Batch Normalization层的对应剪枝后,BN层也要对应删除
  • [其实感觉方法挺简单的]

Reference

以上是关于论文记录-Pruning Filters For Efficient ConvNets的主要内容,如果未能解决你的问题,请参考以下文章

论文记录-Deep Compression:Compressing DeepNeural Networks With Pruning, Trained Quantization And Huffman

论文记录-Deep Compression:Compressing DeepNeural Networks With Pruning, Trained Quantization And Huffman

论文阅读 | COMPRESSING BERT: STUDYING THE EFFECTS OF WEIGHT PRUNING ON TRANSFER LEARNING

模型压缩之Channel Pruning

Dijkstra 算法伪代码混淆

GNN论文笔记: Graph Neural Networks with convolutional ARMA filters