用于定点神经网络的位宽选择

文档序号:87026 发布日期:2021-10-08 浏览:32次 >En<

阅读说明:本技术 用于定点神经网络的位宽选择 (Bit width selection for fixed point neural networks ) 是由 D·林 V·S·R·安纳普莱蒂 D·J·朱利安 C·M·维任斯基 于 2016-04-11 设计创作,主要内容包括:本申请涉及用于定点神经网络的位宽选择。一种用于选择定点机器学习模型的位宽的方法包括评估该模型的每个计算级处的模型准确度对于位宽的敏感度。该方法还包括选择该模型的计算级中的参数和/或中间计算的位宽。该参数的位宽和该中间计算的位宽可以是不同的。所选择的位宽可以基于敏感度评估来确定。(The application relates to bit width selection for fixed point neural networks. A method for selecting bit widths for a fixed point machine learning model includes evaluating a sensitivity of model accuracy to bit widths at each computational stage of the model. The method also includes selecting a bit width for parameters and/or intermediate calculations in a computational stage of the model. The bit width of the parameter and the bit width of the intermediate calculation may be different. The selected bit width may be determined based on a sensitivity evaluation.)

用于定点神经网络的位宽选择

本申请是申请日为2016年4月11日、国际申请日为“PCT/US2016/026944”、申请日为“201680026249.7”、发明名称为“用于定点神经网络的位宽选择”的申请的分案申请。

相关申请的交叉引用

本申请要求于2015年5月8日提交的题为“BIT WIDTH SELECTION FOR FIXEDPOINT NEURAL NETWORKS(用于定点神经网络的位宽选择)”的美国临时专利申请No.62/159,097的权益,其公开内容通过援引全部明确纳入于此。

技术领域

本公开的某些方面一般涉及机器学习,并且尤其涉及改进用于定点机器学习模型(诸如人工神经网络)的位宽选择的系统和方法。

背景技术

可包括一群互连的人工神经元(例如,神经元模型)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。

卷积神经网络是一种前馈人工神经网络。卷积神经网络可包括神经元集合,其中每个神经元具有感受野并且共同地拼出一输入空间。卷积神经网络(CNN)具有众多应用。具体而言,CNN已被广泛使用于模式识别和分类领域。

深度学习架构(诸如深度置信网络和深度卷积网络)是分层神经网络架构,其中第一层神经元的输出变成第二层神经元的输入,第二层神经元的输出变成第三层神经元的输入,依此类推。深度神经网络可被训练以识别特征阶层并且因此它们已被越来越多地用于对象识别应用。类似于卷积神经网络,这些深度学习架构中的计算可分布在处理节点群体上,其可被配置在一个或多个计算链中。这些多层架构可每次训练一层并且可涉及使用后向传播的微调。

其他模型也可用于对象识别。例如,支持向量机(SVM)是可被应用于分类的学习工具。支持向量机包括对数据进行归类的分离超平面(例如,决策边界)。该超平面由监督式学习来定义。期望的超平面增加训练数据的裕量。换言之,超平面应该具有到训练示例的最大的最小距离。

尽管这些解决方案在数个分类基准上达到了优异的结果,但它们的计算复杂度可能极其高。另外,模型的训练可能是有挑战性的。

发明内容

在本公开的一方面,给出了一种用于选择定点机器学习模型的位宽的方法。所述方法包括评估该机器学习模型的每个计算级处的模型准确度对于位宽的敏感度。该方法还包括基于该敏感度评估来选择该模型的计算级中的参数和/或中间计算的位宽。该参数的位宽和该中间计算的位宽可以是不同的。

在本公开的另一方面,给出了一种用于选择定点机器学习模型的位宽的装置。该装置包括存储器以及耦合至该存储器的至少一个处理器。该一个或多个处理器被配置成评估该机器学习模型的每个计算级处的模型准确度对于位宽的敏感度。(诸)处理器还被配置成基于该敏感度评估来选择该模型的计算级中的参数和/或中间计算的位宽。该参数的位宽和该中间计算的位宽可以是不同的。

在本公开的还有另一方面,给出了一种用于选择定点机器学习模型的位宽的装备。该装备包括用于评估该机器学习模型的每个计算级处的模型准确度对于位宽的敏感度的装置。该装备进一步包括用于基于该敏感度评估来选择该模型的计算级中的参数和/或中间计算的位宽的装置。该参数的位宽和该中间计算的位宽可以是不同的。

