CN109426859B - 神经网络训练系统、方法和计算机可读存储介质 - Google Patents
神经网络训练系统、方法和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109426859B CN109426859B CN201710725775.9A CN201710725775A CN109426859B CN 109426859 B CN109426859 B CN 109426859B CN 201710725775 A CN201710725775 A CN 201710725775A CN 109426859 B CN109426859 B CN 109426859B
- Authority
- CN
- China
- Prior art keywords
- processing device
- vector
- neural network
- weight vector
- correction value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
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)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
- Manipulator (AREA)
Abstract
本申请公开了一种神经网络训练系统、方法和计算机可读存储介质,属于机器学习算法领域。所述神经网络训练系统包括:第一处理设备和第二处理设备,其中,第一处理设备用于获取目标神经网络的权向量和训练集中的N个数据向量,并基于N个数据向量中的每一个数据向量和权向量进行第一运算得到N组输出值,第一运算包括向量点积运算;第二处理设备,用于获取根据N组输出值计算得到的至少一个修正值,并根据至少一个修正值对第二处理设备中存储的神经网络的权向量中的向量元素进行修正,得到修正权向量,并将修正权向量发送至第一处理设备。本申请提供的神经网络训练系统能够提高神经网络训练的效率。
Description
技术领域
本申请涉及机器学习算法领域,特别涉及一种神经网络训练系统、方法和计算机可读存储介质。
背景技术
神经网络(也可称为人工神经网络)是一种常见的机器学习算法,其在语音识别、图像识别、自然语言处理等多个领域已经取得了较大的成功,而且还在迅速发展的过程中。
在实际应用中,神经网络一般可以包括多个权向量,在利用神经网络进行识别运算时,可以向神经网络中输入待识别对象的数据向量,神经网络可以基于该数据向量和自身的多个权向量计算得到该数据向量对应的输出向量,而后神经网络可以基于该输出向量对待识别对象进行识别。通常情况下,初始状态下的神经网络中的权向量是未知的,为了获取权向量,使神经网络能够正常进行识别运算,需要对初始状态下的神经网络进行训练。在对神经网络进行训练的过程中,通常可以为神经网络随机设定一组权向量,并基于神经网络在该组权向量下对不同数据向量的识别运算结果对该组权向量进行多次修正,直至神经网络能够基于修正后的权向量对任一数据向量都能得到一个接近理想的输出向量为止。
相关技术中,可以使用神经网络训练装置对神经网络进行训练,其中,该神经网络训练装置可以包括一个处理器,该处理器需要完成神经网络训练过程中所涉及到的所有运算。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
神经网络的训练过程中通常会涉及多种不同类型的运算,如向量点积运算、非线性变换运算、权向量修正运算等,因此,相关技术中神经网络训练装置中的处理器一般为能够进行多种类型运算的处理器,为了满足该处理器的运算通用性,该处理器的电路结构通常较为复杂,这使得该处理器的运算效率较低,从而导致神经网络的训练效率也较低。
发明内容
为了解决现有技术神经网络的训练效率较低的问题,本申请提供了一种神经网络训练系统、方法和计算机可读存储介质。所述技术方案如下:
第一方面,提供了一种神经网络训练系统,所述神经网络训练系统包括第一处理设备和第二处理设备,所述第一处理设备和所述第二处理设备不同;
所述第一处理设备,用于:
获取目标神经网络的权向量;
获取训练集中的N个数据向量,其中,所述训练集包括多个数据向量,N为大于或等于1的正整数;
基于所述N个数据向量中的每一个数据向量和所述权向量进行第一运算得到N组输出值,所述第一运算包括向量点积运算;
所述第二处理设备,用于:
获取至少一个修正值,所述至少一个修正值中的每个修正值用于修正所述权向量中的一个向量元素,所述每个修正值根据所述N组输出值计算得到;
根据所述至少一个修正值对所述权向量中的向量元素进行修正,得到修正权向量;
将所述修正权向量发送至所述第一处理设备,所述修正权向量用于指示所述第一处理设备基于所述训练集中的N个其他数据向量和所述修正权向量进行所述第一运算,所述N个其他数据向量为所述训练集中除所述N个数据向量之外的数据向量。
本申请在神经网络训练系统中设置第一处理设备和第二处理设备,其中,第一处理设备可以执行神经网络训练过程中的向量点积运算,而第二处理设备可以执行神经网络训练过程中的权向量修正运算等其他类型的运算。因此,第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
此外,由于不同的神经网络训练算法的权向量修正策略不同,也即是权向量修正运算不同,因此,执行权向量修正运算的第二处理设备可以根据不同的神经网络训练算法进行相应地配置,从而能够满足不同的神经网络训练算法的需求,使得神经网络训练系统对神经网络的训练更加灵活。
进一步地,本申请提供的神经网络训练系统可以不对训练集中每一个数据向量都执行一次计算至少一个修正值并基于至少一个修正值修正权向量的过程,而是对一批数据向量执行一次权向量修正,也即是,神经网络训练系统可以计算一批数据向量分别对应的识别运算结果,并根据该识别运算结果计算累加的修正值,并根据该累加的修正值对权向量进行一次修正,这样,第二处理设备向第一处理设备发送修正权向量的次数就减少了,从而降低了第二处理设备和第一处理设备之间的通信带宽。
在实际应用中,可以由第一处理设备计算上述修正值,并将上述修正值发送至第二处理设备,也可以由第二处理设备计算上述修正值。
当由第一处理设备计算修正值时,所述第一处理设备,还用于根据所述N组输出值计算所述至少一个修正值,并将计算得到的所述至少一个修正值发送至所述第二处理设备。所述第二处理设备,具体用于接收所述第一处理设备发送的所述至少一个修正值。
当由第二处理设备计算修正值时,所述第一处理设备,还用于将所述N组输出值发送至所述第二处理设备。所述第二处理设备,具体用于根据所述N组输出值计算所述至少一个修正值。
此外,在实际应用中,为了降低第一处理设备和第二处理设备之间的通信带宽,所述第二处理设备,还用于对所述修正权向量进行第一预设处理得到处理后的修正权向量,所述处理后的修正权向量的数据量小于所述修正权向量的数据量。所述第二处理设备,具体用于将所述处理后的修正权向量发送至所述第一处理设备。所述第一处理设备,还用于接收所述第二处理设备发送的所述处理后的修正权向量,并对所述处理后的修正权向量进行第二预设处理得到所述修正权向量,所述第二预设处理为所述第一预设处理的逆处理。
可选的,所述第一预设处理包括压缩处理和量化处理中的至少一个。
可选的,所述第一处理设备,具体用于:
基于第一数据向量和所述权向量进行神经网络正向运算得到所述目标神经网络每一层的正向输出向量,所述神经网络正向运算包括向量点积运算和非线性变换运算,所述第一数据向量为所述N个数据向量中的任意一个数据向量;
获取误差向量,所述误差向量为所述目标神经网络的输出层的正向输出向量与所述训练集中所述第一数据向量对应的理想输出向量的差向量;
基于所述误差向量和所述权向量进行神经网络反向运算得到所述目标神经网络每一层的反向输出向量,所述神经网络反向运算包括向量点积运算;
将所述目标神经网络每一层的正向输出向量和所述目标神经网络每一层的反向输出向量获取为对应于所述第一数据向量的一组输出值。
可选的,所述第一处理设备,还用于根据所述N组输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述N组输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述N组输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数;
所述第一处理设备,还用于将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备,具体用于接收所述第一处理设备发送的所述至少一个修正值。
可选的,第一处理设备,还用于将所述N组输出值发送至所述第二处理设备;
所述第二处理设备,具体用于根据所述N组输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述N组输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述N组输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数。
可选的,所述第一处理设备和所述第二处理设备集成于一个设备中。
可选的,所述第一处理设备包括第二处理器,所述第二处理设备包括第三处理器。
可选的,所述第一处理设备为预设的运算网络中多个运算节点组成的处理设备;
所述第二处理设备为部署于云端或预设的通信网络边缘的处理设备。
可选的,所述第一运算还包括非线性变换运算。
第二方面,提供了一种神经网络训练方法,所述方法包括:
第一处理设备获取目标神经网络的权向量;
所述第一处理设备获取训练集中的N个数据向量,其中,所述训练集包括多个数据向量,N为大于或等于1的正整数;
所述第一处理设备基于所述N个数据向量中的每一个数据向量和所述权向量进行第一运算得到N组输出值,所述第一运算包括向量点积运算;
第二处理设备获取至少一个修正值,所述至少一个修正值中的每个修正值用于修正所述权向量中的一个向量元素,所述每个修正值根据所述N组输出值计算得到,所述第二处理设备与所述第一处理设备不同;
所述第二处理设备根据所述至少一个修正值对所述权向量中的向量元素进行修正,得到修正权向量;
所述第二处理设备将所述修正权向量发送至所述第一处理设备,所述修正权向量用于指示所述第一处理设备基于所述训练集中的N个其他数据向量和所述修正权向量进行所述第一运算,所述N个其他数据向量为所述训练集中除所述N个数据向量之外的数据向量。
可选的,所述方法还包括:
所述第一处理设备根据所述N组输出值计算所述至少一个修正值,并将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备接收所述第一处理设备发送的所述至少一个修正值。
可选的,所述方法还包括:
所述第一处理设备将所述N组输出值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备根据所述N组输出值计算所述至少一个修正值。
可选的,所述方法还包括:
所述第二处理设备对所述修正权向量进行第一预设处理得到处理后的修正权向量,所述处理后的修正权向量的数据量小于所述修正权向量的数据量;
所述第二处理设备将所述修正权向量发送至所述第一处理设备,包括:
所述第二处理设备将所述处理后的修正权向量发送至所述第一处理设备;
所述方法还包括:
所述第一处理设备接收所述第二处理设备发送的所述处理后的修正权向量,并对所述处理后的修正权向量进行第二预设处理得到所述修正权向量,所述第二预设处理是所述第一预设处理的逆处理。
可选的,所述第一预设处理包括压缩处理和量化处理中的至少一个。
可选的,所述第一处理设备基于所述N个数据向量中的每一个数据向量和所述权向量进行第一运算得到N组输出值,包括:
所述第一处理设备基于第一数据向量和所述权向量进行神经网络正向运算得到所述目标神经网络每一层的正向输出向量,所述神经网络正向运算包括向量点积运算和非线性变换运算,所述第一数据向量为所述N个数据向量中的任意一个数据向量;
所述第一处理设备获取误差向量,所述误差向量为所述目标神经网络的输出层的正向输出向量与所述训练集中所述第一数据向量对应的理想输出向量的差向量;
所述第一处理设备基于所述误差向量和所述权向量进行神经网络反向运算得到所述目标神经网络每一层的反向输出向量,所述神经网络反向运算包括向量点积运算;
所述第一处理设备将所述目标神经网络每一层的正向输出向量和所述目标神经网络每一层的反向输出向量获取为对应于所述第一数据向量的一组输出值。
可选的,所述方法还包括:
所述第一处理设备根据所述N组输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述N组输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述N组输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数;
所述第一处理设备将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备接收所述第一处理设备发送的所述至少一个修正值。
可选的,所述方法还包括:
所述第一处理设备将所述N组输出值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备根据所述N组输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述N组输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述N组输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数。
可选的,所述第一处理设备和所述第二处理设备集成于一个设备中。
可选的,所述第一处理设备包括第二处理器,所述第二处理设备包括第三处理器。
可选的,所述第一处理设备为预设的运算网络中多个运算节点组成的处理设备;
所述第二处理设备为部署于云端或预设的通信网络边缘的处理设备。
可选的,所述第一运算还包括非线性变换运算。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,存储的所述计算机程序被上述第一方面所述的第一处理设备执行时能够实现上述第一方面所述的第一处理设备在神经网络训练过程中执行的运算;
存储的所述计算机程序被上述第一方面所述的第二处理设备执行时能够实现上述第一方面所述的第二处理设备在神经网络训练过程中执行的运算。
第三方面,提供了一种包含指令的计算机程序产品,当其在第一处理设备上运行时,使得该第一处理设备能够实现上述第一方面所述的第一处理设备在神经网络训练过程中执行的运算;或者,
当其在第二处理设备上运行时,使得该第二处理设备能够实现上述第一方面所述的第二处理设备在神经网络训练过程中执行的运算。
本申请提供的技术方案带来的有益效果是:
通过在神经网络训练系统中设置第一处理设备和第二处理设备,其中,第一处理设备可以执行神经网络训练过程中的向量点积运算,而第二处理设备可以执行神经网络训练过程中的权向量修正运算等其他类型的运算。因此,第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
附图说明
图1是本发明实施例提供的一种神经网络的示意图。
图2是本发明实施例提供的另一种神经网络的示意图。
图3是本发明实施例提供的神经网络训练系统的框图。
图4是本发明实施例提供的一种神经网络在进行神经网络反向运算时有向弧指向方向的示意图。
图5是本发明实施例提供的一种神经网络训练系统根据N组输出值计算至少一个修正值的方法的流程图。
图6是本发明实施例提供的一种神经网络训练方法的流程图。
图7是本发明实施例提供的一种神经网络训练方法的流程图。
图8是本发明实施例提供的一种神经网络训练方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了使读者能够理解本申请的技术方案,下面,本申请将对神经网络及神经网络的训练过程进行简要说明。
神经网络本质上可以看成是一种有向图,其可以包括多个层,每一个层包括至少一个节点,其中,神经网络的第一层可以被称为输入层,最后一层可以被称为输出层,输入层和输出层之间的层可以被称为隐含层,在神经网络中,除输出层以外的每一层中的节点都可以通过有向弧指向下一层中的所有的节点,其中,每一个有向弧均对应于一个权值。
图1所示为一个示例性的神经网络的示意图,如图1所示,该神经网络可以包括4个层,其中,第1层包括2个节点,为输入层,第2、3层分别包括3个节点和2个节点,为隐含层,第4层包括3个节点,为输出层。以第1层中的第1个节点(指的是第1层中按照由上至下顺序的第1个节点,下文类似的说明与此处同理)为例,该节点通过有向弧a1、a2和a3分别指向第2层中的所有的3个节点,其中,有向弧a1、a2和a3对应的权值可以分别为1、-1、1。
在实际应用中,神经网络中的每一层都可以对应于一个输出向量,每一层对应的输出向量都可以由该层中所有节点的输出值组成,神经网络中除输入层以外的每一层对应的输出向量均可以根据该层的上一层的输出向量和指向该层中节点的有向弧对应的权值组成的权向量基于下述公式(1)计算得到,而神经网络输入层的输出向量等于外界向输入层输入的数据向量:
x(p+1)j=f(u·v+b(p+1)j)=f(xp1w1j+xp2w2j+xp3w3j+……+xpnwnj+b(p+1)j) (1)。
其中,x(p+1)j指的是神经网络第p+1层对应的输出向量的第j个向量元素的值,u为神经网络第p层的输出向量,且,u=[xp1,xp2,xp3,……,xpn],xpn指的是神经网络第p层中第n个节点的输出值,该神经网络第p层中包含n个节点,“·”为向量点积运算符,v为指向神经网络第p+1层中第j个节点的所有有向弧对应的权值组成的权向量,且,v=[w1j,w2j,w3j,……,wnj],wnj指的是神经网络第p层中第n个节点指向神经网络第p+1层中第j个节点的有向弧对应的权值,f为非线性函数,b(p+1)j为神经网络第p+1层中第j个节点的偏置值。
例如,如图1所示的神经网络中,第2层中3个节点的输出值分别为3、2、3,其组成的输出向量为[3,2,3],指向第3层中第1个节点的有向弧a4、a5和a6对应的权值分别为1、-1、1,其组成的权向量为[1,-1,1],非线性函数f为y=x2,第3层中第1个节点的偏置值为2,则第3层对应输出向量中第1个向量元素的值为:
x31=[3×1+2×(-1)+3×1+2]2=36。
在实际应用中,神经网络的主要作用是对待识别对象进行识别,也即是神经网络的主要作用是进行识别运算。在神经网络的识别运算中,可以由神经网络的输入层输入待识别对象的数据向量,而后神经网络可以根据上述公式(1)逐层运算以最终得到神经网络的输出层的输出向量作为神经网络识别运算的结果,实际应用中,神经网络可以基于该神经网络的输出层的输出向量来对该待识别对象进行识别。
下面本申请将以图2所示的一个仅包含输入层和输出层的神经网络识别香蕉和苹果为例对神经网络的识别过程进行说明。如表1所示为苹果和香蕉的特征值,其中,颜色的特征值为1代表红色,特征值为-1代表黄色,形状的特征值为1代表圆形,特征值为-1代表弯形。
表1
品种 | 颜色 | 形状 |
苹果 | 1 | 1 |
香蕉 | -1 | -1 |
则由表1可知,苹果的数据向量可以为[1,1],香蕉的数据向量可以为[-1,-1],图2所示的神经网络中输入层包括两个节点、输出层包括1个节点,其中,输入层的第1个节点指向输出层节点的有向弧a7对应的权值为1,输入层的第2个节点指向输出层节点的有向弧a8对应的权值也为1,输出层节点的偏置值为0,非线性函数f为阶梯函数,该阶梯函数为:
则当待识别对象为苹果时,图2中神经网络输出层的节点的输出值为:x21=f(1×1+1×1+0)=f(2)=1,也即是输出层的输出向量为[1],当待识别对象为香蕉时,图2中神经网络输出层的节点的输出值为:x21=f(-1×1-1×1+0)=f(-2)=0,也即是输出层的输出向量为[0]。换句话说,当神经网络输出层的输出向量为[1]时,可以确定待识别对象为苹果,当神经网络输出层的输出向量为[0]时,可以确定待识别对象为香蕉。由此,图2所示的神经网络即可实现对苹果和香蕉的识别。
当然,在实际应用中,待识别对象可以包括两个以上的特征值,且特征值可以不为一个特定的值,而是某一预设范围内的任一数值,神经网络也可以比图2所示的神经网络复杂得多,但其识别原理与上述说明是同理的。
由上述说明可知,为了使神经网络能够准确地对待识别对象进行识别,需要确定神经网络中每一个有向弧对应的权值,也即是需要确定神经网络中的各个权向量,而这就需要对神经网络进行训练。
在实际应用中,通常可以使用训练集对神经网络进行训练,其中,训练集中可以包括多个数据向量。在对神经网络进行训练的过程中,可以为初始状态下的神经网络随机设定一组权向量,并基于该随机设定的权向量对训练集中的一个数据向量进行识别运算,而后基于识别运算的结果对该组随机设定的权向量进行修正,得到修正权向量,神经网络可以基于该修正权向量对训练集中的另一个数据向量进行识别运算,并根据识别运算的结果对该修正权向量进行进一步地修正,在神经网络的训练过程中可以重复多次上述过程,直至神经网络能够基于修正后的权向量对任一数据向量都能得到一个接近理想的输出向量为止。
在实际应用中,神经网络的训练算法有许多种,例如,反向传播(英文:BackPropagation;简称:BP)算法、赫布学习(英文:Hebbian Learning)算法、神经突触可塑性(英文:Spike Timing Dependent Plasticity;简称:STDP)算法和受限玻尔兹曼机(英文:Restricted Boltzmann Machines;简称:RBM)算法等。然而,无论是哪一种训练算法都需要根据神经网络对数据向量的识别运算结果对权向量进行修正,不同训练算法的区别仅在于对权向量修正的策略不同,同样地,无论是哪一种训练算法均包含多种类型的运算,如向量点积运算、非线性变换运算、权向量修正运算等。现有技术中,神经网络训练装置为了对神经网络进行训练,通常需要配置一个能够进行上述多种类型运算的处理器,为了满足该处理器的运算通用性,处理器的电路结构通常较为复杂,这使得处理器器的运算效率较低,从而导致神经网络的训练效率也较低。
为了解决现有的神经网络的训练效率较低的问题,本申请提供了一种神经网络训练系统300,如图3所示,该神经网络训练系统300可以包括第一处理设备301和第二处理设备302,该第一处理设备301和第二处理设备302不同。
其中,第一处理设备301,用于:获取目标神经网络的权向量;获取训练集中的N个数据向量,其中,该训练集包括多个数据向量,N为大于或等于1的正整数;基于该N个数据向量中的每一个数据向量和该权向量进行第一运算得到N组输出值,该第一运算包括向量点积运算。
该第二处理设备302,用于:获取至少一个修正值,该至少一个修正值中的每个修正值用于修正该权向量中的一个向量元素,每个修正值根据该N组输出值计算得到;根据该至少一个修正值对该权向量中的向量元素进行修正,得到修正权向量;将该修正权向量发送至第一处理设备301,该修正权向量用于指示第一处理设备301基于该训练集中的N个其他数据向量和该修正权向量进行该第一运算,该N个其他数据向量为训练集中除该N个数据向量之外的数据向量。
根据上文的说明,尽管神经网络的训练算法有许多种,然而,无论是哪一种训练算法都需要根据神经网络对数据向量的识别运算结果对权向量进行修正,其中,根据上文中的公式(1)可知,神经网络的识别运算可以包括向量点积运算和非线性变换运算,换句话说,无论是哪一种训练算法都需要进行向量点积运算和非线性变换运算这两种运算类型,实际上,神经网络的训练过程中的大部分运算都是向量点积运算。
本申请提供的神经网络训练系统可以单独设置一个第一处理设备301执行向量点积运算。可选地,该第一处理设备301可以获取目标神经网络的权向量和训练集中的N个数据向量,并基于该权向量和上述N个数据向量中的每一个数据向量进行第一运算,以得到与该N个数据向量一一对应的N组输出值,其中,上述第一运算包括向量点积运算,每一组输出值中都包含神经网络对与其对应的数据向量的识别运算结果。需要指出的是,上述第一处理设备301获取的目标神经网络的权向量可以是为初始状态下为目标神经网络随机设定的权向量,也可以是第二处理设备302向第一处理设备301发送的修正后的权向量。
同时,本申请提供的神经网络训练系统还可以设置第二处理设备302执行神经网络训练过程中除向量点积运算以外的其他类型的运算,该其他类型的运算通常可以包括权向量修正运算等。可选的,第二处理设备302可以获取至少一个修正值,其中,该至少一个修正值中的每个修正值用于修正权向量中的一个向量元素,第二处理设备302可以根据该至少一个修正值对权向量中的向量元素进行修正,得到修正权向量。第二处理设备302可以存储该修正权向量,并将该修正权向量发送至第一处理设备301中,以由第一处理设备301根据该修正权向量和训练集中的N个其他数据向量进行第一运算得到另外的N组输出值,也即是第一处理设备301可以根据该修正权向量对训练集中的数据向量进行识别运算,并由第二处理设备302根据该识别运算结果进一步修正该修正权向量。其中,所谓根据至少一个修正值对权向量的向量元素进行修正指的是:将权向量中的向量元素与对应的修正值相加得到修正向量元素,例如,如图1所示的神经网络中,指向第3层中第1个节点的有向弧a4、a5和a6当前对应的权值分别为1、-1、1,其组成的权向量为[1,-1,1],第二处理设备302获取的修正值分别为0.2、0.3和-0.1,则根据该修正值对权向量[1,-1,1]的向量元素分别进行修正后,可以得到修正向量元素1.2、-0.7和0.9,该修正向量元素可以组成修正权向量[1.2,-0.7,0.9]。
这样,由于第一处理设备301可以仅执行向量点积运算,因此,第一处理设备301可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备301电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备301运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。同时,由于不同的神经网络训练算法的权向量修正策略不同,因此,执行权向量修正运算的第二处理设备302可以根据不同的神经网络训练算法进行相应地配置,从而能够满足不同的神经网络训练算法的需求,使得神经网络训练系统对神经网络的训练更加灵活。
在传统的神经网络训练过程中,对于训练集中的每一个数据向量而言,神经网络训练系统都需要进行一次权向量修正,也即是,神经网络训练系统对于训练集中的每一个数据向量都需要执行一次计算至少一个修正值和利用该至少一个修正值对权向量进行修正的技术过程。如果本申请提供的神经网络训练系统按照上述传统方法对神经网络进行训练,那么,针对训练集中的每一个数据向量,第二处理设备302都需要进行一次权向量修正运算,并需要将修正权向量发送至第一处理设备301,然而,实际应用中,目标神经网络的权向量的数据量可能十分庞大,因此,第二处理设备302频繁地向第一处理设备301发送修正权向量所需的通信带宽较大。
为了降低第二处理设备302和第一处理设备301之间的通信带宽,本申请提供的神经网络训练系统可以针对训练集中的一批数据向量(也即是N大于或等于2)执行一次权向量修正,也即是,神经网络训练系统可以计算训练集中的一批数据向量分别对应的识别运算结果,得到一批输出值(N组输出值),并根据该一批输出值计算累加的修正值,并根据累加的修正值对权向量进行一次修正,这样,第二处理设备302向第一处理设备301发送修正权向量的次数就减少了,从而降低了第二处理设备302和第一处理设备301之间的通信带宽。
需要指出的是,在实际应用中,第一处理设备301和第二处理设备302可以集成于同一设备中,在本申请的一个实施例中,第一处理设备301和第二处理设备302可以集成于一个设备中,当然,第一处理设备301和第二处理设备302也可为不同的设备,在本申请的一个实施例中,第一处理设备301可以包括第二处理器,第二处理设备302可以包括第三处理器;或者,第一处理设备301可以为预设的运算网络中多个运算节点组成的处理设备,在实际应用中,该多个运算节点可以为手机或电脑等,第二处理设备302可以为部署于云端或预设的通信网络边缘的处理设备,例如,第二处理设备302可以为部署于预设的通信网络边缘的基站等。
综上所述,本申请提供的神经网络训练系统,通过在神经网络训练系统中设置第一处理设备和第二处理设备,其中,第一处理设备可以执行神经网络训练过程中的向量点积运算,而第二处理设备可以执行神经网络训练过程中的权向量修正运算等其他类型的运算。因此,第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
在实际应用中,由于神经网络的识别运算通常包含向量点积运算和非线性变换运算这两种类型的运算,也即是,为了得到上述N组输出值需要进行向量点积运算和非线性变换运算两种类型的运算。本申请中第一处理设备301可以仅执行其中的向量点积运算,而由另外的处理设备执行非线性变换运算以最终得到上述N组输出值,或者,本申请中的第一处理设备301可以既执行向量点积运算又执行非线性变换运算,也即是,上述第一运算还可以包括向量点积运算,在这种情况下,第一处理设备301可以包含执行向量点积运算和非线性变换运算所需的电路,其电路结构仍然较为简单,运算效率也较高,同时,不需要设置另一个进行非线性变化运算的处理设备也可以减小硬件上的开销。
可选的,在本申请中,为了进一步降低第二处理设备302和第一处理设备301之间的通信带宽,第二处理设备302可以对上述修正权向量进行第一预设处理得到处理后的修正权向量,并将处理后的修正权向量发送至第一处理设备301中,以由第一处理设备301根据该处理后的修正权向量对训练集中的数据向量进行识别运算。在实际应用中,处理后的修正权向量的数据量通常小于修正权向量的数据量,例如,在本申请的一个实施例中,修正权向量中一个向量元素占据的存储空间可以为16位以上(通常为32位),而处理后的修正权向量中一个向量元素占据的存储空间可以为4位到8位,因此,将修正权向量经过第一预设处理后再发送给第一处理设备301可以降低第二处理设备302和第一处理设备301之间的通信带宽。其中,上述第一预设处理可以为压缩处理或者量化处理中的至少一个,量化处理指的是将修正权向量中的每个向量元素映射为一个数据量较小的值,其中,该映射过程可以通过函数实现,也可以通过查找表的形式实现,本申请对此不做具体限定。
第一处理设备301在接收到上述经过处理后的修正权向量后可以对该处理后的修正权向量进行第二预设处理得到修正权向量,其中,该第二预设处理是第一预设处理的逆处理,也即是第二预设处理为与第一预设处理相反的处理,而后第一处理设备301基于得到的修正权向量对训练集中的数据向量进行识别运算,或者,第一处理设备301可以根据该处理后的修正权向量直接对训练集中的数据向量进行识别运算,本申请对此不做具体限定。
可选的,如上所述,第二处理设备302可以获取根据N组输出值计算得到的至少一个修正值,其中,本申请提供了两种第二处理设备302获取该至少一个修正值的方式,其中:
在第一种方式中,第一处理设备301可以根据该N组输出值计算该至少一个修正值,并将计算得到的该至少一个修正值发送至第二处理设备302。该第二处理设备302可以接收第一处理设备301发送的至少一个修正值。
在第二种方式中,第一处理设备301可以将该N组输出值发送至第二处理设备302中,第二处理设备302可以根据该N组输出值计算得到该至少一个修正值。
下面,本申请将以当前较为常见的BP算法对神经网络训练系统计算N组输出值,并根据该N组输出值计算至少一个修正值的技术过程进行说明,如图5所示,该技术过程可以包括以下步骤:
步骤11、第一处理设备301基于第一数据向量和权向量进行神经网络正向运算得到该目标神经网络每一层的正向输出向量,其中,该第一数据向量为上述N个数据向量中的任意一个数据向量。
其中,神经网络正向运算通常包括向量点积运算和非线性变换运算,其指的是由神经网络的输入层输入数据向量,根据上述公式(1)经过逐层运算后得到神经网络的输出层的输出向量的运算,在运算过程中计算得到的神经网络每一层的输出向量均可以被称为该层的正向输出向量。例如,如图1所示的神经网络中,神经网络正向运算指的是由神经网络的第1层输入数据向量,而后根据神经网络的权向量通过公式(1)依次计算神经网络第2层的输出向量、神经网络第3层的输出向量,并最终得到神经网络第4层的输出向量的运算。
步骤12、第一处理设备301将目标神经网络输出层的正向输出向量与第一数据向量对应的理想输出向量相减的差向量获取为误差向量。
其中,第一数据向量对应的理想输出向量可以存储于上述训练集中。例如,图1所示的神经网络中,由该神经网络的输入层(也即是该神经网络的第1层)输入的训练集中的数据向量为[1,1],经过神经网络正向运算后得到的神经网络的输出层(也即是该神经网络的第4层)的正向输出向量可以为[3,2,3],在训练集中,该数据向量[1,1]对应的理想输出向量为[1,1,1],则第一处理设备301可以将向量[3,2,3]和向量[1,1,1]的差向量[2,1,2]获取为误差向量。
步骤13、第一处理设备301基于误差向量和权向量进行神经网络反向运算得到目标神经网络每一层的反向输出向量。
其中,神经网络反向运算包括向量点积运算,其指的是由神经网络的输出层输入误差向量,经过逐层运算后得到神经网络的输入层的输出向量的运算,在运算过程中计算得到的神经网络每一层的输出向量均可以被称为该层的反向输出向量,在神经网络反向运算中,有向弧的指向方向与神经网络正向运算中有向弧的指向方向正好相反。在神经网络的反向运算中,神经网络每一层的反向输出向量可以基于公式(2)计算得到:
epj=g(t·q)=g(e(p+1)1×w(p+1)1j+e(p+1)2×w(p+1)2j+……+e(p+1)n×w(p+1)nj) (2)。
在公式(2)中,epj为神经网络第p层的反向输出向量中第j个向量元素的值,g为函数符号,t为神经网络第p+1层的反向输出向量,且,t=[e(p+1)1,e(p+1)2,……,e(p+1)n],其中,e(p+1)n为神经网络第p+1层的反向输出向量中的第n个向量元素,神经网络的第p+1层包括n个节点,“·”为向量点积运算符,q为神经网络第p+1层中所有节点指向第p层的第j个节点的有向弧对应的权值所组成的权向量,且,q=[w(p+1)1j,w(p+1)2j,……,w(p+1)nj],其中,w(p+1)nj为神经网络的第p+1层中第n个节点指向神经网络第p层中第j个节点的有向弧对应的权值。
图4所示为图1所示的神经网络在进行神经网络反向运算时有向弧的指向方向的示意图,根据图4所示,神经网络反向运算是由神经网络的第4层输入误差向量,而后根据上述公式(2)依次计算神经网络第3层的输出向量、神经网络第2层的输出向量,并最终得到神经网络第1层的输出向量的运算。
步骤14、第一处理设备301得到与训练集中的N个数据向量一一对应的N组输出值。
第一处理设备301将目标神经网络每一层的正向输出向量和目标神经网络每一层的反向输出向量获取为对应于第一数据向量的一组输出值。对上述N个数据向量分别执行上述技术过程即可得到与该N个数据向量一一对应的N组输出值。
步骤15、第一处理设备301或第二处理设备302基于N组输出值通过公式(3)计算至少一个修正值。
其中,公式(3)可以为:
其中,Δwij表示目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示N组输出值的第b组输出值中目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示N组输出值的第b组输出值中目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数。
其中,当步骤15由第二处理设备302执行时,第一处理设备301还需要将计算得到的N组输出值发送至第二处理设备302。
本申请还提供了一种神经网络训练方法,该神经网络训练方法应用于第一处理设备中,如图6所示,该神经网络训练方法可以包括以下步骤:
步骤601、第一处理设备获取目标神经网络的权向量。
步骤602、第一处理设备获取训练集中的N个数据向量,其中,该训练集包括多个数据向量,N为大于或等于1的正整数。
步骤603、第一处理设备基于该N个数据向量中的每一个数据向量和该权向量进行第一运算得到N组输出值,该第一运算包括向量点积运算,以使第二处理设备获取至少一个修正值,其中,该至少一个修正值中的每个修正值用于修正该权向量中的一个向量元素,该每个修正值根据该N组输出值计算得到,并使得第二处理设备根据该至少一个修正值对该权向量中的向量元素进行修正,得到修正权向量,并使得第二处理设备将该修正权向量发送至第一处理设备,该修正权向量用于指示第一处理设备基于该训练集中的N个其他数据向量和该修正权向量进行该第一运算,该N个其他数据向量为该训练集中除该N个数据向量之外的数据向量。
综上所述,本申请提供的神经网络训练方法,通过第一处理设备执行神经网络训练过程中的向量点积运算,而第二处理设备执行神经网络训练过程中的权向量修正运算等其他类型的运算,使得第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
本申请实施例还提供了一种神经网络训练方法,该神经网络训练方法应用于第二处理设备中,如图7所示,该神经网络训练方法可以包括以下步骤:
步骤701、第二处理设备获取至少一个修正值,该至少一个修正值中的每个修正值用于修正目标神经网络的权向量中的一个向量元素,该每个修正值根据N组输出值计算得到,其中,该N组输出值由第一处理设备根据目标神经网络的权向量和训练集中的N个数据向量进行第一运算计算得到,该第一运算包括向量点积运算。
步骤702、第二处理设备根据该至少一个修正值对该权向量中的向量元素进行修正,得到修正权向量。
步骤703、第二处理设备将该修正权向量发送至第一处理设备,该修正权向量用于指示第一处理设备基于该训练集中的N个其他数据向量和该修正权向量进行该第一运算,该N个其他数据向量为该训练集中除该N个数据向量之外的数据向量。
综上所述,本申请提供的神经网络训练方法,通过第一处理设备执行神经网络训练过程中的向量点积运算,而第二处理设备执行神经网络训练过程中的权向量修正运算等其他类型的运算,使得第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
本申请实施例还提供了一种神经网络训练方法,该神经网络训练方法应用于神经网络训练系统中,如图8所示,该神经网络训练方法可以包括以下步骤:
步骤801、第一处理设备获取目标神经网络的权向量。
步骤802、第一处理设备获取训练集中的N个数据向量,其中,该训练集包括多个数据向量,N为大于或等于1的正整数。
步骤803、第一处理设备基于该N个数据向量中的每一个数据向量和该权向量进行第一运算得到N组输出值,该第一运算包括向量点积运算。
其中,第一处理设备得到N组输出值的技术过程在上文中的步骤11至步骤14中已经进行了说明,本申请在此不再赘述。
步骤804、第二处理设备获取至少一个修正值,该至少一个修正值中的每个修正值用于修正该权向量中的一个向量元素,每个修正值根据该N组输出值计算得到。
本申请提供了两种第二处理设备获取该至少一个修正值的方式,其中:
在第一种方式中,第一处理设备可以根据该N组输出值计算该至少一个修正值,并将计算得到的该至少一个修正值发送至第二处理设备。该第二处理设备可以接收第一处理设备发送的至少一个修正值。
在第二种方式中,第一处理设备可以将该N组输出值发送至第二处理设备中,第二处理设备可以根据该N组输出值计算得到该至少一个修正值。
其中,第一处理设备或第二处理设备根据该N组输出值计算至少一个修正值的技术过程在上文中的步骤15中已经进行了说明,本申请在此不再赘述。
步骤805、第二处理设备根据该至少一个修正值对该权向量中的向量元素进行修正,得到修正权向量。
步骤806、第二处理设备将该修正权向量发送至该第一处理设备,该修正权向量用于指示该第一处理设备基于该训练集中的N个其他数据向量和该修正权向量进行该第一运算,该N个其他数据向量为该训练集中除该N个数据向量之外的数据向量。
在实际应用中,为了降低第二处理设备和第一处理设备之间的通信带宽,第二处理设备可以对上述修正权向量进行第一预设处理得到处理后的修正权向量,并将处理后的修正权向量发送至第一处理设备中,以由第一处理设备根据该处理后的修正权向量对训练集中的数据向量进行识别运算。在实际应用中,处理后的修正权向量的数据量通常小于修正权向量的数据量,例如,在本申请的一个实施例中,修正权向量中一个向量元素占据的存储空间可以为16位以上(通常为32位),而处理后的修正权向量中一个向量元素占据的存储空间可以为4位到8位,因此,将修正权向量经过第一预设处理后再发送给第一处理设备可以降低第二处理设备和第一处理设备之间的通信带宽。其中,上述第一预设处理可以为压缩处理或者量化处理中的至少一个,量化处理指的是将修正权向量中的每个向量元素映射为一个数据量较小的值,其中,该映射过程可以通过函数实现,也可以通过查找表的形式实现,本申请对此不做具体限定。
第一处理设备在接收到上述经过处理后的修正权向量后可以对该处理后的修正权向量进行第二预设处理得到修正权向量,其中,该第二预设处理是第一预设处理的逆处理,也即是第二预设处理为与第一预设处理相反的处理,而后第一处理设备基于得到的修正权向量对训练集中的数据向量进行识别运算,或者,第一处理设备可以根据该处理后的修正权向量直接对训练集中的数据向量进行识别运算,本申请对此不做具体限定。
综上所述,本申请提供的神经网络训练方法,通过第一处理设备执行神经网络训练过程中的向量点积运算,而第二处理设备执行神经网络训练过程中的权向量修正运算等其他类型的运算,使得第一处理设备可以仅包含执行向量点积运算所需的特殊电路,从而使得第一处理设备电路结构较为简单,运算效率也较高,由于神经网络训练过程中大部分的运算均为向量点积运算,因此,第一处理设备运算效率较高可以提高神经网络的训练效率,使得神经网络的训练效率也较高。
在示例性实施例中,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机可读存储介质中的计算机程序被上文所述的第一处理设备301执行时能够实现上述第一处理设备301在神经网络训练过程中执行的运算,或者,当该计算机可读存储介质中的计算机程序被上述第二处理设备302执行时能够实现上述第二处理设备302在神经网络训练过程中执行的运算。
在示例性的实施例中,本申请还提供了一种包含指令的计算机程序产品,当其在第一处理设备301上运行时,使得该第一处理设备301能够实现上述实施例中第一处理设备301在神经网络训练过程中执行的运算;或者,
当其在第二处理设备302上运行时,使得该第二处理设备302能够实现上述实施例中第二处理设备302在神经网络训练过程中执行的运算。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种神经网络训练系统,其特征在于,所述神经网络训练系统包括第一处理设备和第二处理设备,所述第一处理设备和所述第二处理设备不同;
所述第一处理设备,用于:
获取目标神经网络的权向量;
获取训练集中的包含N个数据向量的一批数据向量,其中,所述训练集包括多个数据向量,N为大于1的正整数;
基于所述一批数据向量中的每一个数据向量和所述权向量进行第一运算得到包含N组输出值的一批输出值,所述第一运算包括向量点积运算;
所述第二处理设备,用于:
获取至少一个修正值,所述至少一个修正值中的每个修正值用于修正所述权向量中的一个向量元素,所述每个修正值为根据所述一批数据向量的所述一批输出值计算得到的累加的修正值;
根据所述至少一个修正值对所述权向量中的向量元素进行修正,得到修正权向量;
将所述修正权向量发送至所述第一处理设备,所述修正权向量用于指示所述第一处理设备基于所述训练集中的N个其他数据向量和所述修正权向量进行所述第一运算,所述N个其他数据向量为所述训练集中除所述N个数据向量之外的数据向量。
2.根据权利要求1所述的系统,其特征在于,所述第一处理设备,还用于根据所述一批输出值计算所述至少一个修正值,并将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备,具体用于接收所述第一处理设备发送的所述至少一个修正值。
3.根据权利要求1所述的系统,其特征在于,所述第一处理设备,还用于将所述一批输出值发送至所述第二处理设备;
所述第二处理设备,具体用于根据所述一批输出值计算所述至少一个修正值。
4.根据权利要求1所述的系统,其特征在于,所述第二处理设备,还用于对所述修正权向量进行第一预设处理得到处理后的修正权向量,所述处理后的修正权向量的数据量小于所述修正权向量的数据量;
所述第二处理设备,具体用于将所述处理后的修正权向量发送至所述第一处理设备;
所述第一处理设备,还用于接收所述第二处理设备发送的所述处理后的修正权向量,并对所述处理后的修正权向量进行第二预设处理得到所述修正权向量,所述第二预设处理为所述第一预设处理的逆处理。
5.根据权利要求4所述的系统,其特征在于,所述第一预设处理包括压缩处理和量化处理中的至少一个。
6.根据权利要求1所述的系统,其特征在于,所述第一处理设备,具体用于:
基于第一数据向量和所述权向量进行神经网络正向运算得到所述目标神经网络每一层的正向输出向量,所述神经网络正向运算包括向量点积运算和非线性变换运算,所述第一数据向量为所述一批数据向量中的任意一个数据向量;
获取误差向量,所述误差向量为所述目标神经网络的输出层的正向输出向量与所述训练集中所述第一数据向量对应的理想输出向量的差向量;
基于所述误差向量和所述权向量进行神经网络反向运算得到所述目标神经网络每一层的反向输出向量,所述神经网络反向运算包括向量点积运算;
将所述目标神经网络每一层的正向输出向量和所述目标神经网络每一层的反向输出向量获取为对应于所述第一数据向量的一组输出值。
7.根据权利要求6所述的系统,其特征在于,所述第一处理设备,还用于根据所述一批输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述一批输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述一批输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数;
所述第一处理设备,还用于将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备,具体用于接收所述第一处理设备发送的所述至少一个修正值。
9.根据权利要求1所述的系统,其特征在于,所述第一处理设备和所述第二处理设备集成于一个设备中。
10.根据权利要求1所述的系统,其特征在于,所述第一处理设备为预设的运算网络中多个运算节点组成的处理设备;
所述第二处理设备为部署于云端或预设的通信网络边缘的处理设备。
11.根据权利要求1-10任一所述的系统,其特征在于,所述第一运算还包括非线性变换运算。
12.一种神经网络训练方法,其特征在于,所述方法包括:
第一处理设备获取目标神经网络的权向量;
所述第一处理设备获取训练集中的包含N个数据向量的一批数据向量,其中,所述训练集包括多个数据向量,N为大于1的正整数;
所述第一处理设备基于所述一批数据向量中的每一个数据向量和所述权向量进行第一运算得到包含N组输出值的一批输出值,所述第一运算包括向量点积运算;
第二处理设备获取至少一个修正值,所述至少一个修正值中的每个修正值用于修正所述权向量中的一个向量元素,所述每个修正值为根据所述一批数据向量的所述一批输出值计算得到的累加的修正值,所述第二处理设备与所述第一处理设备不同;
所述第二处理设备根据所述至少一个修正值对所述权向量中的向量元素进行修正,得到修正权向量;
所述第二处理设备将所述修正权向量发送至所述第一处理设备,所述修正权向量用于指示所述第一处理设备基于所述训练集中的N个其他数据向量和所述修正权向量进行所述第一运算,所述N个其他数据向量为所述训练集中除所述N个数据向量之外的数据向量。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第一处理设备根据所述一批输出值计算所述至少一个修正值,并将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备接收所述第一处理设备发送的所述至少一个修正值。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第一处理设备将所述一批输出值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备根据所述一批输出值计算所述至少一个修正值。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第二处理设备对所述修正权向量进行第一预设处理得到处理后的修正权向量,所述处理后的修正权向量的数据量小于所述修正权向量的数据量;
所述第二处理设备将所述修正权向量发送至所述第一处理设备,包括:
所述第二处理设备将所述处理后的修正权向量发送至所述第一处理设备;
所述方法还包括:
所述第一处理设备接收所述第二处理设备发送的所述处理后的修正权向量,并对所述处理后的修正权向量进行第二预设处理得到所述修正权向量,所述第二预设处理是所述第一预设处理的逆处理。
16.根据权利要求15所述的方法,其特征在于,所述第一预设处理包括压缩处理和量化处理中的至少一个。
17.根据权利要求12所述的方法,其特征在于,所述第一处理设备基于所述一批数据向量中的每一个数据向量和所述权向量进行第一运算得到包含N组输出值的一批输出值,包括:
所述第一处理设备基于第一数据向量和所述权向量进行神经网络正向运算得到所述目标神经网络每一层的正向输出向量,所述神经网络正向运算包括向量点积运算和非线性变换运算,所述第一数据向量为所述一批数据向量中的任意一个数据向量;
所述第一处理设备获取误差向量,所述误差向量为所述目标神经网络的输出层的正向输出向量与所述训练集中所述第一数据向量对应的理想输出向量的差向量;
所述第一处理设备基于所述误差向量和所述权向量进行神经网络反向运算得到所述目标神经网络每一层的反向输出向量,所述神经网络反向运算包括向量点积运算;
所述第一处理设备将所述目标神经网络每一层的正向输出向量和所述目标神经网络每一层的反向输出向量获取为对应于所述第一数据向量的一组输出值。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
所述第一处理设备根据所述一批输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述一批输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述一批输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数;
所述第一处理设备将计算得到的所述至少一个修正值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备接收所述第一处理设备发送的所述至少一个修正值。
19.根据权利要求17所述的方法,其特征在于,所述方法还包括:
所述第一处理设备将所述一批输出值发送至所述第二处理设备;
所述第二处理设备获取至少一个修正值,包括:
所述第二处理设备根据所述一批输出值通过公式计算所述至少一个修正值,其中,所述公式为:
其中,Δwij表示所述目标神经网络中由第p层中第i个节点指向第p+1层中第j个节点的有向弧对应的权向量向量元素的修正值,Xpib表示所述一批输出值的第b组输出值中所述目标神经网络的第p层的正向输出向量中的第i个向量元素,E(p+1)jb表示所述一批输出值的第b组输出值中所述目标神经网络的第p+1层的反向输出向量中的第j个向量元素,i、j和p均为大于或等于1的正整数。
20.根据权利要求12所述的方法,其特征在于,所述第一处理设备和所述第二处理设备集成于一个设备中。
21.根据权利要求12所述的方法,其特征在于,所述第一处理设备为预设的运算网络中多个运算节点组成的处理设备;
所述第二处理设备为部署于云端或预设的通信网络边缘的处理设备。
22.根据权利要求12-21任一所述的方法,其特征在于,所述第一运算还包括非线性变换运算。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,存储的所述计算机程序被权利要求1-11任一所述的第一处理设备执行时能够实现权利要求1-11任一所述的第一处理设备在神经网络训练过程中执行的运算;或者,
存储的所述计算机程序被权利要求1-11任一所述的第二处理设备执行时能够实现权利要求1-11任一所述的第二处理设备在神经网络训练过程中执行的运算。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710725775.9A CN109426859B (zh) | 2017-08-22 | 2017-08-22 | 神经网络训练系统、方法和计算机可读存储介质 |
CN201880025109.7A CN110506280B (zh) | 2017-08-22 | 2018-03-19 | 神经网络训练系统、方法和计算机可读存储介质 |
PCT/CN2018/079500 WO2019037409A1 (zh) | 2017-08-22 | 2018-03-19 | 神经网络训练系统、方法和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710725775.9A CN109426859B (zh) | 2017-08-22 | 2017-08-22 | 神经网络训练系统、方法和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426859A CN109426859A (zh) | 2019-03-05 |
CN109426859B true CN109426859B (zh) | 2021-03-05 |
Family
ID=65438345
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710725775.9A Active CN109426859B (zh) | 2017-08-22 | 2017-08-22 | 神经网络训练系统、方法和计算机可读存储介质 |
CN201880025109.7A Active CN110506280B (zh) | 2017-08-22 | 2018-03-19 | 神经网络训练系统、方法和计算机可读存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880025109.7A Active CN110506280B (zh) | 2017-08-22 | 2018-03-19 | 神经网络训练系统、方法和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN109426859B (zh) |
WO (1) | WO2019037409A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426859B (zh) * | 2017-08-22 | 2021-03-05 | 华为技术有限公司 | 神经网络训练系统、方法和计算机可读存储介质 |
CN111783932A (zh) * | 2019-04-03 | 2020-10-16 | 华为技术有限公司 | 训练神经网络的方法和装置 |
CN111126596B (zh) * | 2019-12-17 | 2021-03-19 | 百度在线网络技术(北京)有限公司 | 神经网络训练中的信息处理方法、设备与存储介质 |
CN113177355B (zh) * | 2021-04-28 | 2024-01-12 | 南方电网科学研究院有限责任公司 | 一种电力负荷预测方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024750A1 (en) * | 2002-07-31 | 2004-02-05 | Ulyanov Sergei V. | Intelligent mechatronic control suspension system based on quantum soft computing |
CN101101299A (zh) * | 2007-06-25 | 2008-01-09 | 华东理工大学 | 一种并-串联模式识别方法及其在机器嗅觉中的应用 |
AU2009279644B2 (en) * | 2008-08-06 | 2012-08-23 | Halliburton Energy Services, Inc. | Systems and methods employing cooperative optimization-based dimensionality reduction |
US9235799B2 (en) * | 2011-11-26 | 2016-01-12 | Microsoft Technology Licensing, Llc | Discriminative pretraining of deep neural networks |
CN105900116A (zh) * | 2014-02-10 | 2016-08-24 | 三菱电机株式会社 | 分层型神经网络装置、判别器学习方法以及判别方法 |
CN105654176B (zh) * | 2014-11-14 | 2018-03-27 | 富士通株式会社 | 神经网络系统及神经网络系统的训练装置和方法 |
CN105678395B (zh) * | 2014-11-21 | 2021-06-29 | 创新先进技术有限公司 | 神经网络的建立方法及系统和神经网络的应用方法及系统 |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
CN106203622B (zh) * | 2016-07-14 | 2018-12-25 | 杭州华为数字技术有限公司 | 神经网络运算装置 |
CN107688493B (zh) * | 2016-08-05 | 2021-06-18 | 阿里巴巴集团控股有限公司 | 训练深度神经网络的方法、装置及系统 |
CN109426859B (zh) * | 2017-08-22 | 2021-03-05 | 华为技术有限公司 | 神经网络训练系统、方法和计算机可读存储介质 |
-
2017
- 2017-08-22 CN CN201710725775.9A patent/CN109426859B/zh active Active
-
2018
- 2018-03-19 CN CN201880025109.7A patent/CN110506280B/zh active Active
- 2018-03-19 WO PCT/CN2018/079500 patent/WO2019037409A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN110506280A (zh) | 2019-11-26 |
WO2019037409A1 (zh) | 2019-02-28 |
CN110506280B (zh) | 2022-12-27 |
CN109426859A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426859B (zh) | 神经网络训练系统、方法和计算机可读存储介质 | |
WO2019091020A1 (zh) | 权重数据存储方法和基于该方法的神经网络处理器 | |
KR102149132B1 (ko) | 딥 러닝 환경에서의 적대적 예제 생성 장치 및 방법, 컴퓨터 프로그램 | |
Son | Finite-time stability of a class of non-autonomous neural networks with heterogeneous proportional delays | |
KR101885593B1 (ko) | 인공 지능을 기반으로 하는 자소 음소 변환 모델 생성 방법 및 장치 | |
US20210334621A1 (en) | Arithmetic processing system using hierarchical network | |
WO2020151310A1 (zh) | 文本生成方法、装置、计算机设备及介质 | |
Al-Faiz et al. | The effect of Z-Score standardization (normalization) on binary input due the speed of learning in back-propagation neural network | |
Lan et al. | Random search enhancement of error minimized extreme learning machine. | |
CN113610232A (zh) | 网络模型量化方法、装置、计算机设备以及存储介质 | |
CN110798227B (zh) | 模型预测优化方法、装置、设备及可读存储介质 | |
WO2017166155A1 (zh) | 一种对神经网络模型进行训练的方法、装置及电子设备 | |
CN108154235A (zh) | 一种图像问答推理方法、系统及装置 | |
WO2019155523A1 (ja) | 分類器形成装置、分類器形成方法、及びプログラムを格納する非一時的なコンピュータ可読媒体 | |
CN115018039A (zh) | 一种神经网络蒸馏方法、目标检测方法以及装置 | |
CN101169621A (zh) | 一种基于小波神经网络的视觉反馈控制方法 | |
US20220343163A1 (en) | Learning system, learning device, and learning method | |
CN115909441A (zh) | 人脸识别模型建立方法、人脸识别方法和电子设备 | |
Yonekawa et al. | The parameter optimization of the pulse coupled neural network for the pattern recognition | |
Kubuś | Individually directional evolutionary algorithm for solving global optimization problems-comparative study | |
US20220036190A1 (en) | Neural network compression device | |
CN114519416A (zh) | 模型蒸馏方法、装置及电子设备 | |
CN112749679A (zh) | 模型的训练方法、人脸识别方法、装置、设备和介质 | |
Zhang et al. | A novel noise injection-based training scheme for better model robustness | |
Vázquez et al. | A new bi-directional associative memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |