深度神经网络全面概述.docx

上传人:b****1 文档编号:1015668 上传时间:2023-04-30 格式:DOCX 页数:26 大小:14.18MB
下载 相关 举报
深度神经网络全面概述.docx_第1页
第1页 / 共26页
深度神经网络全面概述.docx_第2页
第2页 / 共26页
深度神经网络全面概述.docx_第3页
第3页 / 共26页
深度神经网络全面概述.docx_第4页
第4页 / 共26页
深度神经网络全面概述.docx_第5页
第5页 / 共26页
深度神经网络全面概述.docx_第6页
第6页 / 共26页
深度神经网络全面概述.docx_第7页
第7页 / 共26页
深度神经网络全面概述.docx_第8页
第8页 / 共26页
深度神经网络全面概述.docx_第9页
第9页 / 共26页
深度神经网络全面概述.docx_第10页
第10页 / 共26页
深度神经网络全面概述.docx_第11页
第11页 / 共26页
深度神经网络全面概述.docx_第12页
第12页 / 共26页
深度神经网络全面概述.docx_第13页
第13页 / 共26页
深度神经网络全面概述.docx_第14页
第14页 / 共26页
深度神经网络全面概述.docx_第15页
第15页 / 共26页
深度神经网络全面概述.docx_第16页
第16页 / 共26页
深度神经网络全面概述.docx_第17页
第17页 / 共26页
深度神经网络全面概述.docx_第18页
第18页 / 共26页
深度神经网络全面概述.docx_第19页
第19页 / 共26页
深度神经网络全面概述.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

深度神经网络全面概述.docx

《深度神经网络全面概述.docx》由会员分享,可在线阅读,更多相关《深度神经网络全面概述.docx(26页珍藏版)》请在冰点文库上搜索。

深度神经网络全面概述.docx

深度神经网络全面概述

深度(shēndù)神经网络全面概述从基本概念到实际模型(móxíng)和硬件基础

深度(shēndù)神经网络(DNN)所代表的人工智能技术被认为(rènwéi)是这一次技术变革的基石(之一)。

近日(jìnrì),由IEEEFellowJoelEmer领导的一个团队发布了一篇题为《深度神经网络的有效处理:

教程和调研(EfficientProcessingofDeepNeuralNetworks:

ATutorialandSurvey)》的综述论文,从算法、模型、硬件和架构等多个角度对深度神经网络进行了较为全面的梳理和总结。

鉴于该论文的篇幅较长,机器之心在此文中提炼了原论文的主干和部分重要内容。

目前,包括计算机视觉、语音识别和机器人在内的诸多人工智能应用已广泛使用了深度神经网络(deepneuralnetworks,DNN)。

DNN在很多人工智能任务之中表现出了当前最佳的准确度,但同时也存在着计算复杂度高的问题。

因此,那些能帮助DNN高效处理并提升效率和吞吐量,同时又无损于表现准确度或不会增加硬件成本的技术是在人工智能系统之中广泛部署DNN的关键。

论文地址:

https:

//arxiv.org/pdf/1703.09039.pdf

本文旨在提供一个关于实现DNN的有效处理(efficientprocessing)的目标的最新进展的全面性教程和调查。

特别地,本文还给出了一个DNN综述——讨论了支持DNN的多种平台和架构,并强调了最新的有效处理的技术的关键趋势,这些技术或者只是通过改善硬件设计或者同时改善硬件设计和网络算法以降低DNN计算成本。

本文也会对帮助研究者和从业者快速上手DNN设计的开发资源做一个总结,并凸显重要的基准指标和设计考量以评估数量快速增长的DNN硬件设计,还包括学界和产业界共同推荐的算法联合设计。

读者将从本文中了解到以下概念:

理解DNN的关键设计考量;通过基准和对比指标评估不同的DNN硬件实现;理解不同架构和平台之间的权衡;评估不同DNN有效处理技术的设计有效性;理解最新的实现趋势和机遇。

一、导语

深度神经网络(DNN)目前是许多人工智能应用的基础[1]。

由于DNN在语音识别[2]和图像识别[3]上的突破性应用,使用DNN的应用量有了爆炸性的增长。

