[发明专利]基于滑动窗口采样的分布式机器学习训练方法及其系统在审
申请号: | 201710009638.5 | 申请日: | 2017-01-06 |
公开(公告)号: | CN106779093A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 田乔;许春玲;李明齐 | 申请(专利权)人: | 中国科学院上海高等研究院 |
主分类号: | G06N99/00 | 分类号: | G06N99/00 |
代理公司: | 上海光华专利事务所31219 | 代理人: | 王华英 |
地址: | 201210 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 滑动 窗口 采样 分布式 机器 学习 训练 方法 及其 系统 | ||
技术领域
本发明涉及大规模机器分布式训练,特别是涉及一种基于滑动窗口采样的分布式机器学习训练方法及其系统。
背景技术
在大数据集上进行训练的现代神经网络架构可以跨广泛的多种领域获取可观的结果,领域涵盖从语音和图像认知、自然语言处理、到业界关注的诸如欺诈检测和推荐系统这样的应用等各个方面。但是训练这些神经网络模型在计算上有严格要求,尽管近些年来GPU硬件、网络架构和训练方法上均取得了重大的进步,但事实是在单一机器上,网络训练所需要的时间仍然长得不切实际。幸运的是,我们不仅限于单个机器:大量工作和研究已经使有效的神经网络分布式训练成为了可能。分布式训练中的数据并行方法在每一个worker machine上都有一套完整的模型,但分别对训练数据集的不同子集进行处理。数据并行毫无争议是分布式系统中最适的方法,而且也一直是更多研究的焦点。在数据并行(data parallelism)中,不同的机器有着整个模型的完全拷贝;每个机器只获得整个数据的不同部分。计算的结果通过某些方法结合起来。数据并行训练方法均需要一些整合结果和在各工作器(worker)间同步模型参数的方法。现有的分布式机器学习训练方法一般为SGD,目前常用的SGD算法为基于延迟与软同步的SGD即Staleness Aware SGD,然而它们存在以下一些问题:
Staleness Aware SGD使用当前过期梯度(Staleness)调整对应学习器的学习率,将分布式异步训练的节点快慢产生过期梯度这个问题考虑进来,在普适计算的环境中,人和计算机不断的进行着透明性的交互,在这个交互过程中,普适系统获取与用户需求相关的上下文信息来确认为用户提供什么样的服务,这就是上下文感知,它是普适计算的重要技术。考虑到过期梯度,虽然一定程度上缓解了全异步同步参数引起的整体模型收敛效果差与受集群系统波动的影响的问题,但使用当前学习器的过期梯度无法感知该学习器过期梯度的上下文信息,对于该过期梯度处理过于简单,这样造成分布式异步训练稳定性与收敛效果依然不够理想。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于滑动窗口采样的分布式机器学习训练方法及其系统,用于解决现有技术中学习器的梯度过期程度无法感知该学习器梯度过期程度的上下文信息、对于该过期梯度处理过于简单、从而造成分布式异步训练稳定性与收敛效果不好的问题。
为实现上述目的,本发明采用以下方案:一种基于滑动窗口采样的分布式机器学习训练方法,包括以下步骤:步骤1),机器学习模型参数初始化;步骤2),获取所有数据的一个数据分片,独立进行模型训练;步骤3),收集历史的若干轮梯度过期程度样本,通过滑动采样样本,并计算梯度过期程度上下文值,调整学习率后发起梯度更新请求;步骤4),异步收集多个梯度过期程度样本,利用调整后的学习率更新全局模型参数并推送更新的参数;步骤5),异步获取推送的全局参数更新,继续下一次训练;步骤6),检验模型收敛性,若不收敛,进入所述步骤2)循环;若收敛,进入步骤7);步骤7),获取模型参数。
于本发明的一实施方式中,在所述步骤4)中,还包括维护一个逻辑时钟记录当前模型参数版本的步骤,在每进行一次从梯度到参数值的优化动作后,逻辑时钟加1。
于本发明的一实施方式中,在每进行一次逻辑时钟加1后,用当前的逻辑时钟更新机器学习的逻辑时钟。
于本发明的一实施方式中,在所述步骤3)中,梯度过期程度的计算为:当前的逻辑时钟-机器学习的逻辑时钟+1,其中,每个机器学习模型保存前N-1次更新时的梯度过期程度,N为当前更新的次数。
于本发明的一实施方式中,在所述步骤3)中,梯度过期程度上下文值通过计算当前梯度过期程度与前N-1个梯度过期程度的均值得到。
此外,本发明还提供了一种应用上述方法的基于滑动窗口采样的分布式机器学习训练系统,所述系统包括:服务器节点,所述服务器节点异步收集若干个梯度更新请求,进行全局模型参数更新并保存,被动推送更新的参数;学习器节点,每个所述学习器节点获取所有数据的一个数据分片,独立进行模型训练,每轮训练完毕后,使用调整过的学习率向所述服务器节点发起梯度更新,并异步获取所述服务器节点推送的更新的参数,发起下一轮训练;滑动采样模块,所述滑动采样模块附属于所述学习器节点,用于完成前若干轮梯度过期程度样本的采样,计算梯度过期程度上下文值,并在所述学习器节点向所述服务器节点推送梯度时,推送当前梯度过期程度上下文值,调整此次更新学习率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院上海高等研究院,未经中国科学院上海高等研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710009638.5/2.html,转载请声明来源钻瓜专利网。