作家
登录

当前深度神经网络模型压缩和加速方法速览

作者: 来源: 2017-10-31 12:28:00 阅读 我要评论

2017年架构师最重要的48个小时 | 8折倒计时

大年夜型神经收集具有大年夜量的层级与结点,是以推敲若何削减它们所须要的内存与计算量就显得极为重要,特别是对于在线进修和增量进修等及时应用。此外,比来智能可穿戴设备的风行也为研究察供给了在资本(内存、CPU、能耗和带宽等)有限的便携式设备上安排深度进修应用供给了机会。高效的深度进修办法可以明显地影响分布式体系、嵌入式设备和用于人工智能的 FPGA 等。典范的例子是 ResNet-50[5],它有 50 层卷积收集、跨越 95MB 的储存需乞降计算每一张图片所须要的浮点数乘法时光。如不雅剪枝一些冗余的权重后,其大年夜概能节约 75% 的参数和 50% 的计算时光。对于只有兆字节资本的手机和 FPGA 等设备,若何应用这些办法紧缩模型就很重要了。

实现这个目标须要结合多个学科以寻找解决筹划,包含但不限于机械进修、最优化、计算机架构、数据紧缩、索引和硬件设计等。在本论文中,我们回想了在紧缩和加快深度神经收集方面的工作,它们广泛受到了深度进修社区的存眷,并且近年来已经实现了很大年夜的进展。

我们将这些办法分为四个类别:参数修剪和共享、低秩分化、迁徙/紧缩卷积滤波器和常识精华精辟等。基于参数修剪(parameter pruning)和共享的办法存眷于摸索模型参数中冗余的部分,尝尝试去除冗余和不重要的参数。基于低秩分化(Low-rank factorization)技巧的办法应用矩阵/张量分化以估计深层 CNN 中最具信息量的参数。基于迁徙/紧缩卷积滤波器(transferred/compact convolutional filters)的办法设计了特别构造的卷积滤波器以削减存储和计算的复杂度。而常识精华精辟(knowledge distillation)则进修了一个精华精辟模型,即练习一个加倍紧凑的神经收集以再现大年夜型收集的输出结不雅。

在表 1 中,我们简单地总结了这四种办法。平日参数修剪和分享、低秩分化和常识精华精辟办法可以经由过程全连接层和卷积层用于 DNN,它们能实现有竞争力的机能。别的,应用迁徙/紧缩滤波器的办法只实用于全卷积神经收集。低秩分化和迁徙/紧缩滤波器的办法供给了一种端到端的流程,并且它们很轻易直接在 CPU/GPU 情况中实现。而参数修剪和共享应用了不合的办法,如向量量化、二进制编码和系数束缚以履行这些义务,平日他们须要花一些处理步调才能达到最终的目标。

表 1. 不合的模型紧缩办法。

低秩分化和稀少性

至于练习协定,基于参数修剪/共享、低秩分化的模许可以大年夜预练习的模型中采取或者大年夜头开端练习,这些练习比较灵活高效。而迁徙/紧缩滤波器和常识精华精辟模型只支撑大年夜头开端练习。这些办法自力设计,互为弥补。例如,迁徙层和参数修剪/共享可以一路应用,模型量化/二进制化(binarization)可以和低秩分化一路应用,以实现进一步提速。论文作者具体介绍了每一类办法,包含特点、优势和缺点等。

参数修剪和共享

根据削减冗余(信息冗余或参数空间冗余)的方法,这些技巧可以进一步分为三类:模型量化和二进制化、参数共享和构造化矩阵(structural matrix)。

A. 量化和二进制化

收集量化经由过程削减表示每个权重所需的比特数来紧缩原始收集。Gong et al. [6] 和 Wu et al. [7] 对参数值应用 K 均值标量量化。Vanhoucke et al. [8] 展示了 8 比特参数量化可以在精确率损掉极小的同时实现大年夜幅加快。[9] 中的研究在基于随机修约(stochastic rounding)的 CNN 练习中应用 16 比特定点表示法(fixed-point representation),明显降低内存和浮点运算,同时分类精确率几乎没有受到损掉。


[10] 提出的办法是起首修剪不重要的连接,从新练习稀少连接的收集。然后应用权重共享量化连接的权重,再对量化后的权重和码本(codebook)应用霍夫曼编码,以进一步降低紧缩率。如图 1 所示,该办法起首经由过程正常的收集练习来进修连接,然后再修剪权重较小的连接,最后从新练习收集来进修残剩稀少连接的最终权重。

[51] 中的工作惹人了 KD 紧缩框架,即经由过程遵守学生-教师典范式削减深度收集的练习量,这种学生-教师典范式即经由过程软化教师的输出而处罚学生。该框架精深层收集(教师)的集成紧缩为雷同深度的学生收集。为了完成这一点,学生学要练习以猜测教师的输出,即真实的分类标签。尽管 KD 办法十分简单,但它同样在各类图像分类义务中表示出期望的结不雅。

缺点:词攀类二元收集的精确率在处理大年夜型 CNN 收集如 GoogleNet 时会大年夜大年夜降低。另一个缺点是现有的二进制化办法都基于简单的矩阵近似,忽视了二进制化对精确率损掉的影响。

图 1. [10] 中提到的三阶段紧缩办法:修剪、量化(quantization)和霍夫曼编码。修剪削减了须要编码的权重数量,量化和霍夫曼编码削减了用于对每个权重编码的比特数。稀少表示的元数据包含紧缩率。紧缩机制不会带来任何精确率损掉。

B. 剪枝和共享

收集剪枝和共享已经被用于降低收集复杂度和解决过拟合问题。有一种早期应用的剪枝办法称为误差权重衰减(Biased Weight Decay),个中最优脑毁伤(Optimal Brain Damage)和最优脑手术(Optimal Brain Surgeon)办法基于损掉函数的 Hessian 矩阵削减连接的数量,他们的研究注解这种剪枝办法的精确度比基于重要性的剪枝办法(比如 weight dDecay 办法)更高。

缺点:剪枝和共享办法存在一些潜在的问题。起首,若应用了 L1 或 L2 正则化,则剪枝办法须要更多的迭代次数才能收敛,此外,所有的剪枝办法都须要手动设置层的敏感度,即须要精调超参数,在某些应用中会显得很冗长沉重。

C. 设计构造化矩阵


  推荐阅读

  Java程序员应知道的十条Java优化策略,让你的系统健步如飞

V value : map.get(key); 2017年架构师最重要的48个小时 | 8折倒计时 1、应用StringBuilder(技巧文)StingBuilder 应当是在我们的Java代码中默认应用的,应当避免应用 + 操作符。或许你会对>>>详细阅读


本文标题:当前深度神经网络模型压缩和加速方法速览

地址:http://www.17bianji.com/lsqh/38304.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)