本书讨论了最先进的分布式机器学习随机优化算法,并分析了它们的收敛速度。本书首先介绍了随机梯度下降(stochastic gradient descent, SGD)及其分布式版本同步梯度下降(synchronous gradient descent, synchronous SGD),其中计算梯度的任务被划分到几个工作节点上。讨论了几种提高同步SGD可扩展性和通信效率的算法,如异步SGD、局部更新SGD、量化和稀疏化SGD和去中心化SGD。对于这些算法,本书会分析它们的误差和迭代收敛性,以及每次迭代的运行时间。作者指出,这些减少通信或同步延迟的策略都在错误和运行时之间进行了基本的权衡。
随机梯度下降是当今有监督机器学习训练的支柱。经典的SGD被设计为运行在单个计算节点上,其误差收敛与迭代次数的关系在优化和学习理论文献中得到了广泛的分析和改进。然而,由于今天使用了大量的训练数据集和模型,在单个节点上运行SGD可能会非常慢。这需要SGD的分布式实现,其中梯度计算和聚合被划分到多个工作节点上。虽然并行提高了每次迭代处理的数据量,但它使SGD暴露于由计算基础设施的变化引起的不可预测的节点速度减慢和通信延迟。因此,迫切需要使分布式SGD快速,并对系统变化具有鲁棒性。在本书中,我们将讨论大规模机器学习中最先进的算法,这些算法通过异步聚合、局部更新、量化和去中心化共识等技术来提高分布式SGD的可扩展性。这些方法以不同的方式减少通信成本:异步聚合允许通信和局部计算重叠,局部更新减少通信频率从而将通信延迟分摊到几个迭代中,量化和稀疏化方法减少了每次迭代的通信时间,去中心化共识通过允许网络拓扑中的不同节点训练模型并与邻居并行平均模型,从而减少了空间通信。
对于本书介绍的每一个分布式SGD算法,本书都对其收敛性进行了分析。然而,与传统的优化文献不同,我们不仅关注误差与迭代的收敛性,或迭代的复杂性。在分布式实现中,由于同步和通信协议会影响每次迭代所需的时间,因此研究误差与wallclock时间的收敛性是很重要的。我们将计算和通信延迟建模为随机变量,并确定本书中介绍的各种分布式SGD算法每次迭代的预期wallclock运行时间。通过运行时分析和误差收敛分析,可以得到不同算法收敛速度的真实比较。
https://link.springer.com/book/10.1007/978-3-031-19067-4?source=shoppingads&locale=en-jp