论文部分内容阅读
分布式学习是减轻现代机器学习系统中不断增加的数据和模型规模压力的有效工具之一。DANE算法是一种近似牛顿方法,已被广泛应用于通信高效的分布式机器学习。与传统方法相比,DANE具有收敛速度快且无需计算Hessian矩阵逆的优点,从而可以在高维情况下显著减少通信和计算开销。为了进一步提高计算效率,本文研究如何加快DANE的局部优化。本文选择使用最流行的自适应梯度优化算法Adam取代常用的随机梯度下降法用来求解DANE的局部单机子优化问题,同时提出了在迭代期间添加随机采样步骤的方法以降低每次迭代的计算成本并模拟多机计算环境。在实验中,我们设置了三种不同的局部样本大小进行比较。实验结果表明,通过设置合适的抽样比例,基于Adam的优化在训练速度上可以明显快于原始的基于SGD的实现,同时仅会小幅牺牲模型精度。但实验结果也表明使用Adam带来了一定的泛化能力下降。为了解决使用Adam算法所带来的泛化能力不足的问题,本文引入了一种从Adam自适应切换到SGD的混合策略SWATS。实验证明,该策略既能保留Adam算法在训练初始过程的的优势,又能提高训练结果的精度。本文通过MXNet平台将优化后的算法应用于分布式训练。实验结果表明随着并行机器数量的增加,训练的速度明显提高,并且几乎不会牺牲模型泛化能力。