这些DNN被部署到了从自动驾驶汽车[4]、癌症检测[5]到复杂游戏[6]等各种应用中。

在这许多领域中,DNN能够超越人类的准确率。

而DNN的出众表现源于它能使用统计学习方法从原始感官数据中提取高层特征,在大量的数据中获得输入空间的有效表征。

这与之前使用手动提取特征或专家设计规则的方法不同。

然而(ránér)DNN获得(huòdé)出众准确率的代价是高计算复杂性成本。

虽然通用计算引擎(尤其(yóuqí)是GPU),已经成为(chéngwéi)许多DNN处理(chǔlǐ)的砥柱,但提供对DNN计算更专门化的加速方法也越来越热门。

本文的目标是提供对DNN、理解DNN行为的各种工具、有效加速计算的各项技术的概述。

该论文的结构如下:

∙SectionII给出了DNN为什么很重要的背景、历史和应用。

∙SectionIII给出了DNN基础组件的概述,还有目前流行使用的DNN模型。

∙SectionIV描述了DNN研发所能用到的各种资源。

∙SectionV描述了处理DNN用到的各种硬件平台,以及在不影响准确率的情况下改进吞吐量(thoughtput)和能量的各种优化方法(即产生bit-wiseidentical结果)。

∙SectionVI讨论了混合信号回路和新的存储技术如何被用于近数据处理(near-dataprocessing),从而解决DNN中数据流通时面临的吞吐量和能量消耗难题。

∙SectionVII描述了各种用来改进DNN吞吐量和能耗的联合算法和硬件优化,同时最小化对准确率的影响。

∙SectionVIII描述了对比DNN设计时应该考虑的关键标准。

二、深度神经网络(DNN)的背景

在这一部分,我们将描述深度神经网络(DNN)在人工智能这个大框架下的位置,以及一些促进其发展的的概念。

我们还将对其主要的发展历程和现阶段主要的应用领域做一个简单的介绍。

1.人工智能和深度神经网络

根据JohnMcCarthy的论述,深度神经网络(也称为深度学习)是人工智能(AI)大框架下的一部分。

而人工智能(AI)是利用科学与工程学创造具有如同人类那样能实现目标的智能机器。

人工智能这个词就是这位计算机科学家在上个世纪50年代所创造出的。

深度学习和整个人工智能的关系就如下图所示。

图1:

深度学习(xuéxí)在人工智能大框架下的位置

2.神经网络和深度(shēndù)神经网络(DNN)

神经网络从神经元涉及对输入值求加权和进行计算这一概念(gàiniàn)而获得灵感。

这些加权和对应于突触完成值的缩放以及其和神经元值间的组合。

此外,因为计算与神经元级联相关联,并且其为简单线性代数的运算,所以神经元不会仅仅输出加权和。

相反,在神经元中有函数执行组合输入的运算,而这种函数应该是非线性运算。

在非线性运算的过程中,神经元只有在输入超过一定阀值时才生成(shēnɡchénɡ)输出。

因此通过类比,神经网络将非线性函数运用到输入值的加权和中。

我们等一下会描述一些非线性函数。

图2:

简单(jiǎndān)的神经网络例子。

(a)神经元和突触,(b)为每一层计算(jìsuàn)加权和,(c)前向和反向(fǎnxiànɡ)(循环(xúnhuán))网络(wǎngluò),(d)全连接与稀疏

(a)中展示了计算神经网络的示意图。

图的前端是输入层,该层会接受输入数据值。

这些数据值前向传播到神经网络中间层的神经元中,中间层也常称为神经网络的隐藏层。

一个或多个隐藏层的加权和最终前向传播到输出层,该输出层会最终向用户呈现神经网络的输出结果。

为了将脑启发的术语和神经网络相匹配,神经元的输出通常称为激活(activation),并且突触如(a)所示通常称为权重(weight)。

在上方表达式中,W_ij代表着权重、x_i为输入激活、y_i是输出激活,而f(·)就代表着在III-2中描述的非线性激活函数。

在神经网络的领域内,有一门称为深度学习的研究。

