Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

在定制硬件上实现DNN近似算法,一文概述其过去、现在与未来

近似算法可以减少内存使用和计算复杂度,使 DNN 部署变得更加容易。近日,由英国皇家工程科学院 Research Chair、帝国理工大学电路与系统研究所主任 George A. Constantinides 领导的一个团队发布了一篇题为《Deep Neural Network Approximation for Custom Hardware: Where We've Been, Where We're Going》的综述论文。本文评估了几大 DNN 近似算法,包括量化、权重减少,以及由此衍生出的输入计算减少和近似激活函数,并展示了定制硬件在实现 DNN 近似算法过程中的优势。

引言

来自社交媒体和物联网等多个渠道的可用数字数据(如图像、视频和语音)呈指数级增长,这驱动了对高性能数据分析的需求。与其它机器学习算法相比,深度神经网络(DNN)在过去十年里实现了巨大的准确率提升。它的应用领域很广,如图像分类目标检测自动驾驶无人机导航等。其中卷积神经网络和循环神经网络这两种深度神经网络尤其受欢迎。CNN 在学习空间特征方面很强,而 RNN 则更适合涉及时间序列的问题。

随着任务的复杂度加深,推理架构变得越来越深,所耗费的计算量也越来越大。例如,针对简单 MNIST 手写数字分类任务的小型 LeNet-5 模型需要 680 kop/cl(每次分类需上千次算术运算,其中算术运算是加法或乘法),而执行 1000 类 ImageNet 任务的 VGG16 实现需要 31 Gop/cl 以及 32 位浮点权重存储的 550 MiB。因此,对于注重吞吐量、延迟和能量的应用来说,开发能够减少 DNN 推理所需计算量和存储成本的算法至关重要。最近的研究表明,使用近似算法后,由于减少了内存使用和计算复杂度,DNN 部署变得更容易了。

深度神经网络近似算法可分为两大类:量化和权重减少(weight reduction)。量化方法分别降低权重、激活(神经元输出)的精度或同时降低二者的精度,而权重减少则通过剪枝和结构简化来删除冗余参数。如此以来,后者通常也会减少每个网络中的激活数量。这两种方法都有助于 DNN 加速,因而该论文对它们进行了评估。

多年来,通用处理器(GPP),尤其是多核 CPU 和 GPU,一直是 DNN 推理的主要硬件平台。对于未压缩 DNN 模型,层操作被映射到密集浮点矩阵乘法(dense floating-point matrix multiplication),其可以由 GPP 按照单指令流多数据流(SIMD)或者单指令多线程(SIMT)并行处理范式进行并行处理。但是,随着 DNN 近似算法的出现,利用现场可编程门阵列(FPGA)和特殊应用积体电路(ASIC)等定制硬件平台来加速推理的趋势正在兴起。尽管 GPU 依然擅长密集浮点计算,但研究者发现使用低精度定点量化可为定制硬件带来更高吞吐量和能量效率。此外,SIMD 和 SIMT 架构在稀疏数据上操作时通常表现不佳;通过细粒度权重减少压缩后的 DNN 在定制硬件上的执行效率更高。与使用 GPP 相比,逻辑和内存层次结构的可定制性通常使得定制硬件 DNN 推理更快也更高效。

很多全球领先的信息技术公司选择定制硬件而不是 GPP,来实现其下一代 DNN 架构。这些定制硬件包括 ASIC(如谷歌的 TPU,英伟达的 Nervana 和 IBM 的 TrueNorth)和基于 FPGA 的设计(如微软的 Brainwave 和赛灵思的 Everest)。一般来说,ASIC 设计架构可以达到当前最佳的吞吐量和能效。然而,它耗时较长、设计和制造过程需要耗费大量资源,这导致它很难跟上 DNN 算法的快速发展。

高级实现工具(包括英特尔的 OpenCL 软件开发工具包、赛灵思的 Vivado 高级综合)和 Python-to-netlist 神经网络框架(如 DNNWeaver)使得面向 FPGA 和 ASIC 的 DNN 硬件设计过程变得更快、更简单。这类软件允许不熟悉硬件开发的 DNN 架构师可以相对容易地将其设计迁移到定制硬件上。同时,可重构性支持快速的设计迭代,使 FPGA 成为顶尖 DNN 的理想原型制作和部署设备。

在这篇综述论文中,作者旨在为刚进入该领域的研究人员提供关于 DNN 近似算法的全面基础,展示定制硬件如何比 GPP 实现更好的推理性能。具体来讲,本文的贡献如下:

  • 作者通过比较不同规模 FPGA、ASIC、CPU 和 GPU 平台的 roofline 模型,来说明定制硬件更适合 DNN 近似算法。

  • 作者综述了当前最佳 DNN 近似的主要趋势,详细讨论了低精度量化和权重减少方法,介绍了最近的算法发展并评估了它们的优缺点。

  • 作者评估了每种方法定制硬件实现的性能,重点关注准确率、压缩、吞吐量、延迟和能效。

  • 基于本文确定的趋势,作者提出了一些有前景的未来研究方向。

目前已有一些关于 DNN 近似的综述。Cheng 等人 [25]、Guo 等人 [49]、Cheng 等人 [24]、Sze 等人 [136] 综述了 DNN 压缩和加速算法。在这些综述中,Cheng 等人 [24] 简要评估了 FPGA 实现的系统级设计。Guo 等人仅综述了量化方法,没有提到权重减少。Nurvitadhi 等人将英特尔的 FPGA 与用于 CNN 推理基准的 GPU 平台的性能进行了比较。本文不仅综合评估了 DNN 高效推理的近似算法,还深入分析和对比了这些算法在定制硬件中的实现,包括 CNN 和 RNN

量化