根据本公开的另一方面,给出了一种非瞬态计算机可读介质。该非瞬态计算机可读介质具有编码于其上的用于选择定点机器学习模型的位宽的程序代码。该程序代码由处理器执行并且包括用以评估该机器学习模型的每个计算级处的模型准确度对于位宽的敏感度的程序代码。该程序代码还包括用以基于该敏感度评估来选择该模型的计算级中的参数和/或中间计算的位宽的程序代码。该参数的位宽和该中间计算的位宽可以是不同的。

本公开的附加特征和优点将在下文描述。本领域技术人员应当领会,本公开可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。本领域技术人员还应认识到,这样的等效构造并不脱离所附权利要求中所阐述的本公开的教导。被认为是本公开的特性的新颖特征在其组织和操作方法两方面连同进一步的目的和优点在结合附图来考虑以下描述时将被更好地理解。然而,要清楚理解的是,提供每一幅附图均仅用于解说和描述目的,且无意作为对本公开的限定的定义。

附图说明

在结合附图理解下面阐述的详细描述时,本公开的特征、本质和优点将变得更加明显,在附图中,相同附图标记始终作相应标识。

图1解说了根据本公开的某些方面的使用片上系统(SOC)(包括通用处理器)来设计神经网络的示例实现。

图2解说了根据本公开的各方面的系统的示例实现。

图3A是解说了根据本公开的各方面的神经网络的示图。

图3B是解说了根据本公开的各方面的示例性深度卷积网络(DCN)的框图。

图4和5解说了根据本公开的各方面的用于选择定点机器学习模型的位宽的方法。

具体实施方式

以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有的配置。本详细描述包括具体细节以便提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。

基于本教导,本领域技术人员应领会,本公开的范围旨在覆盖本公开的任何方面,不论其是与本公开的任何其他方面相独立地还是组合地实现的。例如,可以使用所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为所阐述的本公开的各个方面的补充或者与之不同的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,所披露的本公开的任何方面可由权利要求的一个或多个要素来实施。

措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。

尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。

用于定点神经网络的位宽选择

机器学习模型可以使用定点实现或浮点实现来配置。在浮点实现中,模型的元素和参数以及输入数据可以使用浮点数来表示。另一方面,在定点表示中,选择小数点的固定位置以使得在小数点的右边和/或左边有固定数目的位,并且该小数点的固定位置被用来表示模型的元素、参数和输入。浮点表示可以提供更大的精度。另一方面,定点实现对于机器学习模型(诸如人工神经网络(ANN))而言可以是合需的。具体而言,定点实现可以减小模型大小、缩短处理时间、减小存储器带宽、和/或减小功耗。

定点实现的一个挑战是确定表示模型(例如,神经网络)中的不同组件的位宽。在一些情况中,特定位宽可以被贯穿网络使用。然而,在网络的不同组件中使用不同位宽可以是更为合需的。例如,可以针对神经网络的每一层的偏置值、激活值、和/或权重选择不同的位宽。本公开的诸方面涉及为ANN的不同层和/或ANN的每一层的不同组件选择位宽。附加地,本公开的诸方面涉及基于性能规范和系统资源来改变位宽。

在一些方面,可以使用信号量化噪声比(SQNR)来评估模型性能。即,在机器学习模型(诸如,深度卷积网络)中,量化权重和/或激活的效果是引入量化噪声。类似于其他通信系统,当量化噪声增加时,模型性能降低。相应地,在输出处观察到的SQNR可以提供模型性能或准确度的指示。

在一些方面,模型量化器可以具有K dB/位的固定效率。换言之,定点表示中的每一位贡献K dB的SQNR。由此,SQNR可以被用来选择改进的或优化的位宽。位宽可以针对整个模型来选择或者可以在计算级基础上在计算级(例如,深度卷积网络(DCN)的一层)上选择。例如,在给定Y dB的DCN(具有N层)的输出处的SQNR目标(其中由于量化而引入了噪声)的情况下,模型中的总位宽可以通过最小化下式来选择:

其中K表示量化器效率,且xi表示模型的每个计算级(例如,层)处引入的量化噪声方差(或功率)。在一些方面,出于标记的简化目的,每一级的信号方差(或功率)可以被假设成归一化到1。位宽选择可能遭受某些约束的影响。例如,在一些方面,位宽选择可能遭受模型的输出处的SQNR的阈值的影响,其可以表达成:

由此,式1和2可以被认为是机器学习模型的SQNR预算。

