上QQ阅读APP看书,第一时间看更新
2.2 机器学习工作流
机器学习系统编程模型的首要设计目标是:对开发者实现完整工作流的编程支持。一个常见的机器学习任务一般包含如图2.2所示的工作流。这个工作流完成了训练数据集的读取以及模型的训练、测试、调试。通过归纳,将这一工作流中用户所需要自定义的部分通过定义以下API来支持(这里假设用户的高层次API以Python函数的形式提供)。
图2.2 机器学习系统工作流
(1)数据处理:首先,用户需要数据处理API将数据集从磁盘读入。进一步,用户需要对读取的数据进行预处理,从而可以将数据输入后续的机器学习模型中。
(2)模型定义:完成数据的读取后,用户需要模型定义API定义机器学习模型。这些模型带有模型参数,可以对给定的数据进行推理。
(3)损失函数和优化算法:模型的输出需要和用户的标签进行对比,这个对比差异一般通过损失函数(Loss Function)进行评估。因此,优化器定义API允许用户定义自己的损失函数,并且根据损失引入(Import)和定义各种优化算法(Optimisation Algorithms)计算梯度(Gradient),完成对模型参数的更新。
(4)训练过程:给定一个数据集、模型、损失函数和优化器,用户需要用训练API来定义一个循环(Loop)从而将数据集中的数据按照小批量(Mini Batch)的方式读取出来,反复计算梯度更新模型。这个模型循环迭代更新的过程称为训练。
(5)测试和调试:训练过程中,用户需要测试API对当前模型的精度进行评估。当精度达到目标后训练结束。这一过程中,用户往往需要调试API完成对模型的性能和正确性进行验证。