普通神经网络基本上层级不会很多,而在深度学习里,神经网络的层级数量十分巨大,现如今基本上神经网络可以达到5到1000多层。

3.推理(tuīlǐ)vs训练(xùnliàn)

这一节中,如图4所示,我们(wǒmen)将把图像分类用作训练DNN的一个强劲的实例(shílì)。

评估DNN时,我们输入一个(yīɡè)图像,DNN为每一个对象分类输出分值向量;分值最高的分类将成为图像中最有可能的对象分类。

训练DNN的总体目标是决定如何设置权重以最大化正确分类(来自标注的训练数据)的分值并最小化其他不正确分类的分值。

理想的正确分值与DNN基于其当前权重计算的分值之间的差被称为损失值(L)。

因此训练DNN的目标是找到一组权重以最小化大型数据集中的平均损失值。

图4:

图像分类任务

4.开发历史

∙1940年代-神经网络被提出

∙1960年代-深度神经网络被提出

∙1989年-识别数字的神经网(LeNet)出现

∙1990年代-浅层神经网硬件出现(IntelETANN)

∙2011年-DNN语音识别取得突破性进展(Microsoft)

∙2012年-用于视觉的DNN开始替代人工放大(AlexNet)

∙2014年+-DNN加速器研究兴起(Neuflow、DianNao等等)

图5的表柱是这些年来ImageNet竞赛中每届冠军的表现。

你可以看到最初算法精确度的错误率在25%或更多。

2012年,多伦多大学的AlexNet团队通过GPU来提升其计算能力并采用深度神经网络方法,把错误率降低了近10%[3]。

他们的成功带来了深度学习风格的算法的井喷,以及图像识别技术的持续进步。

图5:

ImageNet竞赛(jìngsài)[10]结果(jiēguǒ)

5.DNN的应用(yìngyòng)

从多媒体到医疗(yīliáo),DNN对很多应用大有裨益。

在这一节中,我们(wǒmen)将展示DNN正在发挥影响的领域,并凸显DNN有望在未来发挥作用的新兴领域。

∙图像和视频

∙语音和语言

∙医疗

∙游戏

∙机器人

6.嵌入vs云

执行DNN推断处理的嵌入平台有着严格的能耗、计算和存储成本限制。

当DNN推断在云中执行时,语音识别等应用经常有强烈的延迟需求。

因此,在本文中,我们将聚焦于推断处理而不是训练的计算需求。

三、深度神经网络概述

根据应用情况不同,深度神经网络的形态和大小也各异。

流行的形态和大小正快速演化以提升模型准确性和效率。

所有深度神经网络的输入是一套表征网络将加以分析处理的信息的值。

这些值可以是一张图片的像素,或者一段音频的样本振幅或者某系统或者游戏状态的数字化表示。

处理输入的网络有两种主要形式:

前馈以及循环(图2c)。

前馈网络中,所有计算都是在前一层输出基础上进行的一系列运作。

最终一组运行就是网络的输出,比如,这张图片包括某个特定物体的概率是多少,某段音频出现某个单词的概率是多少,或者下一步行动的建议等。

在这类深度神经网络中,网络并无记忆,输出也总是与之前网络输入顺序无关。

相反,循环网络(LSTM是一个很受欢迎的变种)是有内在记忆的,允许长期依存关系影响输出。

在这些网络中,一些中间运行生成的值会被存储于网络中,也被用作与处理后一输入有关的其他运算的输入。

在这篇文章中,我们关注的是前馈网络,因为到目前为止,少有人关注硬件加速,特别是循环网络的。

深度(shēndù)神经网络也可以是全连接的(FC,也指多层感知器),如图2(d)最左部分所示。

在一个全连接层中,所有(suǒyǒu)输出与所有输入都是相连接的。

这需要相当数量的存储和计算空间。

谢天谢地,在许多应用中,我们可以移除激活(activations)之间的一些连接,方法就是(jiùshì)将权重设置为零而不影响准确性。

结果会产生一个稀疏连接层。

图2(d)最右端的层就是一个稀疏(xīshū)连接层。

通过限制对结果有影响的权重数量,我们也可以实现更高效的计算(jìsuàn)。

