1 分布式基础

第1章 分布式机器学习

1.1 机器学习概念

赫伯特·西蒙(Herbert Alexander Simon,图灵奖、诺贝尔经济学奖获得者)对学习下过一个定义:“一个系统如果能够通过执行某个过程,从而改进它的性能,则此过程就是学习。”Tom M.Mitchell在其1997年著作《机器学习》中对机器学习也给出了类似定义:“假设用性能指标P来衡量计算机程序在某任务T上的性能,如果一个计算机程序通过利用经验E在T任务之中改善了P指标,我们就说该程序从经验E中学习。”通俗来讲,机器学习就是从经验数据中提取重要模式和趋势,从而学习到有用知识的技术。机器学习总体分为两个阶段:训练阶段和预测阶段。训练阶段使用大量训练数据并通过调整超参数来训练机器学习模型,该阶段的最终输出是可以部署的模型。预测阶段部署训练好的模型,并为新数据提供预测。具体逻辑如图1-1所示。

图1-1

图片来源:论文A Survey on Distributed Machine Learning

本书主要关注机器学习中的训练阶段,即使用迭代训练来生成模型,也就是图1-1的上半部分。图中的ML算法大致可以认为是一个非常复杂的数学函数。迭代训练指的是利用训练数据以计算梯度下降的方式迭代地学习或者优化模型的参数,并最终输出网络模型的过程,在单次模型训练迭代中有如下操作。

• 利用数据对模型进行前向传播。所谓前向传播就是将模型中的上一层输出作为下一层的输入,然后计算下一层的输出,这样从输入层逐层计算,一直到输出层为止。

• 进行反向传播。具体操作是依据目标函数来计算模型中每个参数的梯度,并且结合学习率来更新模型的参数。

• 模型训练不断循环迭代以上两个步骤,直到满足迭代终止条件或者达到预先设定的最大迭代次数。