式2可以表示注入的可允许的量化噪声。因为该模型在感兴趣的区域中可以是线性的,所以噪声从一个计算级到下一个计算级可以是加性的。由此,式1的目标函数是每个计算级或层处的位的总数或位宽。

在一些方面,位宽选择可以被简化成:

ρilog(xi),s.t.Σαixi=C, (3)

其中αi是从层i到输出的噪声放大或减小因子,C是约束α因子的常量,以及ρi是层i处的位宽的缩放因子。在一个示例性方面,ρi表示在目标是减小模型大小时参数的数目。在另一个示例中,ρi表示在目标是减少计算时每层的乘积累加(MAC)的数目。在一些方面,常量C可以基于SQNR限制来计算。

可针对每层引入的噪声可以与位宽缩放因子成正比并且与放大因子成反比。如果特定层具有高缩放因子(例如,因为存在许多神经元),则在目标是减小总体模型大小的情况下量化器可以增加位宽减小。相应地,位宽选择可以类似于注水等式,并且通过下式给出:

该位宽选择方程还识别并计及神经网络的各层中的差异。即,位宽选择在一些层中可以比在其他层中更有影响。例如,ANN的全连接层与卷积层相比对于量化噪声更为稳健。即,全连接层处的扇入可以更大,由此导致量化噪声的抑制。附加地,如果期望减小模型大小,则与卷积层的量化相比使全连接层具有更大的量化是合需的。值得注意的是,全连接层中的参数的数目可以大于卷积层的参数的数目。由此,量化全连接层可以导致与量化卷积层相比更大的模型大小减小。

在另一示例中,比较具有一百万个权重的层和具有一千个权重的层,对于一百万权重层,位宽的较小减小能够产生总体模型大小的显著改变。另一方面,在具有一千个权重的层中,较大位宽可以具有较小影响。

在一个示例中,出于简化和便于理解的目的,缩放因子和噪声放大因子可以被假设成相同的跨越层。在该示例中,xi可以相等,且每层的SQNR预算可以是相同的。此外,若假设了N层,则每层处的SQNR规范可以是SQNR最小+10log N。具体而言,在一个示例中,其中SQNR最小=26dB且N=10,每层的SQNR规范是36dB(或者,若假设3dB/位,则为12位)。

在一些方面,附加的安全因子可以被增加以计及不同训练和测试集的激活和权重和/或变体的非高斯分布。例如,假设量化效率为K=3dB/位。在位宽为12的情况下,SQNR规范可以是每层36dB SQNR。然而,在现实中,量化效率可以是2.5dB/位,因为例如测试时间的输入分布可以是不同的。由此,每层的实际SQNR可以是每层30dB SQNR。输出处的结果得到的SQNR将是20dB,其低于SQNR最小。防止此类情况发生的一种方式是在每层处向SQNR规范增加安全因子(例如,+12dB)。即,代替每层36dB的SQNR,可以使用每层48SQNR的目标。其相当于16的位宽。由此,即使实际量化效率是2.5dB/位,也可以达成每层40dB SQNR,并导致输出处30dB的SQNR,这比SQNR最小高。

上文描述的位宽选择技术还可以被应用到计算级(例如,层)的组件。例如,在一些情况中,ANN(诸如DCN)的层可以是指偏置、权重、和/或激活值。仍然,引入量化噪声的量化操作可以被认为出于选择位宽的目的而影响层。即,每个偏置、权重和激活值可以被认为是层。换言之,在以上的SQNR计算中,量化权重和偏置的过程可以被认为是“层”,并且量化激活可以被认为是另一“层。”

例如,出于SQNR计算的目的,具有3个卷积层的DCN可以具有6个量化“层”,或如下的步骤:

-量化卷积层(conv)1的权重和偏置,

-量化conv1的激活,

-量化conv2的权重和偏置,

-量化conv2的激活,

-量化conv3的权重和偏置,

-量化conv3的激活。

每个量化层或步骤可以引入特定量的量化噪声。

在一个示例中,权重w与激活a相乘。权重和激活二者可以包括固有的量化噪声nw和na。因为(w+nw)×(a+na)≈w·a+w·na+nw·a,所以由于噪声现象的新SQNR可以满足:

由此得出,独立地向权重和激活值中引入量化噪声可以类似于在归一化系统中的乘积操作之后增加总噪声。

在一些情况中,激活值的位宽可以小于权重的位宽(或者反之亦然)。此外,位宽选择可以基于模型中每层的权重数目、每层的激活值数目、每层的滤波器大小、每层的滤波器步幅、和/或每层的滤波器数目。

