神经网络处理方法、装置、设备及计算机可读存储介质与流程

文档序号:16756215发布日期:2019-01-29 17:23阅读:147来源:国知局
神经网络处理方法、装置、设备及计算机可读存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种神经网络处理方法、装置、设备及计算机可读存储介质。



背景技术:

人工神经网络(artificialneuralnetworks,anns),简称为神经网络(nns),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

目前的神经网络训练主要利用启发式算法(heuristicalgorithm)进行训练。

但是,利用heuristicalgorithm对神经网络进行训练,速度较慢。



技术实现要素:

本发明实施例提供一种神经网络处理方法、装置、设备及计算机可读存储介质,能够提高神经网络的训练速度。

一方面,本发明实施例提供了一种神经网络处理方法,方法包括:

构建针对神经网络的带有约束条件的训练函数;

基于训练函数,进行约束优化求解,得到神经网络的连接权重。

另一方面,本发明实施例提供了一种神经网络处理装置,装置包括:

构建模块,用于构建针对神经网络的带有约束条件的训练函数;

求解模块,用于基于训练函数,进行约束优化求解,得到神经网络的连接权重。

再一方面,本发明实施例提供了一种神经网络处理设备,设备包括:

存储器用于存储可执行程序代码;

处理器用于读取存储器中存储的可执行程序代码以执行本发明实施例提供的神经网络处理方法。

再一方面,本发明实施例提供一种计算机可读存储介质,计算机存储介质上存储有计算机程序指令;计算机程序指令被处理器执行时实现本发明实施例提供的神经网络处理方法。

本发明实施例的神经网络处理方法、装置、设备及计算机可读存储介质,从优化问题的角度对神经网络的连接权重的求解问题进行建模,可以对神经网络的连接权重的求解问题进行有效求解,能够提高神经网络的训练速度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例提供的神经网络处理方法的流程示意图;

图2示出了本发明实施例提供的神经网络处理装置的结构示意图;

图3示出了能够实现根据本发明实施例的神经网络处理方法和装置的计算设备的示例性硬件架构的结构图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

由于现有的神经网络主要利用heuristicalgorithm进行训练,但是利用heuristicalgorithm对神经网络进行训练,速度较慢。基于此,本发明实施例提供基于约束优化问题求解思想的神经网络处理方法、装置、设备及计算机可读存储介质,来对神经网络进行训练,以提高神经网络的训练速度。

下面首先对本发明实施例提供的神经网络处理方法进行详细说明。

如图1所示,图1示出了本发明实施例提供的神经网络处理方法的流程示意图。其可以包括:

s101:构建针对神经网络的带有约束条件的训练函数。

s102:基于训练函数,进行约束优化求解,得到神经网络的连接权重。

其中,连接权重是用来衡量神经网络中的上一层神经元和下一层神经元之间连接强弱关系的数值。

示例性的,本发明实施例的神经网络表示为:f(w),其中,w={w1,w2,...,wd},wi是神经网络的第i个连接权重。

在本发明的一个实施例中,假设神经网络为三元神经网络,其连接权重初始值分别为-1、0和1。那么针对该三元神经网络构建的带有约束条件的训练函数可以如下表示:

s.t.w∈c={-1,0,+1}d

其中,s.t.w∈c={-1,0,+1}d表示连接权重w的取值被约束在连接权重空间c中,其中,连接权重空间c包含-1、0和+1,也即连接权重w只能取值为-1、0或者+1。

需要说明的是,上述神经网络为离散神经网络,当然本发明实施例不限于针对离散神经网络的处理,即本发明实施例也可以针对非离散神经网络的处理。

可以理解的是,离散神经网络对应的约束条件可以用等式进行表示,非离散神经网络对应的约束条件可以用不等式进行表示。

当基于训练函数,进行约束优化求解,得到神经网络的连接权重时,约束优化求解所采用的求解算法可以为以下算法中的任意一种:

罚函数法、乘子法、投影梯度法、简约梯度法或约束变尺度法。

在本发明的一个实施例中,由于不同的约束最优化问题的求解算法的使用场景不同,即有的求解算法仅适用于求解不等式约束问题,有的求解算法仅适用于求解等式约束问题,有的求解算法即适用于求解不等于约束问题又适用于求解等式约束问题。基于此,本发明实施例在基于训练函数,进行约束优化求解,得到神经网络的连接权重之前,可以根据约束条件确定使用何种求解算法,即确定约束优化求解所采用的求解算法。

