论文部分内容阅读
深度学习在最近的几年里飞速发展,得到了越来越广泛的应用,在各个领域也取得了突出的成绩。随着大数据时代的到来,数据量成倍的增长,同时深度学习模型也越来越庞大,使用单台机器对深度学习模型进行训练已经不能够满足人们的需要。于是分布式深度学习成为了一个重要的研究方向,许多科研团队和科技公司从不同的研究角度对深度学习算法进行了改进,也总结出了很多关于分布式训练的经验和方法。但是本文在实际的训练过程中,发现存在以下问题:(1)现有的机器学习框架主要提供了通用的机器学习算法库,但是在某些特定问题上,例如卷积神经网络这类非凸优化问题,并没有做专门的优化。所以在分布式环境下训练神经网络时,往往达不到理想的加速效果,甚至不能够使模型达到有效的收敛。(2)在异构环境集群中,由于各个机器的性能存在差异,分布式随机梯度下降算法的稳定性和有效性都出现了严重的下降,实际运行的结果与预期的结果总是相差甚远。针对以上问题,本文提出了一种基于参数服务器架构的分布式异步随机梯度下降算法,该算法使用异步协议来同步各个工作节点的参数,改进了现有异步算法中的参数更新机制。实验结果表明,该算法在处理图像分类这类非凸优化问题上取得了很好的效果,并且解决了异步算法在分布式环境下模型不收敛的问题,同时还能达到与同步随机梯度下降算法相近的准确率,提高了集群中计算资源的使用率。本文对异构环境进行分析,发现高延迟的更新值对全局参数的影响是导致算法运行效率降低的主要原因。针对这一问题,本文提出了分布式延迟感知随机梯度下降算法,该算法为每一个更新值标注了延迟度,在计算新的全局参数的过程中,参数服务器能够获取各个更新值的延迟度,从而降低高延迟度的更新值对全局参数的影响。实验结果表明,本算法在各种异构环境下能够有着良好的稳定性。本文的实验部分,基于浏览器搭建了便捷的分布式实验环境,方便对算法进行验证和测试。算法实现使用JavaScript语言进行开发,通过修改MLitB框架源代码实现了参数服务器架构,并实现了本文提出的两种分布式随机梯度下降算法,最后对算法进行了测试,得出了本文的结论。