深度神经网络学习方法、处理器和深度神经网络学习系统的制作方法
【技术领域】
[0001]本发明的实施方式涉及神经网络领域,更具体地,本发明的实施方式涉及一种深度神经网络学习方法、处理器和深度神经网络学习系统。
【背景技术】
[0002]本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]深度神经网络学习作为机器学习研宄中的一个新的领域,它通过模仿人脑的机制来解释数据,是一种通过建立和模拟人脑进行分析学习的智能模型。
[0004]如图1所示为深度神经网络模型示意图,一般训练数据会被依次送入该模型进行训练。然而,当待训练数据较多时,如果采用单一的处理器进行训练则需要很长的训练时间,因此一般会将待训练数据分成两份或两份以上,采用两个或者两个以上处理器并行训练的方式以提高训练的效率。
[0005]在具体实现的过程中,在反向处理时,为了实现模型参数的更新,每个处理器都需要获取一份完整的训练数据所对应的参数修正量(即,不仅需要自身得到的参数修正量,还需要获取其他并行处理的处理器得到的参数修正量),才能实现对模型参数的更新。为此,现有的处理方式是在反向处理完成后,增加一个参数修正量的传输过程,从而使得每个处理器都可以获得一份完整的训练数据所对应的参数修正量以实现模型参数的更新。
[0006]然而,因为这个参数修正量的传输过程的加入使得模型训练的时间被延长,训练效率也相应降低,这显然与最初并行处理以提高训练效率的目的是相悖的。
【发明内容】
[0007]由于在并行进行深度神经网络学习的过程中,需要增加参数修正量的传递过程,占用了一定的时间,从而无法有效提高深度神经网络学习的效率,在现有技术中,也无法很好地缩短参数修正量传递所占用的时间,这事非常令人烦恼的过程。
[0008]为此,非常需要一种改进的深度神经网络的学习方法,以有效缩短参数修正量传递所占用的时间,提高神经网络学习的效率。
[0009]在本上下文中,本发明实施方式期望提供一种深度神经网络学习方法、处理器和深度神经网络学习系统。
[0010]在本发明实施方式的第一方面中,提供了一种深度神经网络学习方法,例如,可以包括:多个处理器并行地对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;所述多个处理器对所述误差信息从所述末层到所述首层逐层进行反向处理,其中,所述多个处理器中的每个处理器在其深度神经网络模型的当前层的反向处理产生参数修正量后,随即向其他处理器传递所述参数修正量。
[0011]在本发明实施方式的第二方面中,提供了一种处理器,例如,可以包括:正向处理单元,用于对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;反向处理单元,用于对所述误差信息从所述末层到所述首层逐层进行反向处理,其中,在深度神经网络模型的当前层的反向处理产生参数修正量后,随即向并行运算的其他处理器传递所述参数修正量。
[0012]在本发明实施方式的第三方面中,提供了一种深度神经网络学习系统,例如,可以包括:并行运算的多个上述的处理器。
[0013]通过本发明上述实施方式的深度神经网络学习方法、处理器和深度神经网络学习系统,减少了参数修正量传递所需的时间,有效提高了深度神经网络模型训练的效率,尤其对于训练数据比较多、深度神经网络模型层数比较多的情况,这种方式可以大幅减少用时,有效节省模型训练的时间。
【附图说明】
[0014]通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
[0015]图1示意性地示出了根据本发明实施方式的深度神经网络模型示意图;
[0016]图2示意性地示出了现有技术中深度神经网络模型的训练流程示意图;
[0017]图3示意性地示出了根据本发明实施方式的应用场景;
[0018]图4示意性地示出了根据本发明实施方式的服务器的设备结构示意图;
[0019]图5示意性地示出了根据本发明实施方式的处理器的设备结构示意图;
[0020]图6示意性地示出了根据本发明实施方式的一种深度神经网络学习方法的交互示意图;
[0021]图7示意性地示出了根据本发明实施方式的另一种深度神经网络学习方法的交互示意图;
[0022]图8示意性地示出了现有的反向处理的逻辑流程示意图;
[0023]图9示意性地示出了根据本发明实施方式的反向处理的逻辑流程示意图;
[0024]图10示意性地示出了根据本发明实施方式的深度神经网络学习方法的流程示意图。
[0025]在附图中,相同或对应的标号表不相同或对应的部分。
【具体实施方式】
[0026]下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0027]本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0028]根据本发明的实施方式,提出了一种深度神经网络学习方法、处理器和深度神经网络学习系统。
[0029]在本文中,需要理解的是,所涉及的术语中:
[0030]1、深度神经网络模型中的层:指代深度神经网络模型不同层的节点之间的线性层和非线性层,这里的线性层和非线性层是在不同层的节点之间,对数据进行映射、运算的处理层,其中线性层对输入数据进行的处理包括权重矩阵处理,还可以包括偏置向量处理等,非线性层则包括sigmoid层、softmax层、relu层等类型。
[0031]2、参数修正量:在深度神经网络模型训练的反向处理过程中,所产生的用于更新深度神经网络模型参数的修正量,主要包括权重矩阵修正量和偏置向量修正量。在进行模型参数的更新时,对反向处理过程产生的所述参数修正量进行处理,并根据处理结果对模型参数进行更新。其中,权重矩阵修正量用于更新线性层中的权重矩阵的参数,而偏置向量修正量用于更新线性层中偏置向量的参数。
[0032]线性层中权重矩阵和偏置向量对不同层节点之间的数值映射处理方式是现有技术,不再赘述。
[0033]此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
[0034]下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0035]发曰月概沐
[0036]为了对本发明进行更为清楚的描述,下面将对现有的深度神经网络学习方法进行具体说明。常规上,数据被依次送入深度神经网络进行学习,每一批数据的计算是通过一个深度神经网络模型在处理器上完成的,其中该处理器可以是图形处理器(GPU),例如,对如图1所示为深度神经网络模型进行训练主要是按照以下三个步骤执行的:
[0037]步骤1:数据从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;
[0038]步骤2:将误差信息从末层到首层逐层进行反向处理;
[0039]步骤3:通过在反向处理过程中得到的参数修正量对模型中需要进行参数更新的层进行参数更新。
[0040]具体的,在实现的过程中,在上述步骤3参数更新的过程并非对深度神经网络模型中的每个层都是必须的,一般仅模型中的线性层可能需要进行参数更新,非线性层一般是不需要进行参数更新的。为了使得描述更为清楚简单,在下文的文字描述以及附图所示意性的内容中,所涉及的深度神经网络模型中的层指代的都是模型中需要进行参数更新的层,对于不需要进行参数更新的层,将不再赘述。
[0041]由于在大数据时代,数据非常多,如果仅通过一个处理器,将这些数据分批依次送入深度神经网络进行学习,则训练过程需要很长的时间(设置可能一次训练好几个月),为了缩短模型的训练时间,提出了可以使用多个处理器来共同进行数据计算以实现快速的模型训练。以2个处理器为例进行说明:
[0042]把每一批数据分成2份,将这2份数据同时送给2个处理器,每个处理器上仍旧按照上述的三个步骤执行,因为这两个处理器是相互独立的计算单元,因此它们各自的计算是可以同时进行的。对每一批数据而言,2个处理器上的步骤I和步骤2是可以同时进行的,这样相对于每一个处理器而言,完成步骤I和步骤2所需的时间与原本的仅通过
一个处理器进行处理的情况相比,缩短了一半。
[0043]然而在执行上述步骤3通过在反向处理过程中得到的参数修正量对模型的参数进行更新的过程中,所需要的参数修正量是整份数据对应的参数修正量,而当采用两个处理器进行处理的时候,每个处理器上仅有半份数据的参数修正量,是不完整的,对于每个处理器而言,需要获得对方的参数修正量后,才能进行步骤3的参数更新。为了实现上述目的,当前所采用的处理流程如图2所示,即在步骤2执行完之后,增加步骤2.5:两个处理器相互之间传递参数修正量,从而使得每个处理器都可以获得一份完整的参数修正量,然后再并行地执行步骤3。
[0044]下面来分析一下采用如图2所示的传统的多处理器的方法的加速性能,假设对一批数据而言,在I块处理器上上完成步骤1、步骤2各是100ms,完成步骤3是50ms,然而值得注意的是,这些时间数据一般需要根据数据的大小、所使用的处理器的性能、模型的复杂度等来衡量,此处所列举的时间数据仅是举例而言,并不构成具体限定。以上面所列举的时间,完成一批数据的计算总时间就是250ms,如果采用2个处理器来计算,由于每个处理器上仅有一半的数据,因此步骤I和步骤2仅需要一半的时间,步骤3虽然是并行执行的,但是更新所用的时间是不变的,还是50ms,3个步骤加在一起就是150ms。
[0045]但是在并行执行的过程中增加了一个步骤2.5,步骤2.5是传输数据,传输速度受总线带宽的约束,比较慢,假设步骤2.5消耗的时间也是50ms,那么按照图2所示的方法完成一批数据的处理所需的时间就是:150ms+50ms = 200ms,而前面已经描述过通过单一处理器处理所需的完成时间大概为250ms,那么加速比为:
[0046]250ms/200ms = 1.25
[0047]也就是说,采用两个处理器对一批数据进行处理,相较于仅采用一个处理器进行处理,时间上节约了 25%。
[0048]发明人考虑到因为步骤2.5参数修正量的传递的存在,影响了整个算法执行的速度,延长了整个算法执行的时间。
[0049]为此,本发明提供了一种深度神经网络学习方法。网络学习的过程可以是:多个处理器并行地对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;所述多个处理器对所述误差信息从所述末层到所述首层逐层进行反向处理,其中,所述多个处理器中的每个处理器在其深度神经网络模型的当前层的反向处理产生参数修正量后,随即向其他处理器传递所述参数修正量。因为数据处理是通过处理器完成的,而数据传递是通过总线完成的,两者可以同步执行,因此,在得到当前层的参数修正量后,可以随即将其传递给其他处理器,而无需等到获取其他层的参数修正量再一起传递,从而有效节省了算法所需的时间。
[0050]在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
[0051]应用场景总览
[0052]首先参考图3,服务器100可以是一般的具备数据分发功能的服务器,处理器200(处理器1、2…N)可以是具备数据处理功能的处理器,例如:图形处理器GPU,处理器之间通过总线连接,服务器100与处理器200之间通过网络通信技术进行通信连接。
[0053]利用本发明实施例提供的深度神经网络学习方法,当有一批需要进行训练的数据后,服务器100将其按照处理器200的个数均分为N份,N为大于等于2的正整数;然后将其分配至这N个处理器进行深度神经网络模型的训练,在训练的过程中,各个处理器200在反向处理的过程中,获取当前层的参数修正量后,先根据输入至当前层的误差信息计算当前层的参数修正量,然后再随即将参数修正量传递给其他的处理器100,这样在完成整个反向处理过程中,大部分的参数修正量都已经传递完毕,从而可以减少参数修正量传递所占用的时间。
[0054]各个处理器200在获得所有其他并行运算的处理器的当前层的参数修正量后,结合其自身的当前层的参数修正量,就可以进行模型当前层参数的更新操作。
[0055]示例件设各
[0056]下面结合图3的应用场景,参考图4和5对本发明示例性实施方式的服务器100、处理器200进行介绍。
[0057]需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反。本发明的实施方式可以应用于适用的任何场景。
[0058]例如,参见图4,为本发明实施例提供的服务器100的设备结构示意图。如图所示,服务器100可以包括:数据接收模块101、数据分发模块102。
[0059]参见图5,为本发明实施例提供的处理器200的设备结构示意图。如图所示,处理器200可以包括:正向处理单元201、反向处理单元202。此外,处理器200还可以包括:更新单元203。
[0060]参考图4和图5,当服务器中的数据接收模块101接收到一批数据后,将数据分为N份(N与处理器的个数相等),然后通过数据分发模块102将这N份数据分发至N个处理器进行处理,这N个处理器并行地对这批数据进行处理,具体的,正向处理单元201可以对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理,例如一共有7个需要进行模型参数更新的线性层。这里需要说明的是,深度神经网络模型中除了包括线性层,还包括非线性层,由于非线性层一般不需要更新模型参数,故这里仅以线性层的处理为例介绍本发明的发明点,但在实际的使用中,本发明的深度神经网络是包括非线性层的。正向处理单元201从第I层到第7层逐层进行正向处理;在正向处理结束后,将所述数据的处理结果和预设的标准值作比较,得到误差信息;然后,反向处理单元202可以对所述误差信息从所述末层到所述首层逐层进行反向处理,即,从第7层至第I层进行反向处理,在进行反向处理的过程中便会产生参数修正量,为了使得缩短整个算法的时间,在得到当前层的参数修正量后,就随即将其传递到其他处理器,从而使得每个处理器都可以得到并行运算的其他处理器该层的参数修正量。例如,如图6所示,在处理器200得到了第7层的参数修正量后,就随即向并行运算的其他处理器200传递参数修正量,同时进行第6层的误差信息的处理,在处理器200得到了第6层的参数修正量后,如果第7层的参数修正量已经传输完毕,则立即向其他处理器传输第6层的参数修正量,依次类推,直至完成所有层的误差信息处理和参数修正量传输。
[0061]下面以两个处理器200为例来分析上述处理方式的效率,对各个处理器而言,如前所述步骤I所需要的时间为50ms,步骤2在执行的过程中,步骤3已经开始执行了,当步骤2从末层到首层逐层进行反向处理至最后一层时,除了最后一层的参数修正量之外的其它层的参数修正量都已经相互传递完毕。假定每层的参数修正量所需的传输时间是相同的,那么步骤2.5需要单独占用的时间是10ms的七分之一,也就是15ms左右。步骤3仍旧需要50ms,那么总的计算时间为:50ms+50ms+15ms+50ms = 175ms,而前面已经描述过通过单一处理器处理所需的完成时间大概为250ms,那么加速比为:
[0062]250/175 = 1.428
[0063]也就是说,通过本例所提供的方法,如果采用两个处理器并行处理,可以节省40%多的时间,比传统的方法要快很多。
[0064]如前所述,步骤3通过在反向处理过程中得到的参数修正量对模型当前层的参数进行更新,具体可以是在产生参数修正量的各层的参数修正量都交换完成后,再统一进行上述各层的模型参数的更新。在本发明中,考虑到各层的参数更新都是独立的,相互之间没有什么影响,只要当前层获取了当前层全部的参数修正量就可以进行当前层的参数更新,因此,具体的执行流程可以如图7所示,S卩,在获取了当前层所有其他处理器的当前层参数修正量后,可以结合本处理器自身的当前层参数修正量,直接进行该层模型参数的更新,而无需等到其他层的参数修正量都传递完毕。也就是说,更新单元203可以在获得所有其他处理器传递的当前层的参数修正量后,结合自身的当前层参数修正量,随即更新自身的深度神经网络模型当前层的参数,这样可以缩短步骤3需要单独占用的时间,从而使得整个方案可以缩短的时间要大于40%。
[0065]在上述实施例中,是以深度神经网络模型的需要进行模型参数的层的层数为7层为例进行说明的,其实对于本申请所提供的方法,深度神经网络模型的层数越多,那么所节省的时间的比例也就越高。对于处于大数据时代的现在,神经网络模型的层数在不断增加,有些已经达到几十层,对于这种层数比较多的深度神经网络模型,本例中所提供的处理方法优势将更为明显。
[0066]此外,本发明还提供了一种优选的参数修正量的传输方式,针对当前层的参数修正量的传递过程,进行进一步优化,具体的,以参数修正量包括Λ w(权重矩阵修正量)和Δ b(偏置向量修正量)为例,如图8所示,每一层的正常反向处理流程包括以下三个步骤:
[0067]步骤1:反向处理单元202进行误差信息的处理与传递,
[0068]步骤2:反向处理单元202根据输入至当前层的误差信息计算参数修正量,例如,可以是Λ w(权重矩阵修正量)和Λ b (偏置向量修正量),然而值得注意的是,Δ w和Λ b是两个独立的部分,且Λ W和Ab只是作为参数修正量的两种类型,还可以有其它的数据参数修正量,只要是在深度神经网络模型训练的反向处理过程中产生的能够用于调整模型参数的数据都可以作为参数修正量的一部分;
[0069]步骤3:处理器200交换参数修正量。
[0070]上述步骤I和步骤2中的处理误差信息、计算参数修正量等大多都是一些矩阵乘法和矩阵加法的运算,需要耗费比较多的时间,由反向传播算法可知,反向处理过程中,传递给下一层的误差信息的计算可以在计算完参数修正量之后执行。具体的,即,对于每层而言,先根据输入至当前层的误差信息计算得到当前层的参数修正量,然后再计算传递给下一层的误差信息。因此可以如图9所示,先根据输入至当前层的误差信息计算Λ w,随即相互传递Λ w参数,再计算Λ b,随即传递Λ b参数传递给下一层的误差信息的计算可以最后进行。即,参数修正量可以包括多个相互独立的部分,反向处理单元针对当前层,逐一计算参数修正量的各个相互独立的部分,并在完成每个部分的计算后随即向其他处理器传递该部分。
[0071]通过这种方式就将参数修正量的传递过程提前了几个矩阵相乘的时间,因此传递效率更高。然而,值得注意的是图8和图9中的计算过程和传递过程,虽然在流程图上是按照上述方式串行执行的,但是在实际执行的过程中,因为计算过程是处理器实现的,而传递过程是通过总线进行的,因此计算过程(计算Λ?、计算Λ b、计算传递给下一层的误差信息)和传递过程(传递误差、Λ w、Ab)在时序上是并行进行的。
[0072]通过本发明上述实施方式的服务器和处理器进行深度神经网络学习的方式,减少了参数修正量传递所需的时间,有效提高了深度神经网络模型训练的效率,尤其对于训练数据比较多、层数比较多的深度神经网络模型的训练,这种方式可以大幅减少用时,有效节省模型训练的时间。
[0073]示例性方法
[0074]在介绍了本发明示例性实施方式的方法之后,接下来,参考图10对本发明示例性实施方式的深度神经网络学习方法进行介绍。
[0075]图10为本发明实施例提供的深度神经网络学习方法的方法流程图。下面参照该图对深度神经网络学习方法的流程进行描述,在本例中,有N个处理器并行执行,如图10所示,包括以下步骤:
[0076]步骤1001:服务器将获取的一批训练数据分为N份。可选地,可以是均分,也可以按照处理器的性能划分;
[0077]步骤1002:将划分得到的N份数据分配至N个处理器;
[0078]步骤1003:这N个处理器并行地对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;
[0079]步骤1004:对误差信息从末层到首层逐层进行反向处理,其中,这N个处理器中的每个处理器在其深度神经网络模型的当前层的反向处理产生参数修正量后,随即向其他处理器传递参数修正量。其中,参数修正量可以包括多个相互独立的部分,可选地,每个处理器针对当前层,逐一计算参数修正量的各个相互独立的部分,并在完成每个部分的计算后随即向其他处理器传递该部分,这些相互独立的部分可以包括但不限于:权重矩阵修正量和偏置向量修正量。
[0080]步骤1005:每个处理器在获得除自身之外的所有其他处理器传递的当前层的参数修正量后,结合其自身的当前层的参数修正量,更新自身的深度神经网络模型当前层的参数。可选地,处理器可以是在获取当前层的所有参数修正量后,随即更新模型参数,也可以是在所有层的参数修正量都传输完毕后,再更新模型参数。
[0081]通过本发明上述实施方式的深度神经网络学习方法,减少了参数修正量传递所需的时间,有效提高了深度神经网络模型训练的效率,尤其对于训练数据比较多、层数比较多的深度神经网络模型的训练,这种方式可以大幅减少用时,有效节省模型训练的时间。
[0082]应当注意,尽管在上文详细描述中提及了服务器、处理器,一级若干的子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0083]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0084]虽然已经参考若干【具体实施方式】描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的【具体实施方式】,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
【主权项】
1.一种深度神经网络学习方法,包括: 多个处理器并行地对分配至自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息; 所述多个处理器对所述误差信息从所述末层到所述首层逐层进行反向处理,其中,所述多个处理器中的每个处理器在其深度神经网络模型的当前层的反向处理产生参数修正量后,随即向其他处理器传递所述参数修正量。2.根据权利要求1所述的方法,还包括: 所述多个处理器中的每个处理器在获得所述多个处理器中除自身之外的所有其他处理器传递的当前层的参数修正量后,结合自身的当前层的参数修正量,更新自身的所述深度神经网络模型当前层的参数。3.根据权利要求1所述的方法,其中,所述多个处理器对所述数据从所述末层到所述首层逐层进行反向处理,包括: 所述多个处理器针对当前层先根据输入至当前层的误差信息计算所述参数修正量,然后再计算传递给下一层的误差信息。4.根据权利要求3所述的方法,其中,所述参数修正量包括多个相互独立的部分,并且 所述多个处理器针对当前层先根据输入至当前层的误差信息计算所述参数修正量,包括: 所述多个处理器中的每个处理器针对当前层,根据输入至当前层的误差信息,逐一计算所述参数修正量的各个相互独立的部分,并在完成每个所述部分的计算后随即向其他处理器传递该部分。5.根据权利要求4所述的方法,其中,所述多个相互独立的部分包括权重矩阵修正量和偏置向量修正量。6.一种处理器,包括: 正向处理单元,用于对分配至该处理器自身的数据,在深度神经网络模型的多个层上从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息; 反向处理单元,用于对所述误差信息从所述末层到所述首层逐层进行反向处理,其中,在深度神经网络模型的当前层的反向处理产生参数修正量后,随即向并行运算的其他处理器传递所述参数修正量。7.根据权利要求6所述的处理器,还包括: 更新单元,用于在获得所有并行运算的其他处理器传递的当前层的参数修正量后,随即结合该处理器自身的当前层的参数修正量,更新自身的所述深度神经网络模型当前层的参数。8.根据权利要求6所述的处理器,其中,所述反向处理单元具体用于针对当前层先根据输入至当前层的误差信息计算所述参数修正量,然后再计算传递给下一层的误差信息。9.根据权利要求8所述的处理器,其中,所述参数修正量包括多个相互独立的部分,并且所述反向处理单元针对当前层,根据输入至当前层的误差信息,逐一计算所述参数修正量的各个相互独立的部分,并在完成每个所述部分的计算后随即向其他处理器传递该部分。10.一种深度神经网络学习系统,包括:并行运算的多个如权利要求6至9中任一项所 述的处理器。
【专利摘要】本发明的实施方式提供了一种深度神经网络学习方法。该方法包括:多个处理器并行地对分配至自身的数据从首层到末层逐层进行正向处理、并在正向处理结束时获得误差信息;多个处理器对误差信息从末层到首层逐层进行反向处理,其中,多个处理器中的每个处理器在其深度神经网络模型的当前层的反向处理产生参数修正量后,随即向其他处理器传递参数修正量。通过本发明上述实施方式的方法,减少了参数修正量传递所占用的时间,有效提高了深度神经网络模型训练的效率,尤其对于训练数据比较多、深度神经网络模型层数比较多的情况,这种方式可以大幅减少用时,有效节省模型训练的时间。此外,本发明的实施方式提供了一种处理器和深度神经网络学习系统。
【IPC分类】G06N3/08
【公开号】CN104899641
【申请号】CN201510270301
【发明人】陈海波, 吴伟, 李晓燕
【申请人】杭州朗和科技有限公司
【公开日】2015年9月9日
【申请日】2015年5月25日