在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

        本篇文章是记录的是对PCONV: The Missing but Desirable Sparsity in DNN Weight Pruning forReal-time Execution on Mobile Devices的学习。为对人工智能,深度学习等领域有兴趣的同学提供参考和学习,内容如有不当请联系作者进行改进,互相学习。

        该篇文章主要介绍了针对当前流行的剪枝手段的两个极端:结构化剪枝(精度不高,对硬件设备友好)和非结构化剪枝(精度高,对硬件设备不友好,推理消耗时间)。分析两种剪枝方案的优缺点并结合两种剪枝方案的优点,设计出在算法层面和硬件编译阶段进行优化的一种新的剪枝方案和推理优化方案,该方案能够在移动设备上实时推理。

原论文地址:《PCONV: The Missing but Desirable Sparsity in DNN Weight Pruning forReal-time Execution on Mobile Devices

摘要:在深度神经网络中模型压缩技术是一种有效的在各类平台上实现加速,深度神经网络模型剪枝是一个直接和高效的方法。当前有两种主要的修剪方式代表修剪规则的两个极端:结构化修剪--精细化剪枝能够实现高稀疏性和高精确度,但是对硬件不友好。结构化剪枝--粗粒度修剪利用了硬件效率高的结构,但当修剪率很高时,准确性会下降。针对以上文章提出了PCONV-一种新的稀疏维度压缩方案------粗粒度修剪结构中的细粒度模式剪枝。PCONV结合了两种稀疏类型,由内部卷积核修剪生成的稀疏卷积模式(SCP)和不同卷积核修剪生成的连通性稀疏。SCP由于他的特殊的视觉性能提高了精确度,连接稀疏性在保持过滤计算的平衡工作负载的同时增加了剪枝率。为了部署PCONV,文章发布了一个基于编译辅助的深度神经网络的推理框架,实时执行PCONV并不影响精度,在之前的研究中是不能够实现的。本文的实验结果表明,PCONV优于三个先进的端到端DNN框架,TensorFlow-Lite, TVM,阿里巴巴移动神经网络,加速分别达到39x,11x,6x,没有精度损失。移动设备可以实现对大规模DNNs的实时推理.

文章指出结构化和非结构化剪枝是整个设计空间的两个极端。两个丢失的关键点:

  • 找到一个新的、能够充分利用细粒度模型的高精度和粗粒度模型的高正则性的中间稀疏维;
  • 找到相应的(算法-编译-硬件)优化框架,可以无缝地弥补硬件效率和新的稀疏维数之间的差距。

针对以上两个问题,该篇文章的成果:

  • 产生一个新的稀疏维,它利用了内部间卷积和内部卷积的核稀疏性,展现了高精度和规律性,并揭示了设计空间中先前未知的点;
  • 一个编译器辅助的DNN推理框架,充分利用新的稀疏维数,实现实时移动设备上的DNN加速

在PCONV中,把卷积核内部的剪枝称为模式剪枝,卷积核间的剪枝称为连通性剪枝。对于模式剪枝 在每个卷积核中修剪一定数量的权重,不同于非结构化权重剪枝,模式剪枝在每个过滤器中产生相同的稀疏率和有限数量的模式形状。本质上,我们设计的模式对应于计算机视觉中关键卷积滤波器的概念,如高斯滤波器用于平滑,拉普拉斯高斯滤波器用于平滑和锐化。对于连通性剪枝,关键在于切断某些输入和输出通道之间的连接,相当于去除相应的核,使滤波器的“长度”比原始模型短。通过连接剪枝,我们进一步扩大了压缩率,并提供了更大的DNN加速潜力,同时在过滤式dn计算中保持了平衡的工作负载。在统一的编译器辅助加速框架下,模式和连通性修剪可以在算法层次上结合起来进行加速。如图1所示,权值修剪的两种主要方法是通用修剪、非结构化修剪和结构化修剪,它们分别生成不规则和规则的压缩DNN模型。

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性ji

基于当前对深度神经网络模型压缩和加速的研究现状,该篇论文的动机如下:

  • 实现了较高的模型精度和修剪规则性
  • 图像增强激发了稀疏卷积模式
  • 编译器辅助的DNN推理框架。

Theory of Sparse Convolution Patterns (SCP)

除了将剪枝处理为一种冗余信息去除技术之外,我们还将其看作是加入了一个额外的卷积核P来与原始核进行元素上的乘法。P被称为稀疏
卷积模式(SCP),维数Hl Wl和二值元素(0和1)。根据下面的推导,具体的SCP很好地符合数学视觉理论。在此基础上,提出了一种新的模式剪枝方案。,将SCPs应用于卷积内核。如图2所示,白色的方块表示固定的。为了进一步提高剪枝率和DNN推理速度,我们可以选择性地切断特定输入和输出通道之间的连接,相当于去掉相应的核。这称为连接修剪。中说明了连通性修剪
图2,灰色的核是修剪过的。

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

稀疏卷积模式(SCP)设计

我们设计的SCPs可以转换为一系列可操纵的过滤器(Freeman and Adelson 1991),即:高斯滤波器和高斯滤波器的拉普拉斯算子,在数学视觉理论中,它们起着平滑、边缘检测或锐化图像的作用。

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

高斯滤波器的拉普拉斯算子:拉普拉斯算子为二阶导数算子。根据关联性,用高斯滤波器平滑图像然后应用拉普拉斯算子,相当于用高斯(LoG)滤波器的拉普拉斯算子卷积图像:

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

精度结果如图4所示。从基线精度结果(在很多情况下比之前的工作要高)开始,我们得到了第一个结论,即在每个卷积核上应用我们设计的SCPs时,精度会提高。对于ImageNet数据集,模式修剪将vga -16的前5位精度从91:7%提高到
当SCPs应用于每个卷积内核时,ResNet-50从92:7%到93:0%。精度的提高归因于我们设计的SCPs增强了图像处理能力。

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

修剪与非结构化修剪的准确性,结构化修剪和PCONV。结合连接剪枝,PCONV在不影响精度的前提下实现了更高的压缩率。与其他修剪方法进行比较,即(1) PCONV比先验的非结构化修剪具有更高的准确率和更高的压缩率,与ADMM-NN的结果接近;
(ii)与结构化修剪相比,在相同的压缩率下,PCONV获得了更高的精度,可以在没有hur的情况下从结构上删除更多的权值

提出了一种基于编译器的移动设备DNN推理加速框架。
由于PCONV模型的灵活性和规律性这两个优点,我们的编译器辅助平台能够唯一地优化代码生成,以保证端到端执行效率。
由于DNN的计算范式是分层执行的,我们可以将一个DNN模型转换为计算图,具体体现为静态c++(用于CPU执行)或OpenCL(用于GPU执行)代码。
代码生成过程包括三个步骤,如图5所示:(i)分层抽取信息;过滤核重新排序;消除负载冗余。

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

实验结果如下图:

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性

在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性