作者认为,DNN 近似算法的第一个关键主题是量化。FPGA 和 ASIC 的灵活性允许低精度 DNN 的实现,从而通过并行化和减少对慢速片外存储的依赖来增加吞吐量。

这部分主要介绍了三种量化方法:

  • 定点表征

  • 二值化和三值化

  • 对数量化

图 2:基于英特尔 Stratix 10 FPGA 和英伟达 Titan X GPU 实现的 AlexNet 模型在使用多种定点权重和激活数据表征时对 ImageNet 数据集执行分类的吞吐量对比。


权重减少

DNN 近似算法的第二个关键主题是权重减少,即被认为不重要的参数会被完全消除。权重减少通过减少工作负载和片外内存流量来提高硬件推理的性能。

这部分主要介绍了权重减少的五种方法:

  • 剪枝

  • 权重共享

  • 低秩分解

  • 结构化矩阵

  • 知识蒸馏

输入计算减少

权重减少同理,处于不同空间区域的输入数据亦会对推理的结果产生不同程度的贡献,因而可以通过评估输入数据的相对重要性来分配算力。

近似激活函数

对于诸如 sigmoid 和 tanh 的非线性激活函数,许多计算如取幂和除法将会占用大量片上资源。通过使用分段线性函数来近似和量化这些复杂函数,可以使复杂计算简化为一系列的表查找操作。

权衡和当前研究趋势

这部分中,作者使用常规 DNN 模型和数据集作为基准,量化评估了这些工作的硬件和软件性能。通过这样做,作者分析了近似技术的压缩-准确率权衡以及它们对定制硬件的设计空间探索,并据此说明了当前的研究趋势。

表 1:每个近似算法对在定制硬件中加速 DNN 推理的作用。

表 2:大规模 DNN 推理的性能对比。以上实现根据功耗排序,功耗最低者排序最高。

未来研究方向

上文已经评估了 DNN 近似算法领域的当前研究趋势及其实现,接下来作者将介绍该领域一些有前景的未来研究方向。

1. 评估方法

2. 研究目的

  • 收敛保证和最优设计选择

  • 自适应超参数微调

  • FPGA-ASIC 异构系统

  • 不规则数据模式的硬件推理

  • 参数硬化

论文:Deep Neural Network Approximation for Custom Hardware: Where We've Been, Where We』re Going 

论文地址:https://arxiv.org/pdf/1901.06955.pdf

摘要:深度神经网络已证明在视觉和音频识别任务中特别有效。但是,现有模型往往计算成本高昂且对内存的需求较高,所以面向硬件的近似算法成为热门话题。研究显示,基于定制硬件的神经网络加速器在吞吐量和能量效率两个方面均超过通用处理器。当使用基于近似的网络训练方法协同设计时,针对特定应用的加速器将大型、密集和计算成本高昂的网络转换为小型、稀疏和硬件资源消耗少的网络,增强网络部署的可行性。在本论文中,作者对高性能网络推理的近似法提供了全面评估,并就其定制硬件实现的有效性进行了深入探讨。作者还深入分析了当前趋势,为未来研究提供建议。本论文首次深入分析和对比了 CNN 和 RNN 等算法在定制硬件中的实现,希望能够激发该领域出现令人兴奋的新进展。

理论神经网络卷积神经网络循环神经网络近似计算
2
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
IBM机构

是美国一家跨国科技公司及咨询公司,总部位于纽约州阿蒙克市。IBM主要客户是政府和企业。IBM生产并销售计算机硬件及软件,并且为系统架构和网络托管提供咨询服务。截止2013年,IBM已在全球拥有12个研究实验室和大量的软件开发基地。IBM虽然是一家商业公司,但在材料、化学、物理等科学领域却也有很高的成就,利用这些学术研究为基础,发明很多产品。比较有名的IBM发明的产品包括硬盘、自动柜员机、通用产品代码、SQL、关系数据库管理系统、DRAM及沃森。

https://www.ibm.com/us-en/
相关技术
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

二值化技术

二值化是将像素图像转换为二进制图像的过程。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

LeNet技术

LeNet 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从 1988 年开始,在许多次成功的迭代后,这项由 Yann LeCun 完成的开拓性成果被命名为 LeNet5。LeNet5 的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有 GPU 帮助训练,甚至 CPU 的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5 阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

物联网技术技术

物联网(英语:Internet of Things,缩写IoT)是互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。物联网一般为无线网,而由于每个人周围的设备可以达到一千至五千个,所以物联网可能要包含500兆至一千兆个物体。在物联网上,每个人都可以应用电子标签将真实的物体上网联结,在物联网上都可以查出它们的具体位置。通过物联网可以用中心计算机对机器、设备、人员进行集中管理、控制,也可以对家庭设备、汽车进行遥控,以及搜索位置、防止物品被盗等,类似自动化操控系统,同时通过收集这些小事的数据,最后可以聚集成大数据,包含重新设计道路以减少车祸、都市更新、灾害预测与犯罪防治、流行病控制等等社会的重大改变,实现物和物相联。

Xilinx机构

赛灵思作为FPGA、可编程SoC的发明者,一直坐稳全球最大的FPGA芯片供应商头把交椅。赛灵思的产品线覆盖45/28/20/16nm四个系列的FPGA以及Zynq SoC,旗下拥有着超过4400项技术专利、60多项行业第一的技术产品,服务着全球超过60000的客户。赛灵思耗时4年,超过1500名工程师的研发参与,超过10亿美元的研发投资,推出高度集成的多核异构自适应计算加速平台——ACAP!10月赛灵思发布了统一软件平台Vitis,成功“打破软硬件壁垒”。

https://china.xilinx.com/
相关技术
目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

推荐文章
暂无评论
暂无评论~