本公开通常涉及学习机技术,尤其涉及用于训练学习机的方法和装置。
背景技术:
深度学习机,包括深度神经网络(dnn)、卷积神经网络(cnn)、循环神经网络(rnn)和它们的变型,已经变成用于执行诸如语音识别、图像识别、手写分析和对象分类这样的任务的最新解决方案。
可以利用诸如小批量随机梯度下降(sgd)、异步sgd、模型平均、异步sgd和模型平均的组合等这样的技术来训练深度学习机以执行特定任务。然而,这些技术的每一个都存在缺陷。例如,小批量sgd是顺序的训练过程。相应地,使用小批量sgd来训练深度学习机很难在多个计算设备上实现并行化。此外,虽然诸如异步sgd和模型平均这样的技术可以使训练在多个计算节点上实现并行化成为可能,但是利用这样的技术训练的深度学习机产生的结果通常劣于利用小批量sgd产生的结果。
技术实现要素:
本公开的实施例提供了用于训练学习机的方法和装置,其可以加速学习机的训练和提高学习机的准确度。
按照本公开的一个实施例,用于训练学习机的方法可以包括向多个工作节点广播针对一训练周期的初始全局模型。所述方法还可以包括从所述多个工作节点接收多个更新的局部模型,其中,每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的所述初始全局模型而独立地生成的。所述方法还可以包括聚合所述多个更新的局部模型以获得聚合模型。所述方法还可以包括至少基于所述聚合模型和从在前的训练周期获得的历史信息来生成针对所述训练周期的更新的全局模型。
按照本公开的一个实施例,用于训练学习机的装置可以包括广播模块,其用于向多个工作节点广播针对一训练周期的初始全局模型。所述装置还可以包括接收模块,其用于从所述多个工作节点接收多个更新的局部模型,其中,每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的所述初始全局模型而独立地生成的。所述装置还可以包括聚合模块,其用于聚合所述多个更新的局部模型以获得聚合模型。所述装置还可以包括生成模块,其用于至少基于所述聚合模型和从在前的训练周期获得的历史信息来生成针对所述训练周期的更新的全局模型。
附图简述
从以下结合附图提供的详细描述中,本公开的特征、特性和优点将变得更加显而易见,其中,在不同的图中相同的附图标记的使用表示类似或相同的项目。
图1举例说明了按照本公开的一个实施例的用于训练学习机的示例系统。
图2举例说明了按照本公开的一个实施例的用于训练学习机的示例方法。
图3举例说明了按照本公开的一个实施例的用于训练学习机的方法。
图4举例说明了按照本公开的一个实施例的用于训练学习机的装置。
图5举例说明了按照本公开的一个实施例的用于训练学习机的设备。
详细描述
在下面的描述中,出于解释的目的,许多具体的细节被阐述以便提供对一个或多个实施例的透彻理解。但是,显然这样的实施例可以在没有这些具体的细节的情况下被实施。在其它示例中,没有详细地举例说明或描述公知的方法、过程、组件和电路,以便不模糊特定的实施例。
本公开的各个实施例提供了用于训练学习机的技术,其可以加速学习机的训练和提高学习机的准确度(例如,分类器的识别准确度、回归机的回归准确度、比较器的相似度得分等)。学习机可以是任何类型的学习机,包括深度学习机(例如,dnn、cnn、rnn等)、浅层学习机(例如,支持向量机(svm)、提升(boosting)机、对数回归机等)等。
图1举例说明了按照本公开的一个实施例的用于训练学习机的示例系统。示例系统10可以包括多个计算设备20和一个或多个存储设备30。计算设备20可以耦合到一个或多个存储设备30。在一个方面,计算设备20和存储设备30可以被配置成单个计算机系统,或者计算机集群,或者在云计算基础结构中使用的其它架构。
在一个方面,计算设备20可以包括通用计算机,诸如台式计算机、平板计算机、笔记本计算机、服务器等。在另一个方面,计算设备20可以包括智能手机、游戏机或任何其它电子设备。在又一个方面,计算设备20可以包括各种处理器,诸如中央处理单元(cpu)、图形处理单元(gpu)、其它类型处理器或者以上的任何的组合。
在一个方面,计算设备20的其中之一可以充当主节点21,而其它的计算设备20可以充当工作节点22(1)-22(n),其中,n是正整数并且表示工作节点的数目。主节点21可以控制工作节点22(1)-22(n),工作节点22(1)-22(n)可以处理数据。在另一个方面,充当主节点21的那个计算设备也可以充当一个工作节点。在一个方面,主节点21可以经由任何无线和/或有线的通信技术与工作节点22(1)-22(n)通信。
该一个或多个存储设备30可以存储训练数据40。在一个方面,在语音识别的场景下,训练数据40可以是包括来自人类说话者的语音样本集合的语音库。例如,该语音库可以包括从美国和加拿大中的北美英语说话者收集的北美英语语音样本、从中国内的中文说话者收集的中文语音样本等。在其它方面,训练数据40可以包括图像、手写样本和/或其它数据。
图2举例说明了按照本公开的一个实施例的用于训练学习机的示例方法。下面将结合图1中所示出的示例系统10来描述图2中所示出的示例方法。
在方框202,例如主节点21可以将一个或多个存储设备30中存储的训练数据40划分为m个数据块。该m个数据块的每一个进一步被划分为n’个数据片,每一个数据片包括多个小批量数据,其中m和n’是正整数。在一个方面,该m个数据块相互之间不重叠,以及,每一个数据块的n’个数据片相互之间也不重叠。在这个实施例中,n’等于n,如上所描述的,n是工作节点的数目。取决于所使用的学习机的训练策略的性质,对于给定的系统,可以视情况而定地以帧、组块或序列的级别来划分训练数据40。
在方框204,主节点21可以例如在包括m’个训练周期(每一个训练周期使用该m个数据块中的一个数据块来训练学习机)的训练迭代之前,向工作节点22(1)-22(n)中的每一个工作节点发送训练数据40中被分配给该工作节点用于该训练迭代的m’个数据片,其中,m’是大于1的整数。在这个实施例中,m’等于m。
例如,如果训练数据40的第一个数据块中所包括的数据片p1被分配给特定工作节点22(i)用于该训练迭代的第一个训练周期,训练数据40的第二个数据块中所包括的数据片p2被分配给该特定工作节点22(i)用于该训练迭代的第二个训练周期,…,训练数据40的第(m’-1)个数据块中所包括的数据片pm’-1被分配给该特定工作节点22(i)用于该训练迭代的第(m’-1)个训练周期,以及,训练数据40的第m’数据块中所包括的数据片pm’被分配给该特定工作节点22(i)用于该训练迭代的第m’个训练周期,则主节点21可以在该训练迭代之前将数据片p1、p2、…、pm’-1和pm’提供给该特定工作节点22(i)。
在一个方面,将数据片提供给工作节点22(1)-22(n)可以按照以下方式来实现:主节点21可以从该一个或多个存储设备30获取被分配给工作节点22(1)-22(n)中的每一个工作节点的m’个数据片,以及,将所获取的m’个数据片发送给对应的工作节点。在另一个方面,将数据片提供给工作节点22(1)-22(n)可以按照以下方式来实现:主节点21可以获取关于被分配给工作节点22(1)-22(n)中的每一个工作节点的m’个数据片的信息,以及,将所获取的信息发送给对应的工作节点,以便工作节点22(1)-22(n)中的每一个工作节点可以基于从主节点21接收到的该信息从该一个或多个存储设备30获取被分配给该工作节点的m’个数据片。
在方框206,主节点21可以在该训练迭代的训练周期t(在下文,训练周期t也被表示为训练周期tc)中,向工作节点22(1)-22(n)广播针对训练周期tc的初始全局模型wg(t-1)。
在方框208,工作节点22(1)-22(n)中的每一个工作节点可以基于从主节点21接收的初始全局模型wg(t-1)和被分配给该工作节点用于训练周期tc的数据片来独立地生成更新的局部模型。这里,被分配给工作节点22(1)-22(n)用于训练周期tc的数据片来自训练数据40中用于训练周期tc的数据块。在一个方面,工作节点22(1)-22(n)中的每一个工作节点从主节点21接收到的初始全局模型可以被用作将要在该工作节点中被更新的初始局部模型。
在一个方面,工作节点22(1)-22(n)中的每一个工作节点可以通过使用利用动量手段(momentumtrick)的一个横扫(one-sweep)的小批量sgd来独立地生成更新的局部模型。例如,假设被分配给工作节点22(1)-22(n)中的工作节点22(k)用于训练周期tc的数据片dtk可以包括τ个小批量数据,其中τ是正整数,以及,wk(t,ρ)可以表示在数据片dtk的ρ个小批量数据已经在工作节点22(k)上被处理之后的微调局部模型,其中ρ是不大于τ的正整数,那么wk(t,ρ)可以通过下面的等式(2)进行计算:
其中ε、γ可以分别表示动量和学习速率;g(k,t,ρ)可以表示数据片dtk的第ρ个小批量数据的梯度;以及,vk(t,ρ)可以表示在数据片dtk的第ρ个小批量数据被处理之后在工作节点22(k)上的局部模型更新。在数据片dtk的所有τ个小批量数据已经在工作节点22(k)上被处理之后的微调局部模型wk(t,τ)就是工作节点22(k)生成的更新的局部模型。
在其它方面,工作节点22(1)-22(n)中的每一个工作节点可以通过诸如自然梯度sgd、异步sgd等的其它算法,基于针对训练周期tc的初始全局模型wg(t-1)和被分配给该工作节点用于训练周期tc的数据片来独立地生成更新的局部模型。
在方框210,工作节点22(1)-22(n)中的每一个工作节点可以将其已经生成的更新的局部模型发送给主节点21。
在方框212,主节点21可以从工作节点22(1)-22(n)接收n个更新的局部模型。
在方框214,主节点21可以聚合该n个更新的局部模型以获得被表示为
在一个方面,聚合该n个更新的局部模型可以包括通过使用下面的等式(3)来对该n个更新的局部模型求平均以获得聚合模型
在其它方面,聚合该n个更新的局部模型可以通过任何其它合适的算法来实现。
在方框216,主节点21可以通过使用聚合模型
第一全局模型更新g(t)是由用于训练周期tc的一个数据块导致的模型更新,该一个数据块包括n’个数据片,每一个数据片在一个工作节点上被处理。
在方框218,主节点21可以通过使用第一全局模型更新g(t)和从在训练周期tc之前的训练周期t-1获得的历史信息来确定针对训练周期tc的第二全局模型更新。在下文,训练周期t-1也被表示为在前的训练周期pc。
在一个方面,针对训练周期tc的第二全局模型更新被表示为δ(t),其可以通过下面的等式(5)来生成:
δ(t)=ηt·δ(t-1)+ζt·g(t),0<ηt<1,ζt>0(5)
其中δ(t-1)是针对在前的训练周期pc的第二全局模型更新,在本公开的一个方面,针对在前的训练周期pc的第二全局模型更新可以表示从在前的训练周期pc获得的历史信息;ηt是针对训练周期tc的块动量;以及,ζt是针对训练周期tc的块学习速率。可以理解,在一个方面,针对训练周期tc的第二全局模型更新δ(t)可以表示从训练周期tc获取的历史信息,其可以被用于在训练周期tc之后的一个或多个训练周期中。
在一个方面,ζt可以近似等于1,和/或,如果该训练迭代中的训练周期的数目小,则ηt可以被设置为相对小。例如,如果该训练迭代中的训练周期的数目大于预定义的阈值,则ηt可以近似等于
在一个方面,ζt可以对于不同的训练周期具有相同的值,和/或,ηt可以对于不同的训练周期具有相同的值。在另一个方面,ζt可以对于不同的训练周期具有不同的值,和/或,ηt可以对于不同的训练周期具有不同的值。
在方框220,主节点21可以通过使用针对在前的训练周期pc的更新的全局模型和针对训练周期tc的第二全局模型更新,来生成针对训练周期tc的更新的全局模型。在一个方面,针对训练周期tc的更新的全局模型w(t)可以通过下面的等式(6)生成:
w(t)=w(t-1)+δ(t)(6)
其中w(t-1)表示针对在前的训练周期pc的更新的全局模型。
在方框222,主节点21可以生成针对在训练周期tc之后的训练周期t+1的初始全局模型wg(t)。在下文,训练周期t+1也被表示为在后的训练周期fc。针对在后的训练周期fc的初始全局模型wg(t)将在在后的训练周期fc中由主节点21广播给工作节点22(1)-22(n)。
在一个方面,可以基于针对训练周期tc的更新的全局模型来生成针对在后的训练周期fc的初始全局模型wg(t)。例如,针对在后的训练周期fc的初始全局模型wg(t)可以就是针对训练周期tc的更新的全局模型。即,针对在后的训练周期fc的初始全局模型wg(t)可以通过下面的等式(7)计算。
wg(t)=w(t)(7)
在另一个方面,可以基于针对训练周期tc的更新的全局模型和从训练周期tc获取的历史信息来生成针对在后的训练周期fc的初始全局模型wg(t)。例如,可以通过下面的等式(8)基于针对训练周期tc的更新的全局模型和针对训练周期tc的第二全局模型更新来生成针对在后的训练周期fc的初始全局模型wg(t):
wg(t)=w(t)+ηt+1·δ(t)(8)
其中ηt+1是针对在后的训练周期fc的块动量。
基于上面的描述可以理解,针对训练周期tc的初始全局模型wg(t-1)可以基于针对在前的训练周期pc的更新的全局模型来生成,或者,其可以基于针对在前的训练周期pc的更新的全局模型和从在前的训练周期pc获取的历史信息来生成。例如,基于等式(7)和(8)可以理解,针对训练周期tc的初始全局模型wg(t-1)可以就是针对在前的训练周期pc的更新的全局模型,或者,其可以基于针对在前的训练周期pc的更新的全局模型和针对在前的训练周期pc的第二全局模型更新来生成。
在一个方面,重复方框206-222直到完成该训练迭代的m’个训练周期。在该训练迭代的m’个训练周期被完成之后,主节点21可以确定停止准则是否被满足。如果确定停止准则被满足,则针对该训练迭代的最后一个训练周期的更新的全局模型被用作学习机的最终全局模型w(t)。如果确定停止准则没有被满足,则开始包括m’个训练周期的另一个训练迭代以继续训练学习机。
方框206-214的组合可以实现块内并行优化,其使用多个工作节点22(1)-22(n)来并行处理数据,从而加速学习机的训练。鉴于等式(5)通过利用来自在前的训练周期pc的历史信息过滤第一全局模型更新来生成针对训练周期tc的第二全局模型更新,该等式(5)可以被看作是在进行按块模型更新滤波(bmuf)。第一全局模型更新是由单个数据块导致的模型更新,其通常具有噪声。利用来自在前的训练周期pc的历史信息来过滤掉第一全局模型更新的噪声分量,可用来帮助平稳学习过程。结果是,与利用小批量sgd所训练的学习机相比,基于本公开所训练的学习机的准确度几乎没有遭受降级。另一方面,与基于本公开所训练的学习机相比,基于未使用历史信息的简单模型平均所训练的学习机的准确度尤其当利用更多并行的工作节点时遭受显著的降级。
本领域技术人员将理解,虽然在上面的实施例中,由主节点21进行训练数据40的划分,但是本公开不局限于此。在本公开的其它实施例中,也可以在训练学习机之前由其它合适的设备进行训练数据40的划分。
本领域技术人员将理解,虽然在上面的实施例中,从训练周期tc生成的历史信息是针对训练周期tc的第二全局模型更新,但是本公开并不局限于此。例如,在本公开的一个实施例中,可以基于包括但不局限于针对训练周期tc的第二全局模型更新的信息来生成来自训练周期tc的历史信息。例如,可以基于针对训练周期tc的第二全局模型更新和针对在训练周期tc之前的一个或多个训练周期的第二全局模型更新,生成来自训练周期tc的历史信息。
本领域技术人员将理解,虽然在上面的实施例中,在训练迭代之前将训练数据40中被分配给工作节点22(1)-22(n)中的每一个工作节点用于该训练迭代的数据片提供给该工作节点,但是本公开并不局限于此。在本公开的其它实施例中,在训练迭代的任意特定训练周期期间,由主节点21将训练数据40中被分配给工作节点22(1)-22(n)中的每一个工作节点用于该特定训练周期的数据片提供给该工作节点。
本领域技术人员也将理解,虽然在上面的实施例中,在训练周期tc中生成针对在后的训练周期fc的初始全局模型,但是本公开并不局限于此。在本公开的其它实施例中,例如,可以在一个训练周期的开始处生成针对该训练周期的初始全局模型。
本领域技术人员也将理解,虽然在上面的实施例中,n’等于n并且m’等于m,但是本公开并不局限于此。在本公开的其它实施例中,n’可以不同于n和/或m’可以不同于m。例如,n’可以等于2n以便每一个工作节点可以在一个训练周期中处理两个数据片。
图3举例说明了按照本公开的一个实施例的用于训练学习机的方法。作为例子,图3中所示出的方法300可以由主节点21实现。
方法300可以包括,在方框302,向多个工作节点广播针对一训练周期的初始全局模型。方法300还可以包括,在方框304,从所述多个工作节点接收多个更新的局部模型,其中每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的初始全局模型独立地生成的。方法300还可以包括,在方框306,聚合所述多个更新的局部模型以获得聚合模型。方法300还可以包括,在方框308,至少基于所述聚合模型和从在前的训练周期获取的历史信息来生成针对所述训练周期的更新的全局模型。
在第一方面,方框308可以包括方框310,其中基于所述聚合模型和针对所述训练周期的所述初始全局模型来确定第一全局模型更新。方框308还可以包括方框312,其中基于来自所述在前的训练周期的所述历史信息和所述第一全局模型更新来确定第二全局模型更新。方框308还可以包括方框314,其中基于针对所述在前的训练周期的更新的全局模型和所述第二全局模型更新来生成针对所述训练周期的所述更新的全局模型。
在第二方面,针对所述训练周期的所述初始全局模型可以是针对所述在前的训练周期的更新的全局模型。
在第三方面,可以基于针对所述在前的训练周期的更新的全局模型和来自所述在前的训练周期的所述历史信息来确定针对所述训练周期的所述初始全局模型。
在第四方面,每一个更新的局部模型可以是利用以下算法中的一个生成的:利用动量手段的一个横扫的小批量随机梯度下降(sgd)、自然梯度sgd和异步sgd(asgd)。
在第五方面,方法300还可以包括,在方框316,基于所述第二全局模型更新来生成来自所述训练周期的历史信息。
在第六方面,来自所述训练周期的历史信息δ(t)可以利用以下等式生成:
δ(t)=ηt·δ(t-1)+ζt·g(t),0<ηt<1,ζt>0,
其中δ(t-1)表示来自所述在前的训练周期的所述历史信息;
在第七方面,ζt可以近似等于1。
在第八方面,如果训练迭代中的训练周期的数目小,则ηt可以被设置为相对小。
在第九方面,方框306可以进一步包括对所述多个更新的局部模型求平均以获得所述聚合模型。
在第十方面,方法300还可以包括,在方框318,在包括m’个训练周期的训练迭代之前,向每一个工作节点提供被分配给该工作节点用于所述训练迭代的m’个数据片,其中m’是大于1的整数。
图4举例说明了按照本公开的一个实施例的用于训练学习机的装置。
装置400可以包括广播模块402、接收模块404、聚合模块406和生成模块408。广播模块402可以被配置为向多个工作节点广播针对一训练周期的初始全局模型。接收模块404可以被配置为从所述多个工作节点接收多个更新的局部模型,其中每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的所述初始全局模型独立地生成的。聚合模块406可以被配置为聚合所述多个更新的局部模型以获取聚合模型。生成模块408可以被配置为至少基于所述聚合模型和从在前的训练周期获取的历史信息来生成针对所述训练周期的更新的全局模型。
在第一方面,生成模块408可以包括第一确定模块410、第二确定模块412和获取模块414。第一确定模块410可以被配置为基于所述聚合模型和针对所述训练周期的所述初始全局模型来确定第一全局模型更新。第二确定模块412可以被配置为基于来自所述在前的训练周期的所述历史信息和所述第一全局模型更新来确定第二全局模型更新。获取模块414可以被配置为基于针对所述在前的训练周期的更新的全局模型和所述第二全局模型更新来生成针对所述训练周期的所述更新的全局模型。
在第二方面,针对所述训练周期的所述初始全局模型可以是针对所述在前的训练周期的更新的全局模型。
在第三方面,可以基于针对所述在前的训练周期的更新的全局模型和来自所述在前的训练周期的所述历史信息来确定针对所述训练周期的所述初始全局模型。
在第四方面,每一个更新的局部模型是利用以下算法中的一个生成的:利用动量手段的一个横扫的小批量随机梯度下降(sgd)、自然梯度sgd和异步sgd(asgd)。
在第五方面,装置400还可以包括:第二生成模块416,用于基于所述第二全局模型更新来生成来自所述训练周期的历史信息。
在第六方面,来自所述训练周期的历史信息δ(t)可以利用以下等式生成:
δ(t)=ηt·δ(t-1)+ζt·g(t),0<ηt<1,ζt>0,
其中δ(t-1)表示来自所述在前的训练周期的所述历史信息;
在第七方面,ζt可以近似等于1。
在第八方面,如果训练迭代中的训练周期的数目小,则ηt可以被设置为相对小。
在第九方面,聚合模块406可以进一步被配置为:对所述多个更新的局部模型求平均以获得所述聚合模型。
在第十方面,装置400还可以包括提供模块418,用于在包括m’个训练周期的训练迭代之前,向每一个工作节点提供被分配给该工作节点用于所述训练迭代的m’个数据片,其中m’是大于1的整数。
图4中的各个模块可以实现成电子硬件、计算机软件、或者二者的组合。为了清楚地说明硬件和软件之间的这种可交换性,上面已经围绕其功能总体地描述了这些模块。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和向整个系统施加的设计约束。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
可以利用实现这里所描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件、或者它们的任意组合,来实现或执行图4中的各个模块。通用处理器可以是微处理器,或者,该处理器可以是任何常规的处理器、控制器、微控制器、或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、结合有dsp核的一个或多个微处理器,或者任何其它这类配置。
图5举例说明了按照本公开的一个实施例的用于训练学习机的设备。图5中示出的设备500例如可以实现主节点21。
设备500可以包括一个或多个处理器510以及用于存储计算机可执行指令的存储器520,所述计算机可执行指令当被执行时使得所述一个或多个处理器510实现方法300中所包括的操作。在一个方面,装置400中所包括的模块可以实现为存储器520中所存储的计算机可执行指令。
本公开的实施例还可以提供计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令可执行以使得一个或多个处理器实现方法300中所包括的操作。在一个方面,装置400中所包括的模块可以实现为所述计算机可读介质上的计算机可执行指令。
本公开的实施例可以提供一种用于训练学习机的方法。所述方法可以包括:向多个工作节点广播针对一训练周期的初始全局模型;从所述多个工作节点接收多个更新的局部模型,其中每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的所述初始全局模型独立地生成的;聚合所述多个更新的局部模型以获取聚合模型;以及,至少基于所述聚合模型和从在前的训练周期获取的历史信息来生成针对所述训练周期的更新的全局模型。
在一个方面,生成针对所述训练周期的更新的全局模型可以进一步包括:基于所述聚合模型和针对所述训练周期的所述初始全局模型来确定第一全局模型更新;基于来自所述在前的训练周期的所述历史信息和所述第一全局模型更新来确定第二全局模型更新;以及,基于针对所述在前的训练周期的更新的全局模型和所述第二全局模型更新来生成针对所述训练周期的所述更新的全局模型。
在一个方面,针对所述训练周期的所述初始全局模型是针对所述在前的训练周期的更新的全局模型;或者,针对所述训练周期的所述初始全局模型是基于针对所述在前的训练周期的更新的全局模型和来自所述在前的训练周期的所述历史信息确定的。
在一个方面,每一个更新的局部模型是利用以下算法中的一个生成的:利用动量手段的一个横扫的小批量随机梯度下降(sgd)、自然梯度sgd和异步sgd(asgd)。
在一个方面,所述方法还可以包括:基于所述第二全局模型更新来生成来自所述训练周期的历史信息。
在一个方面,来自所述训练周期的所述历史信息δ(t)利用以下等式生成:
δ(t)=ηt·δ(t-1)+ζt·g(t),0<ηt<1,ζt>0,
其中δ(t-1)表示来自所述在前的训练周期的所述历史信息;
在一个方面,ζt近似等于1。
在一个方面,如果训练迭代中的训练周期的数目小,则ηt被设置为相对小。
在一个方面,聚合所述多个更新的局部模型可以进一步包括:对所述多个更新的局部模型求平均以获取所述聚合模型。
在一个方面,所述方法还可以包括:在包括m’个训练周期的训练迭代之前,向每一个工作节点提供被分配给该工作节点用于所述训练迭代的m’个数据片,其中m’是大于1的整数。
本公开的实施例可以提供一种用于训练学习机的装置。所述装置可以包括:广播模块,用于向多个工作节点广播针对一训练周期的初始全局模型;接收模块,用于从所述多个工作节点接收多个更新的局部模型,其中每一个更新的局部模型是由所述多个工作节点中的一个工作节点基于被分配给该工作节点的数据片和针对所述训练周期的所述初始全局模型独立地生成的;聚合模块,用于聚合所述多个更新的局部模型以获取聚合模型;以及,生成模块,用于至少基于所述聚合模型和从在前的训练周期获取的历史信息来生成针对所述训练周期的更新的全局模型。
在一个方面,所述生成模块可以进一步被配置为:基于所述聚合模型和针对所述训练周期的所述初始全局模型来确定第一全局模型更新;基于来自所述在前的训练周期的所述历史信息和所述第一全局模型更新来确定第二全局模型更新;以及,基于针对所述在前的训练周期的更新的全局模型和所述第二全局模型更新来生成针对所述训练周期的所述更新的全局模型。
在一个方面,针对所述训练周期的所述初始全局模型是针对所述在前的训练周期的更新的全局模型;或者,针对所述训练周期的所述初始全局模型是基于针对所述在前的训练周期的更新的全局模型和来自所述在前的训练周期的所述历史信息确定的。
在一个方面,所述装置还可以包括:用于基于所述第二全局模型更新来生成来自所述训练周期的历史信息的模块。
在一个方面,来自所述训练周期的所述历史信息δ(t)利用以下等式生成:
δ(t)=ηt·δ(t-1)+ζt·g(t),0<ηt<1,ζt>0,
其中δ(t-1)表示来自所述在前的训练周期的所述历史信息;
在一个方面,ζt近似等于1。
在一个方面,如果训练迭代中的训练周期的数目小,则ηt被设置为相对小。
在一个方面,所述聚合模块进一步被配置为对所述多个更新的局部模型求平均以获取所述聚合模型。
本公开的实施例可以提供一种用于训练学习机的设备。所述设备可以包括:一个或多个处理器;以及,存储器,其存储计算机可执行指令,所述计算机可执行指令当被执行时使得所述一个或多个处理器实现用于训练学习机的前述方法的操作。
本公开的实施例可以提供一种系统。所述系统可以包括:一个或多个存储设备,用于存储用于训练学习机的训练数据;多个工作节点;以及,主节点,用于实现用于训练学习机的前述方法的操作。
虽然已经以专用于结构特征和/或方法操作的语言描述了各个实施例,但是后面所附的表示中定义的主题并不必须局限于所描述的具体特征或操作。相反,这些具体特征和操作被公开作为实现所请求保护的主题的示例方式。