当前位置: 首页 > 专利查询>中山大学专利>正文

一种分布式深度学习的参数更新优化系统技术方案

技术编号:19489043 阅读:36 留言:0更新日期:2018-11-17 12:01
本发明专利技术涉及一种分布式深度学习的参数更新优化系统;在参数更新部分对参数进行了版本控制,在参数服务器端和工作节点上都增加了参数的版本号,当前的工作节点拉取最新版本的参数进行训练跟梯度计算后,参数服务器会根据两个版本号的差值作为此工作节点此次迭代的梯度陈旧度σi,l,然后将梯度乘以

【技术实现步骤摘要】
一种分布式深度学习的参数更新优化系统
本专利技术涉及深度学习的
,特别涉及一种分布式深度学习的参数更新优化系统。
技术介绍
目前,深度学习成为了机器学习领域的一个新兴研究方向,深度学习是一种高效的特征提取方法,能够提取数据中更加抽象的特征,对数据具有更强的模型泛化能力,由于数据集和神经网络模型层数的增加,开始抛弃单节点这种耗时和受内存限制的训练方法,开始使用大规模的分布式集群进行训练,从而诞生了一种参数服务器的角色。参数服务器的出现将根据梯度更新参数的部分由工作节点剥离到参数服务器上进行,有效的提高了训练速度,解决了工作节点参数存储空间不够等问题。根据并行策略的不同,有两种分布式训练的方法,一种是数据并行,一种为模型并行。在数据并行策略下,训练集会被进行划分,不同的节点含有同一个模型的多个副本,仅对分配到的部分数据集进行训练。利用参数服务器实现的数据并行有同步和异步之分,如果采用同步通信模式,所有的工作节点在同时训练完一个批次的数据后,需要对梯度进行聚合平均,并更新训练参数,然后拉取新的参数进行下一个批次的训练,这种通信模式会因为其中某些性能较差的节点影响整体的训练进度,产生木桶效应。然而另外一种异步通信模式的提出克服了这种缺点,它允许工作节点每完成一个批次的训练,就立即将梯度发给参数服务器进行参数更新,不需要等待其余的工作节点训练完,大大提高了训练的效率。不过这种异步更新的模式没有考虑到集群环境下机器性能的差异问题,不同工作节点计算和传递梯度的时间不一致,梯度所拥有的价值也不一样。在一个工作节点拉取参数进行计算的过程中,参数服务器上的参数可能已经收到其他工作节点发来的梯度进行了更新,产生梯度延迟的现象,从而导致整个模型的收敛性变差,甚至不收敛。
技术实现思路
本专利技术为解决上述的一种或多种不足,提供一种分布式深度学习的参数更新优化系统。为解决上述技术问题,本专利技术采用的技术方案是:一种分布式深度学习的参数更新优化系统,包括一个多个参数服务器节点和多个工作节点,包括以下步骤:S1.每个工作节点读入本地的一批训练数据至内存;S2.工作节点根据用户规定好的模型结构,随机初始化各层参数,并记录当前参数版本为θ1=0,参数服务器设置参数版本号为θ2=0。S3.工作节点根据读入的样本数据及对应的期望输出,进行前向传播,最后得到模型的输出值;其中,各工作节点互不影响,独立计算。S4.工作节点根据前向传播的模型输出与样本数据的期望输出的误差得到损失值Loss,根据损失值Loss进行反向传播,逐层计算参数梯度υ。S5.工作节点将计算完的梯度以及当前使用的参数版本号发回至参数服务器,参数服务器每收到一个工作节点传来的梯度就将参数版本号加1,即θ2=θ2+1;S6.参数服务器对θ2进行判断,如果θ2等于T,表明全部工作节点已经执行T此迭代,则采用同步的聚合平均方式,等待所有工作节点完成自己本轮的迭代后,汇总平均梯度值,将平均梯度值与参数相加得到新的参数;如果θ2小于T,根据公式w=w+λ*υ更新参数,其中λ为梯度陈旧度,λ=1/(θ2-θ1);S7.工作节点从参数服务器上拉取新的参数以及版本号,将本地的参数版本号更新,即θ1=θ2,继续读入下一批数据进行新一轮训练;其中,θ1:工作节点的参数版本号;θ2:参数服务器的参数版本号;υ:工作节点计算出的梯度;w:模型参数;λ:梯度陈旧度;T:强制同步间隔。在上述方案中,在参数更新部分对参数进行了版本控制,在参数服务器端和工作节点上都增加了参数的版本号,当前的工作节点拉取最新版本的参数进行训练跟梯度计算后,参数服务器会根据两个版本号的差值作为此工作节点此次迭代的梯度陈旧度λ,然后将梯度乘以λ对参数进行更新;进一步的设定一个强制同步的迭代次数T,每个工作节点在进行T次迭代后会强制同步一次,两种机制相结合来改善梯度陈旧导致的收敛性差的问题。优选的,所述的参数服务器负责参数的存储和更新,共同维护全局共享的模型参数,可由用户设置为一个或多个。优选的,所述的工作节点保留部分训练数据,并执行计算,设有多个。优选的,所述的参数服务器的工作流程具体如下:a.设置最初的参数版本号θ2=0;b.接收工作节点发来的梯度v以及工作节点使用的参数版本号θ1;c.更新参数版本号θ2=θ2+1;d.判断θ2<强制同步间隔T是否成立;若成立,则进行步骤e,否则进行步骤g;e.计算梯度陈旧度为λ=1/(θ2-θ1);f.利用梯度来更新参数w=w+λ*υ,结束操作;g.使用同步策略更新参数,得到所有工作节点的平均梯度a;h.利用平均梯度来更新参数w=w+a,结束操作。优选的,所述的工作节点的工作流程如下:(1)各工作节点读取一批数据;(2)判断是否是第一次迭代;若是则进行步骤(3),否则进行步骤(4);(3)初始化模型参数,并设置当前参数版本号为θ1=0;(4)从参数服务器拉取最新的参数,更新参数版本号θ1=θ2;(5)根据前向传播算出损失值Loss;(6)根据后向传播计算梯度;(7)将梯度和参数版本号θ1=发送给参数服务器;(8)根据参数服务器对收到的梯度进行参数更新;(9)判断本地是否存在还未训练的数据分片;若是则进行步骤(1),否则结束操作。与现有技术相比,本专利技术的有益效果是:1、技术手段:对现有单步的异步训练过程进行了改进,利用参数版本号作为梯度陈旧度;优点:减弱现实集群中机器性能差异带来的梯度值过时的问题,使得模型收敛的性能大大增强;2、技术手段:引入了强制同步机制,即同步和异步训练交替执行,同步间隔可自己定义;优点:既能保留异步训练的并行模式带来的高数据吞吐量,使得工作节点能把更多的时间用于数据计算,而不是等待参数平均步骤的完成,又能通过间歇性同步使得整个模型的训练趋势朝更好的方向发展。附图说明图1是本专利技术一种分布式深度学习的参数更新优化系统的示意图图;图2是本专利技术参数服务器流程示意图;图3是本专利技术工作节点流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清除、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施说例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种分布式深度学习的参数更新优化系统,包括一个多个参数服务器节点和多个工作节点,其示意图如图1所示:包括以下步骤:S1.每个工作节点读入本地的一批训练数据至内存;S2.工作节点根据用户规定好的模型结构,随机初始化各层参数,并记录当前参数版本为θ1=0,参数服务器设置参数版本号为θ2=0。S3.工作节点根据读入的样本数据及对应的期望输出,进行前向传播,最后得到模型的输出值;其中,各工作节点互不影响,独立计算。S4.工作节点根据前向传播的模型输出与样本数据的期望输出的误差得到损失值Loss,根据损失值Loss进行反向传播,逐层计算参数梯度υ。S5.工作节点将计算完的梯度以及当前使用的参数版本号发回至参数服务器,参数服务器每收到一个工作节点传来的梯度就将参数版本号加1,即θ2=θ2+1;S6.参数服务器对θ2进行判断,如果θ2等于T,表明全部工作节点已经执行T此迭代,则采用同步的聚合平均方式,等待所有工本文档来自技高网
...