转移学习

在一些方面,转移学习可以被采用以执行学习任务。在该情形中,机器学习模型(例如,DCN)可以被用来从输入(例如,图像)中提取特征并生成对应的特征向量。对于分类任务,特征可以被用来训练分类器(例如,支持向量机器(SVM))。因为分类器可以在量化之后被重新训练,所以模型可以被进一步增强并且可以对量化噪声较不敏感。

随机权重

在一些方面,模型可以用随机权重来初始化。例如,随机权重可以被用于全连接层。因为分类器(例如,SVM)可以被重新训练(如上文所指示的),所以模型可以在不存储权重的情况下被存储。由此,对于全连接层而言,可以进一步减小位宽。因此,模型大小可以被大幅减小。

在一些方面,中间计算(例如,激活)的位宽可以被在线减小。例如,激活位宽可以根据模型性能、设备能力、等待时间要求等来在线选择。在一些方面,不同计算级(例如,层)的中间计算的位宽还可以基于优先级来确定,例如,该优先级由式1的成本函数或另一成本函数来确定。例如,成本函数可以基于在应用模型期间或之后收集的用户反馈。例如,用户反馈可以指示模型已经作出分类错误或者花费了过长的时间来计算标记。

在一些方面,SQNR预算可以基于经验办法来确定。对于给定的数据集,噪声可以被逐层注入。注入噪声可以例如包括根据具体位宽来注入随机噪声或执行量化。

模型性能(例如,分类准确度和/或速度)可以随后被评估以确定性能是否相对于阈值保持可接受。由于数据结构(与模型或网络的结构相反),某些层可以具有非常稀疏的激活,并因此可以具有较大的噪声预算(对于噪声较不敏感)。

附加地,在一些方面,位宽可以基于用户反馈来动态调节。例如,用户可以提供分类器性能的指示(例如,指出分类错误)。用户指示的实例的数目可以与阈值进行比较并被用来调节位宽(例如,触发以更精细的量化进行模型的重新加载)。

图1解说了根据本公开的某些方面使用片上系统(SOC)100进行前述用于定点机器学习模型的位宽选择的示例实现,SOC 100可包括通用处理器(CPU)或多核通用处理器(CPU)102。变量(例如,神经信号和突触权重)、与计算设备相关联的系统参数(例如,带有权重的神经网络)、延迟、频率槽信息、以及任务信息可被存储在与神经处理单元(NPU)108相关联的存储器块中、与CPU 102相关联的存储器块中、与图形处理单元(GPU)104相关联的存储器块中、与数字信号处理器(DSP)106相关联的存储器块中、专用存储器块118中,或可跨多个块分布。在通用处理器102处执行的指令可从与CPU 102相关联的程序存储器加载或可从专用存储器块118加载。

SOC 100还可包括为具体功能定制的附加处理块(诸如GPU 104、DSP 106、连通性块110(其可包括第四代长期演进(4G LTE)连通性、无执照Wi-Fi连通性、USB连通性、蓝牙连通性等))以及例如可检测和识别姿势的多媒体处理器112。在一种实现中,NPU实现在CPU、DSP、和/或GPU中。SOC 100还可包括传感器处理器114、图像信号处理器(ISP)、和/或导航120(其可包括全球定位系统)。

SOC 100可基于ARM指令集。在本公开的一方面,加载到通用处理器102中的指令可包括用于评估模型的每个计算级处的模型准确度对于位宽的敏感度的代码。加载到通用处理器102中的指令还可以包括用于基于模型准确度敏感度的评估来选择模型的每个计算级中的参数和中间计算中的一者或多者的位宽的代码。

图2解说了根据本公开的某些方面的系统200的示例实现。如图2中所解说的,系统200可具有可执行本文所描述的方法的各种操作的多个局部处理单元202。每个局部处理单元202可包括局部状态存储器204和可存储神经网络的参数的局部参数存储器206。另外,局部处理单元202可具有用于存储局部模型程序的局部(神经元)模型程序(LMP)存储器208、用于存储局部学习程序的局部学习程序(LLP)存储器210、以及局部连接存储器212。此外,如图2中所解说的,每个局部处理单元202可与用于为该局部处理单元的各局部存储器提供配置的配置处理器单元214对接,并且与提供各局部处理单元202之间的路由的路由连接处理单元216对接。