如果每个输出仅仅是一个固定大小输入窗口的函数,就会出现这类结构化稀疏性。

如果这套权重被用于每一个输入计算,就会进一步提高效率。

这一权重共享能显著降低权重的存储要求。

通过将计算构建为卷积,一种非常流行的窗口式的权重共享的网络诞生了,如图6(a)所示,其仅使用少量临近的激活来计算加权和的输出(即,该过滤器有一个有限的接受域,与输入的距离超过特定值的所有权重都将被设置为0),而且这一套权重能被每个输入共享来计算(即,滤波器是空间不变的)。

这种结构稀疏性的形式正交于源自网络(修改情况如本文部分VII-B2所述)的稀疏性。

所以,卷积神经网络就是一种受欢迎的深度神经网络形式。

1.卷积神经网络(CNN)

图6:

卷积的维度。

(a)传统(chuántǒng)图像处理中的二维卷积,(b)CNN中的高维卷积

图7:

卷积神经网络

表1:

CONV/FC层的形状(xíngzhuàn)参数

给定(ɡěidìnɡ)表I中的形状(xíngzhuàn)参数(shapeparameters),卷积层的计算(jìsuàn)可以定义为:

2.非线性(Non-Linearity)

图8:

多种形式的非线性激活(jīhuó)函数(来自(láizì)CaffeTutorial[43])

3.池化(Pooling)

图9:

多种形式的池化(来自(láizì)CaffeTutorial[43])

4.归一化(Normalization)

控制输入在层级中的分布能显著地加快训练速度并提升准确度。

因此(yīncǐ),输入激活在层级上的分布(σ,µ)需要归一化处理,使其变换(biànhuàn)为均值为0、标准差为1的分布。

在批量归一化(batchnormalization)中,归一化值如方程

(2)所示将进一步缩放和平移,参数(γ,β)是从训练[44]中学到的两个小常数,它们能避免数值问题。

(1)流行(liúxíng)的DNN模型(móxíng)

在过去(guòqù)的二十多年里出现了很多种DNN模型。

每一种(yīzhǒnɡ)都称其拥有不同的「网络架构」,因为他们依据不同层级数量、滤波器形状(如过滤(guòlǜ)尺寸,滤波器和通道的数量)、层级类型以及连接方式而划分。

正确地理解这些不同的方法和它们发展的趋势对于提高DNN引擎的效率至关重要。

其中包括:

∙LeNet[9]于1989年提出,是最早的CNN方式之一。

其中最为人熟知的是第八版的LeNet-5,其中包含两个卷积层和两个全连接层[45]。

∙AlexNet[3]是第一次赢得ImageNet挑战赛的CNN网络(2012年)。

它由五个卷积层和三个全连接层组成。

∙Overfeat[46]与AlexNet具有非常相似的架构:

五个卷积层和三个全连接层。

∙VGG-16[47]更进一步,使用了16层的深度神经网络,其中包含13个卷积层,3个全连接层。

∙GoogLeNet[48]更深,有22个层,它首次引入了起始模块(见下图)。

∙ResNet[11],即残差网络(ResidualNet),使用残差连接可以让层级更加深入(34层以上)。

该网络第一次让DNN在ImageNet挑战赛中的表现超过了人类,top-5错误率在5%以下。

图11:

GoogleNet[48]的起始(qǐshǐ)模块(Inceptionmodule)通道长度(chángdù)实例,其中每个CONV层在ReLU层之后(zhīhòu)(图中未显示(xiǎnshì))。

图12:

ResNet[11]中的快捷模块。

其中最后(zuìhòu)一个CONV层之后(zhīhòu)的ReLU层被快捷(kuàijié)连接。

表2:

目前(mùqián)流行的DNN[3,11,45,47,48]模型,其中(qízhōng)正确率都基于在ImageNet[10]中TOP-5误差(wùchā)。

四、DNN开发资源

DNN得以(déyǐ)快速发展的一个关键因素是研究社区与产业界使得一系列开发资源变得可用。

这些资源对DNN加速器的开发也很关键,提供工作负载的特性、在模型复杂性和准确率上促进权衡性的探索。

