CN113272826A - 数据处理处理器、对应的方法和计算机程序 - Google Patents

数据处理处理器、对应的方法和计算机程序 Download PDF

Info

Publication number
CN113272826A
CN113272826A CN201980084061.1A CN201980084061A CN113272826A CN 113272826 A CN113272826 A CN 113272826A CN 201980084061 A CN201980084061 A CN 201980084061A CN 113272826 A CN113272826 A CN 113272826A
Authority
CN
China
Prior art keywords
function
activation
module
computing
configurable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980084061.1A
Other languages
English (en)
Inventor
米歇尔·杜索
米歇尔·潘达文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite de Technologie de Troyes
Universite de Bourgogne
Original Assignee
Universite de Technologie de Troyes
Universite de Bourgogne
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite de Technologie de Troyes, Universite de Bourgogne filed Critical Universite de Technologie de Troyes
Publication of CN113272826A publication Critical patent/CN113272826A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种数据处理处理器,所述处理器包括至少一个处理存储器(MEM)和一个计算单元(CU)。根据本发明,所述计算单元(CU)包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元(SCN)中的每个可配置神经元(CN)包括用于计算组合函数的模块(MCCF)和用于计算激活函数的模块(MCAF),每个用于计算激活函数的模块(AFU)包括用于接收配置命令的寄存器,使得所述命令从可以由所述用于计算激活函数的模块(AFU)执行的至少两个激活函数中确定要执行的激活函数。

Description