深度学习架构可通过学习在每一层中以逐次更高的抽象程度来表示输入、藉此构建输入数据的有用特征表示来执行对象识别任务。以此方式,深度学习解决了传统机器学习的主要瓶颈。在深度学习出现之前,用于对象识别问题的机器学习办法可能严重依赖人类工程设计的特征,或许与浅分类器相结合。浅分类器可以是两类线性分类器,例如,其中可将特征向量分量的加权和与阈值作比较以预测输入属于哪一类。人类工程设计的特征可以是由拥有领域专业知识的工程师针对具体问题领域定制的模版或内核。相反,深度学习架构可学习以表示与人类工程师可能会设计的相似的特征,但它是通过训练来学习的。此外,深度网络可以学习以表示和识别人类可能还没有考虑过的新类型的特征。

深度学习架构可以学习特征阶层。例如,如果向第一层呈递视觉数据,则第一层可学习以识别输入流中的相对简单的特征(诸如边)。在另一示例中,如果向第一层呈递听觉数据,则第一层可学习以识别特定频率中的频谱功率。取第一层的输出作为输入的第二层可以学习以识别特征组合,诸如对于视觉数据识别简单形状或对于听觉数据识别声音组合。例如,更高层可学习以表示视觉数据中的复杂形状或听觉数据中的词语。再高层可学习以识别常见视觉对象或口语短语。

深度学习架构在被应用于具有自然阶层结构的问题时可能表现特别好。例如,机动交通工具的分类可受益于首先学习以识别轮子、挡风玻璃、以及其他特征。这些特征可在更高层以不同方式被组合以识别轿车、卡车和飞机。

神经网络可被设计成具有各种连通性模式。在前馈网络中,信息从较低层被传递到较高层,其中给定层中的每个神经元向更高层中的神经元进行传达。如上所述,可在前馈网络的相继层中构建阶层式表示。神经网络还可具有回流或反馈(也被称为自顶向下(top-down))连接。在回流连接中,来自给定层中的神经元的输出可被传达给相同层中的另一神经元。回流架构可有助于识别跨越不止一个按顺序递送给该神经网络的输入数据组块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自顶向下)连接。当高层级概念的识别可辅助辨别输入的特定低层级特征时,具有许多反馈连接的网络可能是有助益的。

参照图3A,神经网络的各层之间的连接可以是全连接的(302)或局部连接的(304)。在全连接网络302中,第一层中的神经元可将它的输出传达给第二层中的每个神经元,从而第二层中的每个神经元将从第一层中的每个神经元接收输入。替换地,在局部连接网络304中,第一层中的神经元可连接至第二层中有限数目的神经元。卷积网络306可以是局部连接的,并且被进一步配置成使得与针对第二层中每个神经元的输入相关联的连接强度被共享(例如,308)。更一般化地,网络的局部连接层可被配置成使得一层中的每个神经元将具有相同或相似的连通性模式,但其连接强度可具有不同的值(例如,310、312、314和316)。局部连接的连通性模式可能在更高层中产生空间上相异的感受野,这是由于给定区域中的更高层神经元可接收到通过训练被调谐为到网络的总输入的受限部分的性质的输入。

局部连接的神经网络可能非常适合于其中输入的空间位置有意义的问题。例如,被设计成识别来自车载相机的视觉特征的网络300可发展具有不同性质的高层神经元,这取决于它们与图像下部关联还是与图像上部关联。例如,与图像下部相关联的神经元可学习以识别车道标记,而与图像上部相关联的神经元可学习以识别交通信号灯、交通标志等。

DCN可以用受监督式学习来训练。在训练期间,可向DCN呈递图像(诸如限速标志的经裁剪图像326),并且可随后计算“前向传递(forward pass)”以产生输出322。输出322可以是对应于特征(诸如“标志”、“60”、和“100)的值向量。”网络设计者可能希望DCN在输出特征向量中针对其中一些神经元输出高得分,例如与经训练的网络300的输出322中所示的“标志”和“60”对应的那些神经元。在训练之前,DCN产生的输出很可能是不正确的,并且由此可计算实际输出与目标输出之间的误差。DCN的权重可随后被调整以使得DCN的输出得分与目标更紧密地对准。

为了调整权重,学习算法可为权重计算梯度向量。该梯度可指示在权重被略微调整情况下误差将增加或减少的量。在顶层,该梯度可直接对应于连接倒数第二层中的活化神经元与输出层中的神经元的权重的值。在较低层中,该梯度可取决于权重的值以及所计算出的较高层的误差梯度。权重可随后被调整以减小误差。这种调整权重的方式可被称为“反向传播”,因为其涉及在神经网络中的“反向传递(backward pass)”。

