机器学习的步骤如图3-2所示,就一般情况而言,算法工程师的任务一般从特征工程开始。
图3-2 机器学习知识图谱
特征工程是数据分析中最耗费时间精力的一部分工作,它不像算法和模型是确定的步骤,而大多情况下要依靠算法工程师的个人经验来处理。这样的特征工程具有很强的不确定性,如漏选特征、选到了无效特征、忽略高级特征等。漏选特征会造成信息的缺失,使模型效果变差;而加入了无效特征会让模型变大,增加了不必要的计算量;高级特征需要通过一般特征的运算来得到。还有其他问题,如缺失值、离散特征连续化、归一化、标准化、数据清洗等。
而在模型选择阶段,也需要依靠算法工程师的经验来做,算法工程师通常是根据特征工程后的数据来进行选择。
之后会进行模型评估阶段,通过模型评估来决定模型是否能运用在实际生产中。如果模型未能通过评估,就需要重新返工,重新进行数据收集、特征工程、模型选择过程。这是相当耗费时间的工作并且需要十分丰富的经验。在实际生产中,大多数情况下可能并不能生成理想的模型,并且会耗费大量的时间。
为了解决上述问题而诞生了AutoML,AutoML试图将这些特征工程、模型选择以及参数优化等重要步骤进行自动化学习,使得机器学习模型无需人工参与即可被应用。
从前节可见,机器学习的泛化受到了诸多条件的制约,此时急需一种更加通用的方案来解决上述问题,这就产生了AutoML。AutoML是一个将从根本上改变基于机器学习解决方案现状的方案。
AutoML是一个控制神经网络提出一个可以在特定任务上训练和评测性能的子模型架构,测试的结果会反馈给控制器,让控制器知道下一轮如何改进自己的模型。自动机器学习集中在以下两个方面:数据采集和模型预测。在这两个阶段之间所有发生的步骤将被自动机器学习抽象出来。实际上,用户只需要提供自己的数据集、标签并按下一个按钮来生成一个经过全面训练的和优化预测的模型。大多数平台都提示用户来上传数据集,然后对类别进行标记。之后,在数据预处理、模型选择、特征工程和超参数优化中涉及的大部分步骤将在后台进行处理。这种方法极大地改变了在训练机器学习模型中涉及的传统工作流。
AutoML完全改变了整个机器学习领域的游戏规则,因为对于许多应用程序,不需要专业技能和知识。许多公司只需要深度网络来完成更简单的任务,例如图像分类。那么他们并不需要雇用一些人工智能专家,他们只需要能够数据组织好,然后交由AutoML来完成即可。