文章目录

  • 1.摘要和介绍
    • 1.1摘要部分
  • 2.背景和方法
    • 2.1 背景
    • 2.2 贡献
    • 2.3 方法
  • 3.实验和结果
    • 3.1 实验
    • 3.2 结果
  • 4.总结和展望
    • 4.1 总结
    • 4.2 展望

本系列是在阅读深度神经网络模型小型化方面论文时的笔记!内容大部分从论文中摘取,也会有部分自己理解,有错误的地方还望大家批评指出!

论文链接:Meta Filter Pruning to Accelerate Deep Convolutional Neural Networks

1.摘要和介绍

1.1摘要部分

原文摘要:
Existing methods usually utilize pre-defined criterions, such as ‘ p-norm, to prune unimportant filters. There are
two major limitations in these methods. First, the relations of the filters are largely ignored. The filters usually work
jointly to make an accurate prediction in a collaborative way. Similar filters will have equivalent effects on the network prediction, and the redundant filters can be further pruned. Second, the pruning criterion remains unchanged during training. As the network updated at each iteration, the filter distribution also changes continuously. The pruning criterions should also be adaptively switched.
传统的通道裁剪方法都是需要预先定义通道的裁剪准则,然后使用该一成不变的准则对网络进行裁剪,而其中使用的是裁剪准则是不考虑通道之间的相关性,如:lp_norm。该方法存在下面两个问题:1)没有考虑网络中不同通道之间的相关性。一般而言,相关性大的两个通道就可以裁剪掉其中的一个。2)没有考虑网络更新过程中状态的改变。应该使用自适应的通道裁剪准则。
In this paper, we propose Meta Filter Pruning (MFP) to solve the above problems. First, as a complement to the existing ‘p-norm criterion, we introduce a new pruning criterion considering the filter relation via filter distance.
Additionally, we build a meta pruning framework for filter pruning, so that our method could adaptively select the most appropriate pruning criterion as the filter distribution changes. Experiments validate our approach on two image classification benchmarks. Notably, on ILSVRC-2012, our MFP reduces more than 50% FLOPs on ResNet-50 withonly 0.44% top-5 accuracy loss.
文章提出了一种基于元学习的通道删除方法。主要是改进了上面提出的另个问题。其中为了解决第一个问题,提出了两种用于度量两个不同通道之间的相关性的方法,并将其作为新的通道裁剪准则,与常用lp_norm准则一起构成裁剪准则候选集合;为了解决第二个问题,提出了一种基于元学习的自动选择合适的通道裁剪准则框架,其在每一个epoch中会根据当前网络的状态,自动从通道裁剪集合中选择合适的裁剪准则。最终,本文实现了在ILSVRC-2012数据集上,对模型resnet50裁剪50%的flops,得到0.44%的top_5的精度。

2.背景和方法

2.1 背景

  • 为了在计算资源有限的平台上(手机等终端设备)上使用深度神经网络模型,对模型的裁剪是必须的。其中对模型的裁剪分为:权重的裁剪(weight pruning)和卷积通道( filter pruning)的裁剪。其中前者是对神经元进行裁剪,而后者是将整个通道都删除了。前者因为得到的是非结构化稀疏(unstructured sparsity)无发很好的利用基本线性代数子程序库(BLAS)进行加速,所以意义不是很大,所以大家基本上都是研究通道级别的裁剪,因为其得到的是结构化的稀疏( structured sparsity)。
  • 在过去的工作中,裁剪的准则主要分为两种:1)系数值越小则越不重要(smaller-norm-less-important),即:如果某个通道的卷积系数或者BN层的稀疏比较小,那么该通道对于结果贡献就不大,可以删除。所以,该类方法大多采用正则化的方法使得模型的系数稀疏化,从而达到裁剪通道的目的。但是该方法没有考虑到通道之间的相关性。2)基于通道之间的相关性(Relational Criterion),相关性越大的两个通道,则必定有一个是冗余的。采用的方法是使用几何均值筛选中模型中最不重要的通道,因为越是接近集合均值的通道这说明和剩下的通道相关性越大,则可以被删除。
  • 传统的通道裁剪存在以下两个问题:1)通道之间的相关性度量方法尝试太少;2)由于通道的裁剪,模型中卷积核的参数分布是动态变换的,所以固定不变的通道裁剪准则是不是不太合适。

2.2 贡献

  • 提出了两种新的通道相关性度量的方法
  • 提出了基于元学习的通道裁剪准则自适应变换框架,从而尽可能的降低裁剪前后模型之前的loss差异
  • 在常用的数据集:cifar10和ImageNet上对常用的模型(resnet , vggnet等)进行试验,得到的实验记过非常好。

2.3 方法

  • 在每一个epoch过程中,分别会根据lp_norm准则和distace_norm准则,对网络中所有的通道进行排序,然后通过元学习的方法筛选出适合当前状态的通道裁剪准则,并按照该准则的分数对模型进行裁剪。
  • 其中距离准则下使用了Minkowski Distance和Cosine Distance,并通过计算当前通道与剩下所有通道之间距离之和然后再求平均得到的值表示该通道的相关性分数,分数越大则表示通道越重要。
  • lp_norm准则下,使用的是l1和l2正则化来产生稀疏性,然后计算当前通道参数的1范数或者2范数作为通道重要性的分数,分数越大,则通道越重要。
  • 文章的优化目标是降低模型裁剪前后元属性,其中元属性可以为:sparsity level κ, the mean value of weights,
    top-5 loss, top-1 loss等。