在实践中,权重的误差梯度可能是在少量示例上计算的,从而计算出的梯度近似于真实误差梯度。这种近似方法可被称为随机梯度下降法。随机梯度下降法可被重复,直到整个系统可达成的误差率已停止下降或直到误差率已达到目标水平。

在学习之后,DCN可被呈递新图像326并且在网络中的前向传递可产生输出322,其可被认为是该DCN的推断或预测。

深度置信网络(DBN)是包括多层隐藏节点的概率性模型。DBN可被用于提取训练数据集的阶层式表示。DBN可通过堆叠多层受限波尔兹曼机(RBM)来获得。RBM是一类可在输入集上学习概率分布的人工神经网络。由于RBM可在没有关于每个输入应该被分类到哪个类的信息的情况下学习概率分布,因此RBM经常被用于无监督式学习。使用混合无监督式和受监督式范式,DBN的底部RBM可按无监督方式被训练并且可以用作特征提取器,而顶部RBM可按受监督方式(在来自先前层的输入和目标类的联合分布上)被训练并且可用作分类器。

深度卷积网络(DCN)是卷积网络的网络,其配置有附加的池化和归一化层。DCN已在许多任务上达成现有最先进的性能。DCN可使用受监督式学习来训练,其中输入和输出目标两者对于许多典范是已知的并被用于通过使用梯度下降法来修改网络的权重。

DCN可以是前馈网络。另外,如上所述,从DCN的第一层中的神经元到下一更高层中的神经元群的连接跨第一层中的神经元被共享。DCN的前馈和共享连接可被利用于进行快速处理。DCN的计算负担可比例如类似大小的包括回流或反馈连接的神经网络小得多。

卷积网络的每一层的处理可被认为是空间不变模版或基础投影。如果输入首先被分解成多个通道,诸如彩色图像的红色、绿色和蓝色通道,那么在该输入上训练的卷积网络可被认为是三维的,其具有沿着该图像的轴的两个空间维度以及捕捉颜色信息的第三维度。卷积连接的输出可被认为在后续层318和320中形成特征图,该特征图(例如,320)中的每个元素从先前层(例如,318)中一定范围的神经元以及从该多个通道中的每一个通道接收输入。特征图中的值可以用非线性(诸如矫正)max(0,x)进一步处理。来自毗邻神经元的值可被进一步池化(这对应于降采样)并可提供附加的局部不变性以及维度缩减。还可通过特征图中神经元之间的侧向抑制来应用归一化,其对应于白化。

深度学习架构的性能可随着有更多被标记的数据点变为可用或随着计算能力提高而提高。现代深度神经网络用比仅仅十五年前可供典型研究者使用的计算资源多数千倍的计算资源来例行地训练。新的架构和训练范式可进一步推升深度学习的性能。经矫正的线性单元可减少被称为梯度消失的训练问题。新的训练技术可减少过度拟合(over-fitting)并因此使更大的模型能够达成更好的普遍化。封装技术可抽象出给定的感受野中的数据并进一步提升总体性能。

图3B是解说示例性深度卷积网络350的框图。深度卷积网络350可包括多个基于连通性和权重共享的不同类型的层。如图3B所示,该示例性深度卷积网络350包括多个卷积块(例如,C1和C2)。每个卷积块可配置有卷积层、归一化层(LNorm)、和池化层。卷积层可包括一个或多个卷积过滤器,其可被应用于输入数据以生成特征图。尽管仅示出了两个卷积块,但本公开不限于此,而是,根据设计偏好,任何数目的卷积块可被包括在深度卷积网络350中。归一化层可被用于对卷积过滤器的输出进行归一化。例如,归一化层可提供白化或侧向抑制。池化层可提供在空间上的降采样聚集以实现局部不变性和维度缩减。

例如,深度卷积网络的平行过滤器组可任选地基于ARM指令集被加载到SOC 100的CPU 102或GPU 104上以达成高性能和低功耗。在替换实施例中,平行过滤器组可被加载到SOC 100的DSP 106或ISP 116上。另外,DCN可访问其他可存在于SOC上的处理块,诸如专用于传感器114和导航120的处理块。