在本发明的一个实施例中,基于训练函数,进行约束优化求解,得到神经网络的连接权重,可以包括:基于指示函数和一致性约束,对训练函数进行等价变换;利用交替方向乘子法(alternatingdirectionmethodofmultipliers,admm),对等价变换后的训练函数进行分解;针对分解后得到的每一个子问题,求解神经网络的连接权重。

在本发明的一个实施例中,基于指示函数和一致性约束,对训练函数进行等价变换,可以包括:对训练函数进行解耦合。

在本发明的一个实施例中,针对分解后得到的每一个子问题,求解神经网络的连接权重,可以包括:对分解后得到的子问题进行迭代计算,以获得神经网络的连接权重。

本发明实施例的指示函数表示如下:

指示函数ic(x)是定义在集合x上的函数,表示其中有哪些元素属于子集c。

本发明实施例在此引入新的变量g,设置一致性约束w=g,结合以上的指示函数ic(x),本发明实施例的上述训练函数等价变换为:

minw,gf(w)+ic(g)(2)

s.t.w=g(3)

其对应的增广拉格朗日乘子表示为:

其中,λ为拉格朗日乘数,ρ为正则项系数。

对于公式(2)和公式(3),指示函数作用在g上,原始的连接权重w此时不具有约束。通过指示函数ic(x)和一致性约束w=g,将连接权重和约束条件解耦合,即对训练函数进行解耦合。

基于admm,上述等价变换后的训练函数被分解为如下三个子问题:

wk+1:=argminwlρ(w,gk,λk)(5)

gk+1:=argminglρ(wk+1,g,λk)(6)

λk+1:=λk+ρ(wk+1-gk+1)(7)

其中,公式(5)、公式(6)和公式(7)中的k为迭代轮数。

在一个实施例的计算中,对公式(5)、公式(6)和公式(7)进行迭代求解。在一次迭代循环中,执行如下过程:

先针对公式(5)对连接权重w进行无约束求解,基于第k轮迭代中的g(即gk)和λ(即λk),无约束求解第k+1轮中的w(即wk+1);

随后,针对公式(6)对带约束条件的g进行求解,基于第k轮迭代中的λ(即λk)以及公式(5)求解得到的w(即wk+1),带约束求解第k+1轮中的g(即gk+1);

随后,针对公式(7)对λ进行更新,基于第k轮迭代中的λ(即λk)、公式(5)求解得到的w(即wk+1)以及公式(6)求解得到的g(即gk+1),求解并更新第k+1轮中的λ(即λk+1)。

最终求解得到的g即为连接权重。

需要说明的是,上述公式求解很容易,因此能够提高神经网络训练速度。

本发明实施例的神经网络处理方法,从优化问题的角度对神经网络的连接权重的求解问题进行建模,可以对神经网络的连接权重的求解问题进行有效求解,能够提高神经网络的训练速度。

目前,处理器在进行神经网络计算时,需要进行大量的乘法运算。针对一次乘法运算,处理器需要调用乘法器,将乘法运算的两个操作数耦合进乘法器中,乘法器输出结果。尤其当调用的乘法器为浮点乘法器时,浮点乘法器需要对两个操作数的阶码进行求和、对两个操作数的尾数进行乘法运算,然后对结果进行规格化和舍入处理才能得到最终结果。神经网络计算速度较慢。

为了提高神经网络的计算速度,本发明实施例还提供一种神经网络计算方法。

在本发明的一个实施例中,本发明实施例提供的神经网络处理方法求解得到的连接权重为2的幂次方。对于该神经网络的计算,本发明实施例提供的神经网络计算方法过程如下:处理器可以先获取到该神经网络计算规则,其中,该神经网络计算规则规定了操作数之间是乘法运算还是加法运算。对于神经网络计算规则中的乘法运算,将乘法运算对应的源操作数输入移位寄存器,依据乘法运算对应的连接权重进行移位操作,移位寄存器输出目标结果操作数,作为乘法运算的结果。

在本发明的一个实施例中,乘法运算对应的连接权重为2的n次方,n为大于零的整数。可以将乘法运算对应的源操作数输入移位寄存器,向左移位n次;还可以将乘法运算对应的源操作数输入左移位寄存器,移位n次。

在本发明的另一个实施例中,乘法运算对应的连接权重为2的负n次方,n为大于零的整数。可以将乘法运算对应的源操作数输入移位寄存器,向右移位n次;还可以将乘法运算对应的源操作数输入右移位寄存器,移位n次。