这一章节将描述了对此领域感兴趣的人能快速上手(shàngshǒu)的一些资源。

1.框架(Frameworks)

为了DNN开发的简便以及让训练网络可共享,不同的团队开发出了不同的深度学习框架。

这些开源库包含了面向DNN的软件库。

Caffe在2014年由UC伯克利大学开源,它支持C、C++、Python和MATLAB。

TensorFlow由谷歌团队2015年开源,支持C++和Python,也支持多CPU和GPU。

它要比Caffe更灵活,计算表达是数据流图到张量管理(多维度阵列)。

另一个流行的框架是Torch,由Facebook和NYU开发,它支持C、C++和Lua。

当然,还有其他的一些框架,比如Theano、MXNet、CNTK,这在[57]中有所描述。

这些框架的存在不只是方便了DNN研究人员和应用设计者,它们对编程高性能或更高效的DNN计算引擎也是无价的。

例如,大部分框架可以使用英伟达的cuDNN库在GPU上进行快速运算。

这一加速对框架的使用者而言是很明显的。

类似地,硬件加速器这种如此易懂的结合也能在Eyeriss这样的芯片上获得[58]。

最终,这些框架对硬件研究人员来说也是无价的资源(工作负载),它们可被用于设计不同工作负载的实验、性能分析(profiling)不同的工作负载、探索硬件与软件之间的权衡。

2.模型(Model)

3.流行的分类(fēnlèi)数据集

在许多公开的数据集中有许多人工智能(rénɡōnɡzhìnénɡ)任务可用来评估DNN的准确率。

公开数据集对对比不同方法的准确率而言非常(fēicháng)的重要。

最简单也最常见的任务是图像分类。

图像分类涉及到在给定的完整图像中,选择出N类物体(wùtǐ)中的1类,它不需要(xūyào)进行定位于检测。

其中包括:

∙MNIST:

它包含手写数字的28×28像素的灰度图像,里面有10大类别(10个数字)、6万张训练图像和1万张测试图像。

∙CIFAR:

这是一个包含不同物体32×32像素的彩色图像数据集。

∙ImageNet:

它包含的图像是256×256彩色像素,有1000多类。

图13:

MNIST数据集(10类、6万张训练图像、1万张测试图像)[59]vs.ImageNet数据集(1000多类、130万张训练图像、10万张测试图像)[10]

4.用于其它任务的数据集

五、用于DNN处理的硬件

在这部分里,我们将讨论在不同的硬件平台中进行高效处理而不降低准确性的策略(所有在本节中的方法都要输出完全相同的结果)。

∙对于CPU与GPU这样的时间敏感架构,我们将讨论在它们的运行中如何减少乘法次数以增加吞吐量。

∙对于加速器这样的空间敏感架构,我们讨论数据流如何能低成本地从存储器中被调用,以减少能耗。

图14:

高度并行(bìngxíng)的计算范式

1.在CPU和GPU平台(píngtái)上加速核(kernel)计算(jìsuàn)

图15:

映射(yìngshè)到全连接层(a)的矩阵乘法,当从单个输入特征图计算单个输出特征图时,使用(shǐyòng)矩阵向量乘法。

(b)当从N个输入(shūrù)特征图计算N个输出特征图时,使用矩阵(jǔzhèn)乘法。

图16:

映射到卷积层的矩阵(jǔzhèn)乘法(a)将卷积映射(yìngshè)到Toeplitz矩阵(jǔzhèn)。

(b)将Toeplitz矩阵(jǔzhèn)扩展到多个通道和滤波器。

图17:

用于加速(jiāsù)DNN的FFT。

2.为加速器设计(shèjì)的Energy-EfficientDataflow

图18:

每个MAC的存取

图19:

存储层级和数据移动(yídòng)能量

图20:

DNN中的数据复用(fùyònɡ)机会

图22:

DNN的数据流。

(a)权重(quánzhònɡ)固定(WS),(b)输出(shūchū)固定(OS),(c)没有局部(júbù)复用(NLR)

六、近场数据处理

在上一章节中,我们强调了数据流通主导了能源的消耗。