数据处理处理器、对应的方法和计算机程序
技术领域
本发明涉及神经网络的物化。更具体地,本发明涉及自适应且可配置神经网络的物理实施方案。仍更具体地,本发明涉及可以根据需要调整其配置和操作的通用神经网络的实施方案。
背景技术
在计算机化数据处理领域,神经网络是一种数字系统,其设计最初是从生物神经元的功能中得到启发。神经网络更一般地被建模为包括处理算法和统计数据(包含权重)的系统。处理算法允许对输入数据进行处理,并与统计数据组合以获得输出结果。处理算法由定义对输入数据以及网络的统计数据执行以提供输出结果的计算组成。同时,计算机化神经网络被划分为层。所述层通常具有输入层、一个或多个中间层和输出层。计算机化神经网络的一般操作以及因此应用于输入数据的一般处理在于实施处理的迭代算法过程,其中输入数据由输入层处理,所述输入层产生输出数据,此输出数据成为下一层的输入数据,以此类推,有多少层就有多少次,直到获得由输出层给出的最终输出数据。
由于人工神经网络的最初目的是模拟生物神经网络的操作,所以用于组合来自所述网络的一层的输入数据和统计数据的算法包含尝试模拟生物神经元操作的处理。在人工神经网络(以下简称神经网络)中,认为神经元通常包含组合函数和激活函数。通过使用与神经元或位于同一层中的一组神经元相关的算法,以计算机化的方式实施此组合函数和此激活函数。
组合函数用于组合输入数据和统计数据(突触权重)。输入数据以向量的形式物化,所述向量的每个点代表给定值。统计值(即,突触权重)也由向量表示。因此,组合函数被形式化为向量到标量函数,因此:
-在MLP类型(多层感知器)神经网络中,计算输入的线性组合,即组合函数返回输入的向量与突触权重的向量之间的标量积;
-在RBF类型(径向基函数)神经网络中,计算输入之间的距离,即组合函数返回由输入向量与突触权重对应的向量之间的向量差所得到的向量的欧几里德范数;
就其本身而言,激活函数用于打破神经元功能的线性。阈值函数通常具有三个区间:
-低于阈值时,神经元处于非活动状态(在这种情况下,它的输出通常为0或-1);
-在阈值附近时,过渡阶段;
-高于阈值时,神经元处于活动状态(在这种情况下,它的输出通常为1)。
经典的激活函数包含例如:
-sigmoid函数;
-双曲正切函数;
-赫维赛德函数(Heaviside function)。
关于神经网络的出版物数不胜数。一般来说,这些出版物涉及神经网络的理论方面(如寻找新的激活函数,或层的管理,或反馈,或学习,或更准确地机器学习中的梯度下降)。其它出版物涉及实施计算机化神经网络以解决特定问题的系统的实际使用。不太常见的是,还发现与特定神经网络的关于特定组件的实施方案相关的出版物。这是RomanA.Solovye等人(2018)的出版物“具有定点计算的卷积神经网络的FPGA实施方案(FPGAImplementation of Convolutional Neural Networks with Fixed-PointCalculations)”的案例,其中建议将神经网络内执行的计算定位在硬件组件上。然而,本文档中提出的硬件实施方案在范围上是有限的。实际上,其限于在其中执行许多缩减的卷积神经网络的实施方案。然而,它确实提供了定点或浮点计算的实施方案。Lei Zhang(2017)的论文“具有阈值、斜坡和Sigmoid激活函数的定点神经元模型的实施方案(Implementation of Fixed-point Neuron Models with Threshold,Ramp and SigmoidActivation Functions)”也讨论了神经网络的实施方案,所述实施方案包含特定神经元和三个特定激活函数的定点计算的实施方案(单独地实施)。
然而,这些文章中描述的解决方案并没有解决一般神经网络(即实施一般神经元的神经网络)的硬件实施问题,所述一般神经网络可以实施多种神经网络类型,包含包括若干个激活函数和/或若干个组合函数的混合神经网络。
因此,需要提供一种允许实施神经网络的装置,所述神经网络以可靠且有效的方式实施神经元,此外所述神经网络可重配置并且可以装配在减小的处理器区域上。
发明内容
本发明不引起先前技术的问题中的至少一个问题。更具体地,本发明涉及一种数据处理处理器,所述处理器包括至少一个处理存储器和一个计算单元,所述处理器的特征在于,所述计算单元包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元中的每个可配置神经元包括用于计算组合函数的模块和用于计算激活函数的模块,每个用于计算激活函数的模块包括用于接收配置命令的寄存器,使得所述命令从可以由所述用于计算激活函数的模块执行的至少两个激活函数中确定要执行的激活函数。
因此,本发明使得可以在执行时配置一组可重配置神经元,使得所述一组可重配置神经元根据在执行期间提供给神经元的控制字执行预定的函数。在可重配置神经元的可能专用的存储器空间中接收的控制字对于特定神经网络的每一层来说可能是不同的,并且因此形成要在所讨论的处理器上执行(实施)的神经网络的参数的一部分。
根据特定实施例,其特征在于,可由用于计算激活函数的模块执行的至少两个激活函数属于包括以下的群组:
-sigmoid函数;
-双曲正切函数;
-高斯函数;
-RELU(“修正线性单元”)函数。
因此,可重配置神经元能够实施用于工业的主要激活函数。
根据特定实施例,用于计算激活函数的模块被配置成执行所述至少两个激活函数的逼近。
因此,与现有技术相比,嵌入一组可重配置神经元的神经处理器的计算能力可能降低,从而使得实施所提出的技术所需的尺寸、功耗减少并且因此所需的能量减少。
根据特定特征,用于计算激活函数的模块包括用于计算与λx的绝对值的sigmoid的计算的逼近相对应的基本运算的子模块:
[数学公式1]
Figure BDA0003120706490000031
因此,在使用基本运算的情况下,通过一系列简单的计算,就有可能逼近由控制字定义的特定激活函数的结果。
根据特定实施例,根据逼近参数λ执行所述至少两个激活函数的逼近。
因此,逼近参数λ可以与控制字结合使用来定义基本运算的计算单元的行为,以计算控制字激活函数的详细逼近。换言之,控制字路由要在激活函数计算单元中执行的计算(执行所述计算的路由),而逼近参数λ调适(配置)此计算。
根据特定特征,所述至少两个激活函数的逼近是通过配置用于计算激活函数的模块,使得以定点或浮点模式执行计算来执行的。
当以定点模式执行时,这进一步有利地减少了实施所提出的技术所需的资源,并且因此进一步降低了能量消耗。此实施方案有利于低容量/低能耗装置(如被连接的对象)。
在特定特征中,为网络的每一层设置与定点或浮点计算相关的位数。因此,另外的参数可以存储在神经网络的层参数的集合中。
根据特定实施例,所述数据处理处理器包括网络配置存储存储器,所述网络配置存储存储器内存储了神经网络执行参数(PS,cmd,λ)。
根据另一实施方案,本发明还涉及一种用于处理数据的方法,所述方法由包括至少一个处理存储器和计算单元的数据处理处理器实施,所述计算单元包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元中的每个可配置神经元包括用于计算组合函数的模块和用于计算激活函数的模块,所述方法包括:
-初始化步骤,所述初始化步骤包括在所述处理存储器中加载一组应用数据并且加载与所述网络配置存储存储器中的一组突触权重和层配置相对应的一组数据;
-根据迭代实施方案执行神经网络,所述执行包括:对于每一层,应用配置命令,使得所述命令从能够由所述用于计算激活函数的模块执行的至少两个激活函数中确定要执行的激活函数,所述执行给出经处理的数据;
-将经处理的数据传输到调用应用。
此方法的优点与前面所述的优点相似。然而,所述方法可以在任何处理器类型上实施。
根据特定实施例,对于所述神经网络的当前层,所述神经网络的执行包括以下步骤的至少一次迭代:
-传输定义针对所述当前层实施的所述组合函数和/或所述激活函数的至少一个控制字;
-加载所述当前层的突触权重;
-从临时存储存储器中加载输入数据;
-根据所述至少一个控制字针对每个神经元和每个输入向量计算所述组合函数,从而针对每个使用的神经元给出中间标量;
-根据所述中间标量以及所述至少一个第二控制字计算所述激活函数,从而针对每个使用的神经元给出激活结果;
-将所述激活结果记录在所述临时存储存储器中。
因此,本发明可以通过因式分解计算和逼近在专用处理器内(或在特定处理方法中)优化非线性函数的计算,这使得可以减少操作的计算负载,尤其是在激活函数的级别下。
应当理解,在根据本发明的本技术的描述的范围内,用于将信息和/或消息从第一装置传输到第二装置的步骤对于此第二装置至少部分地对应于用于接收传输的信息和/或消息的步骤,不论此接收和此传输是否是直接的,或者不论其是否通过其它传送、网关或中间装置(包含根据本发明在本文档中描述的装置)完成。
根据一般实施方案,根据本发明的方法的不同步骤由包括软件指令的一个或多个软件程序或计算机程序实施,所述软件指令旨在由根据本发明的执行装置的数据处理器执行并被设计为在由脚本化的源代码来执行和确定的流程分布的框架内控制在通信终端、电子执行装置和/或远程服务器的级别上实施的方法的各个步骤的执行。
因此,本发明还涉及能够由计算机或数据处理器执行的程序,这些程序包括用于控制上述方法的步骤执行的指令。
程序可以使用任何编程语言,并且可以呈源代码、目标代码或源代码与目标代码之间的中间代码的形式,如部分编译的形式或任何其它所需的形式。
本发明还涉及一种可由数据处理器读取并且包括如上所述的程序指令的数据介质。
所述数据介质可以是任何能够存储所述程序的实体或装置。例如,所述介质可以包括存储构件,如ROM,例如CD-ROM或微电子电路ROM,或者可以包括磁记录构件,例如移动介质(存储卡)或硬盘或SSD。
另一方面,所述数据介质可以是可传输介质,如电信号或光信号,所述可传输介质可以通过电缆或光缆、无线电或其它手段传递。根据本发明的程序具体地可以在因特网类型的网络上下载。
可替代地,所述数据介质可以是其中嵌入了程序的集成电路,所述电路适合于执行上述方法或用于执行上述方法。
根据一个实施例,本发明是通过使用软件和/或硬件组件来实施的。在此上下文中,本文档中可以使用术语“模块”来指代软件组件、硬件组件或硬件组件和软件组件的组合。
软件组件是一个或多个计算机程序、程序的一个或多个子程序,或更一般地,能够实施功能或一组功能的程序或软件的任何元件,如下面针对相关模块所描述的。此类软件组件由物理实体(终端、服务器、网关、机顶盒、路由器等)的数据处理器执行,并且能够访问此物理实体的硬件资源(存储器、记录介质、通信总线、电子输入/输出卡、用户界面等)。
以同样的方式,硬件组件是能够实施功能或一组功能的硬件组合件的任何元件,如下面针对相关模块所描述的。它可以是可编程的硬件组件或具有用于执行软件的嵌入式处理器的组件,例如集成电路、智能卡、存储卡、用于执行固件的电子卡等。
上述系统的每个组件自然地实施其自身的软件模块。
以上提到的各种实施例可以相互组合以实施本发明。
附图说明
通过阅读作为简单说明性非限制性实例提供的优选实施例的以下描述和附图,本发明的其它特性和优点将更加清楚地显现,其中:
-[图1]描述了在其中实施本发明的处理器;
-[图2]展示了根据本发明的可配置神经元的激活函数的拆分;
-[图3]描述了在特定实施例中用于计算激活函数的逼近值的块序列;
-[图4]描述了根据本发明的用于在神经网络内处理数据的方法的实施例。
具体实施方式
5.1.技术原理说明
5.1.1.概述
面对实施自适应且可配置的神经网络的问题,本发明人专注于以不同配置实施的计算的物化。如以上所解释的,神经网络之间的区别主要在于所执行的计算。具体地,构成神经网络的层实施了单个神经元,所述单个神经元执行组合函数和激活函数,所述组合函数和激活函数可能因网络而异。现在,在给定的电子装置(如智能手机、平板电脑或个人计算机)上,可以实施许多不同的神经网络,每个神经网络由不同的应用或进程使用。因此,为了有效地实施此类神经网络,不可能为要实施的每种类型的神经网络都配备专用的硬件组件。出于这个原因,现今的大多数神经网络纯粹是以软件而不以硬件(即使用直接处理器指令)实施的。基于这一观察结果,如上所述,本发明人已经开发出一种在物质上可重配置的特定神经元。通过使用控制字,此神经元可以在正在执行的神经网络中采用适当的形式。更具体地,在至少一个实施例中,本发明被具体化为通用处理器。此通用处理器执行的计算可以根据实施模式以定点或浮点模式执行。当它们以定点模式执行时,计算可以在计算资源和处理资源很少的平台(如连接的对象等小型装置)上有利地实施。所述处理器支持离线学习。所述处理器包括存储器,具体地包含:各层的突触权重;每一层的激活函数的选择;以及每一层的神经元的配置和执行参数。神经元和隐藏层的数量取决于操作实施方案以及经济和实际考虑因素。具体地,处理器存储器的大小根据希望提供的神经网络的最大容量而定。用于存储层的结果的结构也存在于处理器中,所述结构允许将相同的神经元重复用于若干个连续的隐藏层。为了简单起见,此存储结构被称为临时存储存储器。因此,组件(处理器)的可重配置神经元的数量也根据希望被神经网络的给定层允许的最大神经元数量来选择。
[图1]图1简洁地示出了本发明的一般原理。处理器包括多个可配置神经元(图中示出了十六个神经元)。每个神经元由两个不同的单元构成:组合函数单元和激活函数单元(AFU)。这两个单元中的每个单元都可通过命令字(cmd)进行配置。神经元通过连接总线(CBUS)和连接路由(CROUT)寻址。输入数据被表示为向量
Figure BDA0003120706490000071
所述向量包含多个输入值(实例中为八个值)。这些值通过网络路由,以产生八个结果标量(z0,…,z7)。接下来描述突触权重、命令和拟合参数λ。因此,本发明涉及一种数据处理处理器,所述处理器包括至少一个处理存储器(MEM)和一个计算单元,所述处理器的特征在于,所述计算单元(CU)包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元(SCN)中的每个可配置神经元(CN)包括用于计算组合函数的模块(MCCF)和用于计算激活函数的模块(MCAF),每个用于计算激活函数的模块(AFU)包括用于接收配置命令的寄存器,使得所述命令从可以由所述用于计算激活函数的模块(AFU)执行的至少两个激活函数中确定要执行的激活函数。所述处理器也包括网络配置存储存储器(MEMR),所述网络配置存储存储器内存储了神经网络执行参数(PS,cmd,λ)。此存储器可以与处理存储器(MEM)相同。
下面描述作为本发明目标的处理器的各种特性,且更具体地描述可重配置神经元的结构和功能。
5.1.2.可配置神经元
作为本发明目标的可配置神经元网络的可配置神经元包括两个计算模块(单元),所述两个计算模块(单元)可以被配置成:一个计算模块负责计算组合函数,并且一个计算模块负责计算激活函数。然而,根据本发明,为了使网络的实施高效且有效,可以这么说,本发明人已经简化了计算并将其因式分解(合并),因此这些模块可以执行最多的常见计算。具体地,用于计算激活函数的模块(也称为AFU)通过简化和逼近这些计算来优化所有激活函数的通用计算。下面详述说明性实施方案。形象地说,用于计算激活函数的模块通过合并用于再现激活函数的逼近的计算部分执行计算以再现接近所选激活函数结果的结果。
在此实施例中,人工神经元被分解为两个可配置元件(模块)。第一个可配置元件(模块)计算标量积(大多数网络)或欧几里得距离。称为AFU(对于激活函数单元)的第二个元件(模块)实施激活函数。第一个模块实施用于计算欧几里得距离的平方根计算的逼近。有利地,在处理器包括低容量的情况下,这一逼近以定点模式执行。AFU可以使用sigmoid、双曲正切、高斯、RELU。如前所述,由神经元执行的计算是通过使用名为cmd的命令字来选择的,因为这是微处理器指令的情况。因此,此人工神经电路是通过接收一个或多个命令字来配置的,具体取决于实施方案的模式。在当前情况下,控制字是由位或位序列(例如,一个字节,能够获得256个可能的命令或两次的128个命令)组成的信号,所述信号被传输到电路以对其进行配置。在一般实施例中,所提出的神经元的实施方案使“普通”网络以及如ConvNet(卷积神经网络)等最新一代神经网络的实施成为可能。此计算架构可以以实用的方式实施作为标准处理器的软件库或作为FPGA或ASIC的硬件实施方案。
因此,可配置神经元由计算距离和/或标量积的模块(取决于所使用的神经元类型)和AFU模块构成。
像任何神经元一样,通用的可配置神经元包含定点或浮点输入数据,其中:
-X构成输入数据向量;
-W构成神经元的突触权重的向量;
以及定点或浮点输出数据:
-z代表神经元的标量结果。
根据本发明,还有参数λ,其代表sigmoid、双曲正切、高斯或RELU的参数。此参数对于层中的所有神经元来说都是相同的。此参数λ和控制字一同被提供给所述神经元以配置神经元的实施方案。此参数在其用于执行接近来自下面介绍的逼近方法之一的函数值的计算的意义上可以称为逼近参数。
具体地,在一般实施例中,由AFU再现(和因式分解)的四个主要函数是:
-sigmoid:
[数学公式2]
Figure BDA0003120706490000081
-双曲正切:
[数学公式3]tanh(βx)
-高斯函数;
[数学公式4]
Figure BDA0003120706490000082
-RELU(“修正线性单元”)函数;
max(0,x)或
Figure BDA0003120706490000083
根据本发明,前三个函数是近似计算的。这意味着可配置神经元并未实施这些函数的精确计算,而是实施这些函数的计算的逼近,从而减少了获得结果所需的负载、时间和资源。
下面描述了这些数学函数的四种逼近方法,以及此类可配置神经元的架构。
第一个方法:
用于计算sigmoid的等式
[数学公式5]
Figure BDA0003120706490000091
由以下公式逼近(Allipi):
[数学公式6]
Figure BDA0003120706490000092
(对于
Figure BDA0003120706490000093
)
[数学公式7]
Figure BDA0003120706490000094
(对于
Figure BDA0003120706490000095
)
其中,(x)是x的整数部分
第二个方法:
函数tanh(x)以以下方式进行估算:
[数学公式8]tanh(x)=2×Sig(2x)-1
其中
[数学公式9]
Figure BDA0003120706490000096
或者更一般地:
[数学公式10]tanh(βx)=2×Sig(2βx)-1
其中
[数学公式11]
Figure BDA0003120706490000097
其中λ=2β
第三个方法:
为了逼近高斯函数:
[数学公式12]
Figure BDA0003120706490000098
使用以下方法:
[数学公式13]sig′(x)=λsig(x)(1-sig(x))
其中
[数学公式14]
Figure BDA0003120706490000099
第四个方法:
没有必要通过逼近来获得RELU(“修正线性单元”)函数的值;
max(0,x)或
Figure BDA0003120706490000101
其中
Figure BDA0003120706490000102
上述四种方法构成原始函数(sigmoid、双曲正切和高斯)的逼近。然而,本发明人已经证明(参见附录),使用本发明的技术获得的逼近值提供了与所述函数的精确表达相似的结果。
[图2]鉴于以上所述,图2示出了激活函数电路的一般架构。此函数架构考虑了先前的逼近(方法1到4)和计算函数中的因式分解。
本技术的优点如下:
-具有允许实施任何神经网络(包含convnet)的可配置神经单元的通用神经网络的硬件实施方案。
-对于某些实施例,sigmoid、双曲正切和高斯的定点或浮点计算的原始逼近。
-以标准处理器的软件库形式或以FPGA的软件库形式实施AFU。
-将AFU集成为所有标准处理器或FPGA或ASIC的硬件架构。
-根据实施方案模式,与标准库相比,计算的复杂度划分在3到5之间。
5.2.可配置神经元的实施例的描述
在此实施例中,仅讨论了AFU的操作实施方案。
无论所处理的值被表示为定点还是浮点,AFU都会执行计算。此实施方案的优势和创意在于将计算块(第2块至第4块)合并(因式分解)以获得不同的非线性函数,此计算在下文中被定义为“基本运算”,它对应于λx绝对值的sigmoid的计算的逼近:
[数学公式15]
Figure BDA0003120706490000103
因此“基本运算”不再是标准的数学运算,如在所有传统处理器中都能发现的加法和乘法,而是λx绝对值的sigmoid函数。在本实施例中,此“基本运算”对于所有其它非线性函数是通用的。在本实施例中,使用了此函数的逼近值。因此,这里使用高级函数的逼近值来执行高级函数的计算,而未使用计算这些函数的标准方法。通过使用sigmoid函数的对称性,从此基本运算推导出sigmoid的x为正值的结果。双曲正切函数是通过使用将其与sigmoid函数联系的标准对应关系获得的。高斯函数是通过传递通过sigmoid的作为高斯的近似曲线的导数获得的,所述sigmoid的导数是通过sigmoid函数与其对称函数之间的乘积获得的。作为正x的线性函数的RELU函数不使用计算非线性函数的基本运算。对负x使用线性比例函数的带泄露修正线性单元(RELU)函数不使用计算非线性函数的基本运算。
最后,使用命令字(cmd)来选择函数,就像微处理器指令一样,输入值的符号决定了用于所选函数的计算方法。所述不同函数的所有参数都使用相同的参数λ,所述参数无论表示格式如何都是正实数值。[图3]图3更详细地展示了此实施例。具体地关于此图3:
-块1使输入数据x乘以参数λ,所述参数的含义取决于使用的激活函数:当使用sigmoid时,直接为λ;当使用双曲正切函数时,为λ;并且对于高斯为λ,当使用leakyRELU函数时,比例系数“a”针对x为负值的情况;因此,此计算提供了块2和块5的值xc。无论实际值的表示格式如何,此块都执行乘法运算。任何执行计算并提供结果的乘法方法,无论这些值以何种格式表示,都标识此块。在高斯函数的情况下,除法可以包含在AFU中或者可以不包含在AFU中。
-块2到4计算了除了RELU函数和leakyRELU函数之外的非线性函数的“基本运算”,所述RELU和leakyRELU函数是线性函数,根据x的正负具有不同的比例系数。对于x的绝对值的负值,此基本运算使用sigmoid函数的直线段逼近。根据期望的优化,这些块可以分组成两个组或三个组。每个直线段定义在x的整数部分与x的整数部分加1之间的区间上:
-命名分隔符的块2提取整数部分,取绝对值,这也可以通过
Figure BDA0003120706490000111
的默认整数部分的绝对值来转换
Figure BDA0003120706490000112
。它还提供x:|{x}|的分数部分的绝对值。此块提供的截断部分给出了段的开头,并且分数部分表示在此段上定义的直线。整数部分和分数部分的分隔可以用任何可能的方式实现,而不管x以哪种格式表示。
-块3从块2提供的分数部分|{x}|计算最终分数的分子yn。此块提供了与用截断部分确定的段无关的形式2-|{x}|的直线方程。
-块4根据块3提供的分子yn以及块2提供的整数部分,计算所有函数y1的共同值。此块计算直线方程元素的公分母,所述方程为每一段提供不同的直线,而实际曲线与用直线得到的近似值之间的误差最小。使用2的幂来简化基本运算的计算。因此,此块使用加法和减法,就算法复杂度而言仍然使用加法,然后除以2的幂。
-块5计算非线性函数的结果,所述结果取决于命令字cmd的值、符号x的值,当然还有块4的结果y1
-对于第一个cmd值,它提供参数sigmoidλ,所述参数等于针对负x(λ,对于λ)的基本运算结果,并且等于1减去针对正x(λ,对于λ)的基本运算结果;此计算使用x的正负值之间sigmoid函数的对称性。此计算仅使用减法。在这种情况下,获得sigmoid,其中在最坏情况下,利用另外的减法运算。
-对于第二个值,它提供参数β的双曲正切值,其对应于xβ(β)为负值时基本运算的两倍减一,以及x(β对于β)为正值的一减基本运算的两倍。x的值除以二乘以参数中的系数1/2,λ=2β或者在此级别完成x的值除以二λ=2β。
-对于第三个值,无论符号x如何,它都提供高斯函数z=4y1(1-y1)。实际上,通过使用sigmoid的导数来逼近高斯。用这种方法,获得接近高斯函数的曲线。此外,简单地通过将基本运算的结果乘以它的对称函数,来计算sigmoid的导数。在这种情况下,参数λ通过将1.7除以λ来定义高斯分布的标准偏差。此除法运算可能包含在AFU中或者可能未包含在AFU中。最后,此计算使用具有两个操作数以及2的幂的乘法。
-对于第四个值,它提供了函数RELU,其为正xz=x对于z=x给出x值,为负xz=x对于z=x给出0值。在这种情况下,直接运用x的值,而不使用基本运算。
-对于最后一个值,RELU函数(leakyRELU)的变体,其给出正xz=x对于z=x的x值,以及负xz=x对于z=x的与x成正比的值。比例系数由参数λ提供。
因此,块5是包含前面描述的非线性函数的各种最终计算的块,也是一个根据控制信号的值和x的符号值执行运算的选择的开关块。
5.3.能够实施多个不同神经网络的专用组件、处理数据的方法的实施例的描述。
在本说明性实施例中,包括一组16384个可重配置神经元的组件位于处理器上。这些可重配置神经元中的每一个都直接从临时存储存储器接收其数据,所述存储器包括至少16384个条目(或至少32768个,取决于所述实施例),每个输入值对应一个字节。临时存储存储器的大小因此为16kb(或32kb)(千字节)。根据操作实施方案,可以增加临时存储存储器的大小,以方便结果数据的重写过程。所述组件还包含用于存储神经网络配置的存储器。在这个实例中,假设配置存储存储器的大小允许20层的实施,这些层中的每一层都潜在地包括与可能条目总数相对应的多个突触权重,即,所述层的每个层有16384个不同的突触权重,每个层的大小为一个字节。对于每一层,根据本发明,也有至少两个命令字,每个长度为一个字节,即每层总共16386个字节,而且对于所述20层,最小是总数为320kB。此存储器还包含一组专用于存储代表网络配置的数据的寄存器:层数、每层神经元数、层结果的排序等。在这种配置中,整个组件需要小于1MB的内存大小。
5.4.其它特征和益处
[图4]图4是关于可重配置神经网络操作的展示。
在初始化(步骤0)时,一组数据(EDAT),例如对应于来自给定硬件或软件应用的一组应用数据,被加载至临时存储器(MEM)中。对应于一组突触权重和层配置(CONFDAT)的一组数据,被加载至网络配置存储存储器(MEMR)中。
然后,根据对所述神经网络的给定层从第一层到最后一层执行的以下步骤的迭代实施(只要当前层小于所述网络的层数,即nblyer),神经网络然后由本发明的处理器执行(步骤1),并且包括当前层:
-将第一个控制字传输(10)到已实施的一组神经元,为当前层定义已实施的组合函数(线性组合或欧几里德范数);
-将第二个控制字传输(20)到己实施的一组神经元,为当前层定义己实施的激活函数;
-加载(30)所述层的突触权重;
-将输入数据加载(40)到临时存储存储器中;
-根据所述控制字针对每个神经元和每个输入向量计算(50)所述组合函数,从而针对每个使用的神经元给出中间标量;
-根据所述中间标量以及所述第二控制字计算(60)所述激活函数,从而针对每个使用的神经元给出激活结果;
-将所述激活结果记录(70)在所述临时存储存储器中。
需要注意的是,传输控制字和计算组合函数和激活函数的结果的步骤未必是物理上分开的步骤。此外,如上所解释的,可以使用一个以及同样的控制字代替两个控制字,以便指定所使用的组合函数和激活函数。
然后将最终结果(SDAT)返回(步骤2)到调用应用或组件。