为了使源操作数能够准确移位,本发明实施例的源操作数的位数不大于移位寄存器可寄存的数值的位数。比如:移位寄存器可寄存的数值的位数为8,即该移位寄存器为8位移位寄存器,源操作数的位数不大于8。

本发明实施例上述的处理器可以是基于x86架构的处理器,也可以是基于高级精简指令集处理器(arm)架构的处理器,还可以是基于无内部互锁流水级的微处理器(mips)架构的处理器,当然还可以是基于专用架构的处理器,比如:基于张量处理单元(tensorprocessingunit,tpu)架构的处理器。

本发明实施例上述的处理器可以是通用型处理器,也可以是定制型处理器。其中,定制型处理器是指专用于神经网络计算且带有移位寄存器而不带有乘法运算器的处理器,即处理器是不包括乘法运算单元的处理器。

本发明实施例提供一种神经网络计算方法,将神经网络中的乘法运算替换为移位运算,通过移位运算来进行神经网络计算,以提高神经网络计算速度。

假设神经网络的连接权重分别为-4、-2、-1、0、1、2、4。则上述连接权重均可用4位有符号定点整数表示。相较于32位单精度浮点数形式的连接权重占用的存储空间,实现了8倍存储空间的压缩。相较于64位双精度浮点数形式的连接权重占用的存储空间,实现了16倍存储空间的压缩。由于本发明实施例提供的神经网络的连接权重占用存储空间较小,使得整个神经网络的模型也较小。该神经网络可以被下载到移动终端设备中,移动终端设备对神经网络进行计算。移动终端设备无需将数据上传到云端服务器中,在本地即可对数据进行实时处理,减少了数据处理延迟以及云端服务器的计算压力。

与上述的方法实施例相对应,本发明实施例还提供一种神经网络处理装置。如图2所示,图2示出了本发明实施例提供的神经网络处理装置的结构示意图。其可以包括:

构建模块201,用于构建针对神经网络的带有约束条件的训练函数;

求解模块202,用于基于训练函数,进行约束优化求解,得到神经网络的连接权重。

本发明实施例提供的神经网络处理装置可以用于离散神经网络的处理,也可以用于非离散神经网络的处理。因此,本发明实施例的求解模块202在进行约束优化求解时,所采用的求解算法可以为以下算法中的任意一种:

罚函数法、乘子法、投影梯度法、简约梯度法和约束变尺度法。

由于不同的约束最优化问题的求解算法的使用场景不同,即有的求解算法仅适用于求解不等式约束问题,有的求解算法仅适用于求解等式约束问题,有的求解算法即适用于求解不等于约束问题又适用于求解等式约束问题。基于此,本发明实施例提供的神经网络处理装置还可以包括:确定模块(图中未示出),用于依据训练函数的约束条件,确定约束优化求解所采用的求解算法。

在本发明的一个实施例中,求解模块202,包括:

变换单元,用于基于指示函数和一致性约束,对训练函数进行等价变换;

分解单元,用于利用交替方向乘子法admm,对等价变换后的训练函数进行分解;

求解单元,用于针对分解后得到的每一个子问题,求解神经网络的连接权重。

在本发明的一个实施例中,变换单元对训练函数进行等价变换,可以包括:对训练函数进行解耦合。

在本发明的一个实施例中,求解单元求解神经网络的连接权重,可以包括:对分解后得到的子问题进行迭代计算,以获得神经网络的连接权重。

本发明实施例的神经网络处理装置的各部分细节与以上图1描述的本发明实施例的神经网络处理方法类似,本发明实施例在此不再赘述。

图3示出了能够实现根据本发明实施例的神经网络处理方法和装置的计算设备的示例性硬件架构的结构图。如图3所示,计算设备300包括输入设备301、输入接口302、中央处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、中央处理器303、存储器304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与计算设备300的其他组件连接。

具体地,输入设备301接收来自外部的输入信息,并通过输入接口302将输入信息传送到中央处理器303;中央处理器303基于存储器304中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器304中,然后通过输出接口305将输出信息传送到输出设备306;输出设备306将输出信息输出到计算设备300的外部供用户使用。

也就是说,图3所示的计算设备也可以被实现为神经网络处理设备,该神经网络处理设备可以包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1和图2描述的神经网络处理方法和装置。这里,处理器可以与神经网络通信,从而基于来自神经网络的相关信息执行计算机可执行指令,从而实现结合图1和图2描述的神经网络处理方法和装置。

本发明实施例还提供一种计算机可读存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的神经网络处理方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1