虽然空间架构(jiàɡòu)尽可能将储存器安放在离计算很近的位置(如放入PE),但同时我们也在努力将高密度存储器安置在近计算的位置,或者直接将计算集成(jíchénɡ)到存储器本身中。

在嵌入式系统中,我们还努力将计算放入到传感器(最先收集数据的元件)中。

在本论文的这个章节中,我们将讨论如何通过使用混合信号回路(mixed-signalcircuit)设计和高级存储技术将处理尽可能放置在离数据近的地方以减少数据流通。

A.DRAM

B.SRAM

C.非易失性电阻(diànzǔ)式存储(Non-volatileResistiveMemories)

D.传感器

图33。

通过(tōngguò)(a)SRAMbit-cell和(b)非易失性电阻式存储(cúnchǔ)进行模拟计算

七、DNN模型(móxíng)和硬件的联合设计(CO-DESIGN)

对DNN模型(móxíng)和DNN硬件进行联合设计可以为处理效率带来进一步的提升。

在传统上,DNN模型的设计目标是最大化准确度,而不会考虑太多实现的复杂性。

但是,这可能会使得设计很难实现。

DNN模型和硬件和联合设计可以有效地联合最大化准确度和吞吐量,同时最小化能耗和成本,这能增加采用的可能性。

这种方法已经在其它重要的且广泛应用的多媒体应用(比如视频压缩)中得到了证明。

之前的时候,视频标准大多关注算法开发。

从MPEG-2到H.264/AVC,在编码效率上实现了2倍的提升,而解码器复杂性却增加了4倍[110]。

最近,最新的视频编码标准H.265/HEVC[111]使用了算法和硬件的联合设计;结果其相对于H.264/AVC在编码效率上实现了又2倍的提升[112],而解码器复杂性也只增加了2倍。

在这一节,我们将重点介绍几个DNN模型和硬件联合设计方面的研究。

注意和第V节不同,这一节所提出的技术可能会改变准确度;尽管其目标是在最小化准确度改变的同时显著减少能耗并提高吞吐量。

这些方法可以大致分为以下几类:

∙降低(jiàngdī)运算和操作数的精度。

这包括将浮点数改为定点数、减少位宽、移到对数域和权重共享。

∙降低运算(yùnsuàn)的数量和模型的大小。

其中的技术包括:

压缩、剪枝和设计紧凑的网络架构。

表3:

为AlexNet降低数值精度的方法(fāngfǎ)。

这里的准确度是在ImageNet上测得的top-5error。

*表示(biǎoshì)不适用于第一层和/或最后(zuìhòu)的层

八、用于DNN评估和比较的基准指标

1.DNN模型的指标

为了评估一个给定模型的属性,我们应该考虑以下元素:

∙在ImageNet这样的数据集上的top-5error方面的模型准确度。

另外,使用了哪种类型的数据增强(比如,多次裁剪、集成模型)。

∙对于该DNN模型,要么应该使用众所周知的模型,要么就应该报告模型的参数,包括层的数量、滤波器大小、滤波器的数量和通道的数量。

∙权重的数量会影响该模型的存储需求,应该报告。

如果可能,也应该报告非零权重的数量,因为这能反映理论上的最小存储需求。

∙需要执行的MAC的量应被报告,因为其或多或少指示了给定DNN的运算量和吞吐量。

如果可能,也应该报告非零MAC的量,因为这能反映理论上的最小计算需求。

表4:

流行(liúxíng)的DNN指标(zhǐbiāo)。

稀疏性(sparsity)根据(gēnjù)报告的非零(NZ)权重(quánzhònɡ)和MAC得到(dédào)

2.DNN硬件的指标

为了测量DNN硬件的有效性,我们要考虑这些指标:

∙硬件设计的能量效率,包括每非零MAC(非零权重和激活)的能量和MAC的位宽(bitwidth)。

∙片外(off-chip)带宽(如,DRAM带宽)应该报告的包括片外的每非零MAC(非零权重和激活)的访问和MAC的位宽

∙区域效率(areaefficiency)衡量的是芯片的成本,要考虑内存(寄存器或SRAM)的尺寸和类型和控制逻辑的量。

∙吞吐量(throughput)应该基于多种DNN

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2