深度卷积网络350还可包括一个或多个全连接层(例如,FC1和FC2)。深度卷积网络350可进一步包括逻辑回归(LR)层。深度卷积网络350的每一层之间是要被更新的权重(未示出)。每一层的输出可以用作深度卷积网络350中后续层的输入以从第一卷积块C1处提供的输入数据(例如,图像、音频、视频、传感器数据和/或其他输入数据)学习阶层式特征表示。

在一个配置中,机器学习模型被配置用于评估模型的每个计算级处模型准确度对于位宽的敏感度,以及基于该评估来选择模型的每个计算级中的参数和中间计算中的一者或多者的位宽。该模型包括评估装置和/或选择装置。在一个方面,评估装置和/或选择装置可以是配置成执行所叙述功能的通用处理器102、与通用处理器102相关联的程序存储器、存储器块118、局部处理单元202、和/或路由连接处理单元216。在另一种配置中,前述装置可以是被配置成执行由前述装置所叙述的功能的任何模块或任何装置。

根据本公开的某些方面,每个局部处理单元202可被配置成基于模型的一个或多个期望功能特征来确定模型的参数,以及随着所确定的参数被进一步适配、调谐和更新来使这一个或多个功能特征朝着期望的功能特征发展。

图4解说了用于选择定点机器学习模型的位宽的方法400。在框402,该过程评估模型的每个计算级处的模型准确度对于位宽的敏感度。模型准确度可以包括模型的输出处的信号量化噪声比(SQNR)的测量或者分类准确度。在一些方面,输出可以使用浮点数格式。

在框404,该过程基于该评估来选择该模型的每个计算级中的参数和中间计算的位宽。在一些方面,计算级的中间计算的位宽可以小于计算级中的参数的位宽,或者反之亦然。

在一些配置中,例如,机器学习模型可以是神经网络,诸如DCN。在该配置中,计算级可以包括神经网络的层。此外,参数可以包括偏置值和/或权重。此外,中间计算可以包括激活值。

由此,在一些方面,位宽可以基于神经网络的连通性来选择。例如,连通性可以包括网络的层是处于全连接配置、卷积配置、还是具有特定稀疏性的配置中。在一些方面,全连接层的位宽可以小于神经网络的卷积层的位宽。附加地,全连接层和卷积层的权重和/或偏置值在转移学习布置中可以是随机的。

此外,位宽的选择可以基于位宽是针对偏置值、权重、还是激活值的。例如,在一些方面,偏置值、权重和/或激活值的位宽可以基于神经网络中每层的权重数目、每层的激活值数目、每层的滤波器大小、每层的滤波器步幅、和/或每层的滤波器数目。

神经网络还可以在针对每一层的偏置值、激活值、和/或权重选择位宽之后被微调。

在一些方面,该过程还可以向模型的一个或多个计算级注入噪声。模型准确度可以针对所注入的噪声的每个计算级来确定。该过程可以进一步选择提供期望的模型准确度水平的注入噪声水平。

在一些方面,该过程可以进一步基于性能规范或系统资源或用户输入来动态地更新位宽。

图5是解说根据本公开的各方面的用于选择定点机器学习模型的位宽的方法的框图500。在框502,该过程向机器学习模型的计算级注入噪声。

在框504,该过程确定模型性能。在一些方面,模型性能可以包括分类准确度、分类速度、SQNR、其他模型性能度量或其组合。在框506,模型性能可以通过将性能与阈值进行比较来评估。阈值可以包括最小可接受性能水平。若性能在阈值之上,则该过程可以在框502注入更多噪声并重新评估模型性能。另一方面,若模型性能在阈值之下,则在框508,可以根据最后可接受噪声水平来选择位宽。

在一些方面,当模型性能在阈值之下时,噪声水平可以被减小且模型性能可以被重新评估。此外,增加或减小噪声水平的递增可以针对位宽的更为精细的选择来调节。

以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或(诸)软件组件和/或(诸)模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。一般而言,在附图中有解说的操作的场合,那些操作可具有带相似编号的相应配对装置加功能组件。

如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或其他数据结构中查找)、探知及诸如此类。另外,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。此外,“确定”可包括解析、选择、选取、确立及类似动作。

如本文中所使用的,引述一列项目中的“至少一者”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在涵盖:a、b、c、a-b、a-c、b-c、以及a-b-c。

结合本公开所描述的各种解说性逻辑框、模块、以及电路可用设计成执行本文所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何市售的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其他此类配置。

结合本公开描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在本领域所知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,等等。软件模块可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。

本文所公开的方法包括用于达成所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。