【技术保护点】
1.一种分布式深度学习的参数更新优化系统,包括一个或多个参数服务器节点和多个工作节点,其特征在于:该系统的国内工作过程包括以下步骤:S1.工作节点根据用户规定好的模型结构,随机初始化各层参数,并记录当前参数版本为θl=0,l的取值范围为(0,λ),参数服务器设置参数版本号为θ0=0,并根据用户定义将强制同步间隔值T初始化为一常量值;S2.每个工作节点读入本地的一批训练数据至内存;S3.工作节点根据读入的样本数据及对应的期望输出,进行前向传播,最后得到模型的输出值;其中,各工作节点互不影响,独立计算;S4.工作节点根据前向传播的模型输出与样本数据的期望输出的误差得到损失函数值Loss,根据损失函数值Loss进行反向传播,逐层计算参数梯度ΔWl;S5.工作节点将计算完的梯度ΔWl以及当前使用的参数版本号θl发回至参数服务器,等待参数服务器对参数进行更新。参数服务器每收到一个工作节点传来的梯度就将参数版本号加1,即θ0=θ0+1;S6.参数服务器对θ0进行判断,如果θ0%T不为0,参数更新使用梯度加权方式,用以下公式(1.1)定义此工作节点发来的梯度的陈旧度:σi,l=θl‑θ0    (1.1)然后利用公式(1.2)更新全局参数...

【技术特征摘要】
1.一种分布式深度学习的参数更新优化系统,包括一个或多个参数服务器节点和多个工作节点,其特征在于:该系统的国内工作过程包括以下步骤:S1.工作节点根据用户规定好的模型结构,随机初始化各层参数,并记录当前参数版本为θl=0,l的取值范围为(0,λ),参数服务器设置参数版本号为θ0=0,并根据用户定义将强制同步间隔值T初始化为一常量值;S2.每个工作节点读入本地的一批训练数据至内存;S3.工作节点根据读入的样本数据及对应的期望输出,进行前向传播,最后得到模型的输出值;其中,各工作节点互不影响,独立计算;S4.工作节点根据前向传播的模型输出与样本数据的期望输出的误差得到损失函数值Loss,根据损失函数值Loss进行反向传播,逐层计算参数梯度ΔWl;S5.工作节点将计算完的梯度ΔWl以及当前使用的参数版本号θl发回至参数服务器,等待参数服务器对参数进行更新。参数服务器每收到一个工作节点传来的梯度就将参数版本号加1,即θ0=θ0+1;S6.参数服务器对θ0进行判断,如果θ0%T不为0,参数更新使用梯度加权方式,用以下公式(1.1)定义此工作节点发来的梯度的陈旧度:σi,l=θl-θ0(1.1)然后利用公式(1.2)更新全局参数如果(θ0%T)==0,则表明当前所有工作节点的已经一共进行了T次异步更新操作,需要进行强制同步,参数更新办法利用公式(1.3)进行聚合平均。其中,各参数含义如下S7.参数服务器更新完全局参数后,工作节点从参数服务器拉取最新的参数以及版本号,并更新本地的参数版本号θl=θ0。参数服务器等待接收下一个梯度。2.根据权利要求1所述的分布式深度学习的参数更...

【专利技术属性】
技术研发人员:叶彦李欣鑫吴维刚
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1