边缘计算中深度神经网络剪枝压缩的研究简介

边缘计算将计算、网络、存储等能力扩展到物联网设备附近的网络边缘侧,而以深度学习为代表的人工智能技术让每个边缘计算的节点都具有计算和决策的能力,这使得某些复杂的智能应用可以在本地边缘端进行处理,满足了敏捷连接、实时业务、数据优化、应用智能、安全与隐私保护等方面的需求。智能边缘计算利用物联网的边缘设备进行数据采集和智能分析计算,实现智能在云和边缘之间流动,对人工智能算法、终端、芯片都提出了新的需求,正成为越来越多人工智能企业关注的重点方向。然而,由于深度学习模型推理需要消耗大量的计算资源,当前的大多数边缘设备由于资源受限无法以低延迟、低功耗、高精确率的方式支持深度学习应用。

深度神经网络与其他很多机器学习模型一样,可分为训练和推理两个阶段。训练阶段根据数据学习模型中的参数(对神经网络来说主要是网络中的权重);推理阶段将新数据输入模型,经过计算得出结果。过参数化是指在训练阶段,网络需要大量的参数来捕捉数据中的微小信息,而一旦训练完成到了推理阶段,就不需要这么多的参数。基于这样的假设,就可以在部署前对模型进行简化。模型压缩中的剪枝(pruning)和量化两类方法正是基于这样的前提。模型简化的优点包括但不限于:(1)计算量的减小,从而使计算时间更少,功耗更小;(2)存储和读写访问量变小,可以放到更边缘的设备上运行,本来需要既慢又耗能的DRAM参与,现在有可能放在SRAM就可以。其核心问题是如何有效地裁剪模型并使得精度的损失最小化。

对于神经网络修剪的研究始于20世纪80年代末、90年代初。汉森(Hanson)在1988年提出基于幅度的修剪方法,即对网络中每个隐含单元施加与其绝对值相关的权重衰减来使隐含单元数量最小化。乐昆(LeCun)和哈斯比(Hassibi)分别在1990年和1993年提出最优脑损伤(Optimal Brain Damage,OBD)和最优脑手术(Optimal Brain Surgeon,OBS)方法,它们基于损失函数相对于权重的二阶导数(对权重向量来说即Hessian矩阵)来衡量网络中权重的重要程度,然后对其进行裁剪。由于受到当时计算资源的限制,研究仅限于浅层神经网络,但其对问题的定义和解决问题的思路对之后的工作产生了深远的影响。从2012年起,神经网络的变化趋势是不断加深网络以提高精度。在2015-2016年期间,Han等人发表了一系列对深度神经网络进行模型压缩的工作,其中Deep Compression对当时经典网络AlexNet和VGG进行了压缩。结合修剪、量化和哈夫曼编码等多种方法,将网络尺寸压缩至几十分之一,性能获得成倍的提升。其中对于修剪带来的精度损失,使用了迭代修剪方法进行补偿,使精度几乎没有损失。之后这几年,模型压缩领域变得越来越丰富,越来越多的相关工作衍生而出。

从网络修剪的粒度来说,可以分为结构化剪枝(structured pruning)和非结构化剪枝(unstructured pruning)两类。早期的一些方法是基于非结构化的,它修剪的粒度为单个神经元。如果对卷积核进行非结构化剪枝,则得到的卷积核是稀疏的,即中间有很多元素为0的矩阵。除非下层的硬件和计算库对其有比较好的支持,否则修剪后的网络很难获得实质的性能提升。稀疏矩阵无法利用现有成熟的基础线性代数子程序(Basic Linear Algebra Subprograms,BLAS)库来获得额外性能收益。因此,很多研究是集中在结构化剪枝上,通常细分为通道剪枝、卷积核剪枝和网络结构修剪。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200220A0ON3100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券