Claims (11)

1.一种数据处理处理器,所述处理器包括至少一个处理存储器(MEM)和一个计算单元(CU),所述处理器的特征在于,所述计算单元(CU)包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元(SCN)中的每个可配置神经元(CN)包括用于计算组合函数的模块(MCCF)和用于计算激活函数的模块(MCAF),每个用于计算激活函数的模块(AFU)包括用于接收配置命令的寄存器,使得所述命令从能够由所述用于计算激活函数的模块(AFU)执行的至少两个激活函数中确定要执行的激活函数。
2.根据权利要求1所述的数据处理处理器,其特征在于,能够由所述用于计算激活函数的模块(AFU)执行的所述至少两个激活函数属于包括以下的群组:
sigmoid函数;
双曲正切函数;
高斯函数;
RELU(修正线性单元)函数。
3.根据权利要求1所述的数据处理处理器,其特征在于,所述用于计算激活函数的模块(AFU)被配置成执行所述至少两个激活函数的逼近。
4.根据权利要求3所述的数据处理处理器,其特征在于,所述用于计算激活函数的模块(AFU)包括用于计算与λx的绝对值的sigmoid的计算的逼近相对应的基本运算的子模块:
[数学公式16]
Figure FDA0003120706480000011
5.根据权利要求3所述的数据处理处理器,其特征在于,根据逼近参数λ执行所述至少两个激活函数的所述逼近。
6.根据权利要求3所述的数据处理处理器,其特征在于,所述至少两个激活函数的所述逼近是通过配置所述用于计算激活函数的模块(AFU),使得以定点或浮点模式执行所述计算来执行的。
7.根据权利要求5所述的数据处理处理器,其特征在于,为网络的每一层设置与定点或浮点计算相关的位数。
8.根据权利要求1所述的数据处理处理器,其特征在于,所述数据处理处理器包括网络配置存储存储器,在所述网络配置存储存储器内记录了神经网络执行参数(PS,cmd,λ)。
9.一种数据处理方法,所述方法由包括至少一个处理存储器(MEM)和计算单元(CU)的数据处理处理器实施,所述计算单元(CU)包括称为可配置神经元的一组可配置计算单元,所述一组可配置神经元(SCN)中的每个可配置神经元(CN)包括用于计算组合函数的模块(MCCF)和用于计算激活函数的模块(AFU),所述方法包括:
-初始化步骤(0),所述初始化步骤包括在所述处理存储器(MEM)中加载一组应用数据(EDAT)并且加载与所述网络配置存储存储器(MEMR)中的一组突触权重和层配置(CONFDAT)相对应的一组数据;
-根据迭代实施方案执行(1)神经网络,所述执行包括:对于每一层,应用配置命令,使得所述命令从能够由所述用于计算激活函数的模块(AFU)执行的至少两个激活函数中确定要执行的激活函数,所述执行给出经处理的数据;
将所述经处理的数据(SDAT)传输到调用应用。
10.根据权利要求9所述的方法,其特征在于,对于所述神经网络的当前层,所述神经网络的所述执行(1)包括以下步骤的至少一次迭代:
传输(10,20)定义针对所述当前层实施的所述组合函数和/或所述激活函数的至少一个控制字;
加载(30)所述层的所述突触权重;
将输入数据加载(40)到临时存储存储器中;
根据所述至少一个控制字针对每个神经元和每个输入向量计算(50)所述组合函数,从而针对每个使用的神经元给出中间标量;
根据所述中间标量以及所述至少一个第二控制字计算(60)所述激活函数,从而针对每个使用的神经元给出激活结果;
将所述激活结果记录(70)在所述临时存储存储器中。
11.一种计算机程序产品,其能够从通信网络下载和/或存储在能够由计算机读取和/或由微处理器运行的支持物上,所述计算机程序产品的特征在于,所述计算机程序产品包括程序代码指令,当所述程序代码指令在计算机上执行时,所述程序代码指令用于执行根据权利要求9所述的方法。
CN201980084061.1A 2018-12-18 2019-12-05 数据处理处理器、对应的方法和计算机程序 Pending CN113272826A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1873141A FR3090163B1 (fr) 2018-12-18 2018-12-18 Processeur de traitement de données, procédé et programme d’ordinateur correspondant
FR1873141 2018-12-18
PCT/EP2019/083891 WO2020126529A1 (fr) 2018-12-18 2019-12-05 Processeur de traitement de donnees, procede et programme d'ordinateur correspondant.

