您现在的位置是:首页 > 文章详情

模型压缩--概述

日期:2020-03-12点击:584

目前在深度学习领域分类两个派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。复杂的模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。

工业层面

当前各大互联网公司都开始注意深度学习模型在工业上的落地。模型压缩工具开始在各家的生产工具中进入主流,并且各家也开源了对应的工具。具体如下:

总体来看,模型压缩方法、工具及应用落地已经在各个大互联网公司呈百花齐放的态势。各家都在构建自己的模型压缩工具及生态环境并努力实现在自家产品的落地(作者接下来会对各个工具做一些性能对比,并选出一家做详细的技术调研)

算法层面

理论算法层面,早在2015年,韩松发表的Deep Compression就是一篇对于模型压缩方法的综述型文章,将裁剪、权值共享和量化、编码等方式运用在模型压缩上,取得了非常好的效果,作为ICLR2016的best paper,也引起了模型压缩方法研究的热潮。

  1. Deep Compressionhttps://arxiv.org/abs/1510.00149

随着研究的深入,当前深度学习模型压缩和加速算法已经成为一个相当庞大且活跃的研究领域涵盖软件和硬件包括众多的技术方向目前深度学习模型压缩方法的研究主要可以分为以下几个方向:

  • 轻量网络设计指重新设计新型网络结构而不局限于仅对现有网络进行优化加速轻量网络设计方向的主要代表论文是 MobileNet v1 / v2 , ShuffleNet v1 / v2 其主要思想是利用 Depthwise ConvolutionPointwise ConvolutionGroup Convolution 等计算量更小更分散的卷积操作代替标准卷积这类模型的计算量通常仅有几十到几百 MFLOPs与传统的大型网络例如 VGG / Inception / ResNet等动辄上 GFLOPs 的计算量相比有明显优势同时在比较简单的任务上与大模型的准确率差距较小
  1. mobileNet-V1: https://arxiv.org/abs/1704.04861
  2. mobileNet-V2: https://arxiv.org/abs/1801.04381
  3. shuffleNet-V1: https://arxiv.org/abs/1707.01083
  4. shuffleNet-V2https://arxiv.org/abs/1807.11164
  • 模型裁剪相比轻量网络设计模型裁剪主要关注对现有模型做减法由大化小其主要思想是在保持现有模型的准确率基本不变的前提下设计某种筛选机制稀疏化),在某个尺度上筛选掉卷积层中重要性较低的权重从而达到降低计算资源消耗和提高实时性的效果模型裁剪算法的核心就在于权重筛选机制的设计以及筛选粒度的选择上这也是本文接下来会着重深入讨论的方向
  1. Learning both weights and connections for efficient neural networkhttps://arxiv.org/abs/1506.02626
  2. Pruning filters for efficient convnetshttps://arxiv.org/abs/1608.08710
  3. Channel pruning for accelerating very deep neural networkshttps://arxiv.org/abs/1707.06168
  4. Learning efficient convolutional networks through network slimminghttps://arxiv.org/abs/1708.06519
  5. Rethinking the Smaller-Norm-Less-Informative Assumption in Channel Pruning of Convolution Layershttps://arxiv.org/abs/1802.00124
  6. AMC: AutoML for Model Compression and Acceleration on Mobile Devices https://arxiv.org/abs/1802.03494
  • 模型蒸馏相比于模型裁剪的目标是把大模型逐渐变小同时保持精度损失较小模型蒸馏的目标是利用大模型Teacher Network提供的监督特征帮助计算量较小的模型Student Network达到近似于大模型的精度从而实现模型加速模型蒸馏的关键在于监督特征的设计例如使用 Soft Target 所提供的类间相似性作为依据或使用大模型的中间层特征图 attention map作为暗示对小网络进行训练
  1. Distilling the Knowledge in a Neural Networkhttps://arxiv.org/abs/1503.02531
  2. FitNets: Hints for thin deep netshttps://arxiv.org/abs/1412.6550v4
  3. Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transferhttps://arxiv.org/abs/1612.03928
  • 矩阵分解由于深度学习模型中计算量最密集的部分就是卷积而卷积可以经过 im2col 之后用矩阵乘法实现因此我们可以使用多种矩阵低秩近似方法将两个大矩阵的乘法操作拆解为多个小矩阵之间的一系列乘法操作降低整体的计算量加速模型的执行速度
  1. Speeding up convolutional neural networks with low rank expansionshttps://arxiv.org/abs/1405.3866
  2. Accelerating very deep convolutional networks for classification and detection  https://arxiv.org/abs/1505.06798
  • 量化与低精度运算深度学习模型在运行过程时需要进行大量的浮点乘加运算一般默认数据位宽是 32bit但是实际上我们完全可以用更低的位宽例如 16bit / 8bit / 4bit / 2bit 甚至 1bit来量化模型的权重和特征图完成近似的运算这么做一方面可以成倍的降低模型运行时的访存量一方面在相应硬件指令集的支持下可以成倍的提高模型的运算速度其重点在于如何控制低精度对模型带来的精度损失
  1. BinaryConnect: Training Deep Neural Networks with binary weights during propagationshttps://arxiv.org/abs/1511.00363
  2. XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networkshttps://arxiv.org/abs/1603.05279
  3. Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activationshttps://arxiv.org/abs/1609.07061v1
  • 计算图优化深度学习模型的层数通常在几十层到上百层但实际上层与层之间有很多部分都存在固定的组合关系例如 Conv-BatchNorm-ReLU 组合),因此我们可以对计算图中的这些固定组合进行优化分别在水平和垂直方向上将多层融合为一层执行从而大量减少层间不必要的内存拷贝以及多次 kernel launch 带来的开销有效提升模型的运行速度
  • 卷积算法优化卷积运算本身有多种算法实现方式例如滑动窗im2col + gemmFFTWinograd卷积等方式这些卷积算法在速度上并没有绝对的优劣因为每种算法的效率都很大程度上取决于卷积运算的尺寸因此在优化模型时我们应该对模型的各个卷积层有针对性的选用效率最高的卷积算法从而充分利用不同卷积算法的优势
  1. Fast Algorithms for Convolutional Neural Networks: https://arxiv.org/abs/1509.09308
  2. Winograd算法解析:https://www.cnblogs.com/shine-lee/p/10906535.html
  • 硬件加速任何模型的运行都需要依托于某种计算平台来完成因此我们可以直接从计算平台的硬件设计方面进行加速目前深度学习模型的主流计算平台是 GPU Volta 架构开始GPU 配备了专门用于快速矩阵乘法运算的硬件计算单元 Tensor Core可以显著提升深度学习模型的吞吐量同时以低功耗低延迟为主要特性的 FPGA / ASIC 加速芯片也开始在业界崭露头角

总之,深度学习的模型要真正落地,绕不开对模型进行速度及精度的优化。在模型优化方面,学术界和工业界也都开始发力。创新算法,使用工具,落地案例可能会越来越多。

原文链接:https://my.oschina.net/u/1459307/blog/3192697
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章