所描述的功能可在硬件、软件、固件或其任何组合中实现。如果以硬件实现,则示例硬件配置可包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的具体应用和整体设计约束,总线可包括任何数目的互连总线和桥接器。总线可将包括处理器、机器可读介质、以及总线接口的各种电路链接在一起。总线接口可用于尤其将网络适配器等经由总线连接至处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,按键板、显示器、鼠标、操纵杆,等等)也可以被连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路以及类似电路,它们在本领域中是众所周知的,因此将不再进一步描述。

处理器可负责管理总线和一般处理,包括执行存储在机器可读介质上的软件。处理器可用一个或多个通用和/或专用处理器来实现。示例包括微处理器、微控制器、DSP处理器、以及其他能执行软件的电路系统。软件应当被宽泛地解释成意指指令、数据、或其任何组合,无论是被称作软件、固件、中间件、微代码、硬件描述语言、或其他。作为示例,机器可读介质可包括随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、寄存器、磁盘、光盘、硬驱动器、或者任何其他合适的存储介质、或其任何组合。机器可读介质可被实施在计算机程序产品中。该计算机程序产品可以包括包装材料。

在硬件实现中,机器可读介质可以是处理系统中与处理器分开的一部分。然而,如本领域技术人员将容易领会的,机器可读介质或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传输线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。替换地或补充地,机器可读介质或其任何部分可被集成到处理器中,诸如高速缓存和/或通用寄存器文件可能就是这种情形。虽然所讨论的各种组件可被描述为具有特定位置,诸如局部组件,但它们也可按各种方式来配置,诸如某些组件被配置成分布式计算系统的一部分。

处理系统可以被配置为通用处理系统,该通用处理系统具有一个或多个提供处理器功能性的微处理器、以及提供机器可读介质中的至少一部分的外部存储器,它们都通过外部总线架构与其他支持电路系统链接在一起。替换地,该处理系统可以包括一个或多个神经元形态处理器以用于实现本文所述的神经元模型和神经系统模型。作为另一替换方案,处理系统可以用带有集成在单块芯片中的处理器、总线接口、用户接口、支持电路系统、和至少一部分机器可读介质的专用集成电路(ASIC)来实现,或者用一个或多个现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件组件、或者任何其他合适的电路系统、或者能执行本公开通篇所描述的各种功能性的电路的任何组合来实现。取决于具体应用和加诸于整体系统上的总设计约束,本领域技术人员将认识到如何最佳地实现关于处理系统所描述的功能性。

机器可读介质可包括数个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。这些软件模块可包括传送模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。作为示例,当触发事件发生时,可以从硬驱动器中将软件模块加载到RAM中。在软件模块执行期间,处理器可以将一些指令加载到高速缓存中以提高访问速度。随后可将一个或多个高速缓存行加载到通用寄存器文件中以供处理器执行。在以下述及软件模块的功能性时,将理解此类功能性是在处理器执行来自该软件模块的指令时由该处理器来实现的。此外,应领会,本公开的各方面产生对处理器、计算机、机器或实现此类方面的其它系统的机能的改进。

如果以软件实现,则各功能可作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用于携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。另外,任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或无线技术(诸如红外(IR)、无线电、以及微波)从web网站、服务器、或其他远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电、以及微波)就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘、和碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。因此,在一些方面,计算机可读介质可包括非瞬态计算机可读介质(例如,有形介质)。另外,对于其他方面,计算机可读介质可包括瞬态计算机可读介质(例如,信号)。上述的组合应当也被包括在计算机可读介质的范围内。

因此,某些方面可包括用于执行本文中给出的操作的计算机程序产品。例如,此类计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能由一个或多个处理器执行以执行本文中所描述的操作。对于某些方面,计算机程序产品可包括包装材料。

此外,应当领会,用于执行本文中所描述的方法和技术的模块和/或其它恰适装置能由用户终端和/或基站在适用的场合下载和/或以其他方式获得。例如,此类设备能被耦合至服务器以促成用于执行本文中所描述的方法的装置的转移。替换地,本文所述的各种方法能经由存储装置(例如,RAM、ROM、诸如压缩碟(CD)或软盘等物理存储介质等)来提供,以使得一旦将该存储装置耦合至或提供给用户终端和/或基站,该设备就能获得各种方法。此外,可利用适于向设备提供本文所描述的方法和技术的任何其他合适的技术。

将理解,权利要求并不被限定于以上所解说的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:适用于硬件电路的高精度压缩方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!