Publications (1)

Publication Number Publication Date
CN113272826A true CN113272826A (zh) 2021-08-17

Family

ID=66867241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980084061.1A Pending CN113272826A (zh) 2018-12-18 2019-12-05 数据处理处理器、对应的方法和计算机程序

Country Status (5)

Country Link
US (1) US20220076103A1 (zh)
EP (1) EP3899800A1 (zh)
CN (1) CN113272826A (zh)
FR (1) FR3090163B1 (zh)
WO (1) WO2020126529A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630990B2 (en) * 2019-03-19 2023-04-18 Cisco Technology, Inc. Systems and methods for auto machine learning and neural architecture search

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361326A (en) * 1991-12-31 1994-11-01 International Business Machines Corporation Enhanced interface for a neural network engine
DE102016216944A1 (de) * 2016-09-07 2018-03-08 Robert Bosch Gmbh Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion
US11995532B2 (en) * 2018-12-05 2024-05-28 Arm Limited Systems and devices for configuring neural network circuitry

Also Published As

Publication number Publication date
FR3090163B1 (fr) 2021-04-30
EP3899800A1 (fr) 2021-10-27
US20220076103A1 (en) 2022-03-10
WO2020126529A1 (fr) 2020-06-25
FR3090163A1 (fr) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111758106B (zh) 用于大规模并行神经推理计算元件的方法和系统
US11216721B2 (en) Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function
US11244225B2 (en) Neural network processor configurable using macro instructions
JP2020009444A (ja) ニューラルネットワークにおいてパラメータを処理する方法及び装置
CN112673383A (zh) 神经网络核中动态精度的数据表示
US20190244097A1 (en) Information processing apparatus and information processing method
US20180053086A1 (en) Artificial neuron and controlling method thereof
CN113826122A (zh) 人工神经网络的训练
CN110163240B (zh) 对象识别方法及设备
KR20190130443A (ko) 뉴럴 네트워크의 양자화 방법 및 장치
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
CN113159276A (zh) 模型优化部署方法、系统、设备及存储介质
CN113467487A (zh) 路径规划模型的训练、路径规划方法、装置及电子设备
WO2019202425A1 (en) Time, space, and energy efficient neural inference via parallelism and on-chip memory
KR920006793B1 (ko) 학습기계
CN113272826A (zh) 数据处理处理器、对应的方法和计算机程序
CN113407747A (zh) 硬件加速器执行的方法、硬件加速器和神经网络装置
CN113869517A (zh) 一种基于深度学习模型的推理方法
CN113272831A (zh) 神经网络的缩简装置
CN115952847A (zh) 神经网络模型的处理方法及处理装置
Kang et al. Weight partitioning for dynamic fixed-point neuromorphic computing systems
WO2017198168A2 (en) Reduction of parameters in fully connected layers of neural networks by low rank factorizations
CN111930670B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
KR20230059435A (ko) 뉴럴 네트워크의 압축 장치 및 방법
KR20190118332A (ko) 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210817