3.实验和结果

3.1 实验

  • 数据集:CIFAR-10 , ILSVRC-2012
  • 模型: ResNet , VGGNet
  • 每个实验重复三次,并对结果取均值和方差
  • Minkowski distance with p = 1; 2 cosine distance

3.2 结果




  • 通过上面的实验结果可以看出,无论是在resnet模型还是vggnet模型,在数据集cifar10和imgnet上的结果都比其他方法要好,即:更大的裁剪量可以得到更好的模型
  • 在裁剪量小于40%的时候,在resnet-100,数据集cifar10上,得到的裁剪后的模型精度比未裁剪的要好。
  • This means the performance of our framework is not sensitive to the pruning interval
  • we find that during the early training process, the distance-based criteria are adopted less than norm-based criteria

4.总结和展望

4.1 总结

  • 本文的方法不仅使用基于系数大小的裁剪准则,还使用了基于相关性的裁剪准则,使得结果更好
  • 本文提出了一种基于元学习的自适应选取裁剪准则的框架,可以在每个epoch下,更根据模型的状态选择合适的裁剪专责。
  • MFP achieves comparable performance with state-of-theart methods in several benchmarks.

4.2 展望

  • 目前裁剪准则的查找是在epoch级别上,未来可以考虑将其做在层上。
  • 可以尝试更多的元属性。

深度模型压缩论文(01)- Meta Filter Pruning to Accelerate Deep Convolutional Neural Networks相关推荐

  1. 《Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks》论文笔记

    1. 概述 这篇文章中给出了一种叫作SFP(Soft Filter Pruning),它具有如下两点优点: 1)Larger model capacity.相比直接剪裁掉网络中的filters,再在这 ...

  2. 论文阅读——ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks

    ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks 改进版通道注意力 from CVPR2020 期 ...

  3. 读论文11——Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks

    目录 Abstract Introduction Background CNN Basis A Real-Life CNN the Roofline Model Accelerator Design ...

  4. 【论文翻译_模型二值量化】Learning Channel-wise Interactions for Binary Convolutional Neural Networks

    tips:因为是翻译给自己看的,所以作者什么的没提了. 论文名称:Learning Channel-wise Interactions for Binary Convolutional Neural ...

  5. 《每日论文》ImageNet Classification with Deep Convolutional Neural Networks

    这篇论文是剖析 CNN 领域的经典之作,也是入门 CNN 的必读论文.作者训练了一个面向数量为 1.2 百万的高分辨率的图像数据集 ImageNet, 图像的种类为 1000 种的深度卷积神经网络. ...

  6. AlexNet论文翻译(中英文对照版)-ImageNet Classification with Deep Convolutional Neural Networks

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[AlexNet纯中文版] ImageNet Classification with De ...

  7. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  8. ImageNet Classification with Deep Convolutional Neural Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers- ...

  9. 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (2/3)

    文章目录 3. The Architecture 3.1. ReLU Nonlinearity 3.2. Training on Multiple GPUs 3.3. Local Response N ...

最新文章

  1. input(position 1) must be Tensor, not NoneType
  2. 抢占大数据产业发展先机
  3. Tomcat修改端口、添加域名访问
  4. SAP主数据与业务数据的一致性问题
  5. Erlang与java的内存架构比较
  6. python canny检测_【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)...
  7. julia 与并行计算(部分有参考和转载)
  8. 计算机网络第四章总结
  9. mingw-w64-i686-toolchain
  10. C-V2X灵魂拷问:爆发 | 挑战 | 价值 | 盈利 | 竞合 | 引领
  11. java虚拟键盘_如何用Java为其他程序制作虚拟键盘?
  12. c语言编程实现scp功能,scp源码浅析
  13. 蓝色大气的交替导航菜单
  14. 5G原理,5G给生活的影响,5G影响的行业
  15. 如何替换空格、回车符
  16. java字符串Emoji表情的处理
  17. 【荐】DIV+CSS仿360buy京东商城导航条
  18. 如何进行安全可靠的API身份验证?
  19. Red Hat Enterprise Linux 8.8 正式版
  20. 六、 进程的三种基本状态

热门文章

  1. wince6下usb摄像头(UVC)使用指南
  2. 华为笔记本软件商店_华为应用市场电脑版
  3. android 动画 返回,Android“菜单图标变返回”动画
  4. python linux运维教程 推荐_Linux运维人员成长之路学习书籍推荐
  5. visual studio 没有属性页_驯龙物语10月14日更新|新增快捷购买页签
  6. 【转】Postman系列二:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作)
  7. 第三节:ThreadPool的线程开启、线程等待、线程池的设置、定时功能
  8. linux系统管理Linux系统实验,实验三 linux系统管理
  9. 【JS 逆向百例】反混淆入门,某鹏教育 JS 混淆还原
  10. CCIE-LAB-第九篇-BGP下一跳+EBGP防环+伪装AS+通过标签过滤路由