什么是自动机器学习(AutoML)?(译)

本文选自《Hands-On Automated Machine Learning》

 

自动机器学习(AutoML) 旨在通过让一些通用步骤 (如数据预处理、模型选择和调整超参数) 自动化,来简化机器学习中生成模型的过程。您将在接下来的章节中详细了解到这一过程中的细节,并手把手构建一个自动机器学习( AutoML) 系统,以便深入了解自动机器学习( AutoML)的可用工具和库。

在了解更多细节前,首先我们回顾什么是机器学习(ML)模型以及我们要如何训练一个模型。

机器学习(ML)算法会在你输入的数据上,找到某些特定的共性模式,这个学习过程称为模型训练。机器学习的模型,就是这种模型训练的成果,它可以在没有设定具体规则的情况下,帮助我们分析数据及其内在的逻辑联系。

 

当你实际使用机器学习(ML)模型时,需要先提供大量的数据,用于训练算法。训练完成之后,你将得到一个机器学习的模型,可用于进行预测。预测可以辅助你进行决策,比如:根据服务器当前状态来判断未来四个小时内是否应进行维护,又比如你的客户是否开始倒向你的竞争对手。

有时你正在解决的问题还不够清晰,或者你甚至不知道你在寻找什么方向的答案。在这种情况下,机器学习(ML)模型将帮助你探索现有的数据集,例如识别行为相似的客户群体,或根据股票数据的相关性找到其内在层次结构。

你的模型区分客户群之后,能做些什么呢?好吧,你至少该知道这一点:属于同一集群的客户,通常会共有某些相似特征点,例如他们的年龄,职业,婚姻状况,性别,产品偏好,每日/每周/每月消费习惯,总数花费的金额,等等。属于不同集群的客户的特征点不同。通过这样的数据支持,你就可以利用此针对每个客户群进行不同的广告投放。

 

上面是业务层面,从技术层面来说,让我们用简单的术语来理解这个过程。有一个数据集X,其中包含n个样本。这些样本可以代表顾客或不同种类的动物。每个示例通常都是一组实数,称为特征(features)。例如,如果我们有一位35岁的女性客户在您的商店花费12000美元,则可以使用以下向量代表该客户(0.0,35.0,12000.0) 。请注意,性别用0.0表示,这意味着男性客户的该特征将为1.0。向量的大小代表维度。由于向量有三个,我们通常用m表示这是一个三维数据集。

根据问题类型,您可能需要为每个样本添加标签。例如,如果这是一个有监督学习问题,如二进制分类,您可以用1.0或0.0标记您的样本,这个新变量称为标签或目标变量。目标变量通常称为y。

有了x和y,机器学习(ML)模型可以认为是一个带有权重w(模型参数)的函数f:

f(x; w)

模型参数是在训练过程中学习而赋值的,但是还有一些其他的参数,需要在训练开始之前进行设置,这些参数称为超参数,稍后将对其进行解释。

 

在模型训练之前,通常要对数据集中的原始数据进行预处理。例如,一些机器学习(ML)模型预设特征是正态分布的。在许多现实场景中,情况并非如此,需要我们实现进行数据转换,比如说对数变换(log transformation),使其正态分布。

 

完成数据处理并设置模型超参数后,就可以开始训练模型了。在模型训练结束时,会自动习得并保存模型参数,并且此时,我们已经可以通过模型预测,模型之前在训练中未见过的新数据的目标变量。由模型做出的预测通常称为(读作y hat,表示y的估计值)。

 

模型训练期间到底发生了什么?已知在数据集的训练过程中,我们打过标签,因此,我们可以基于当前模型所预测的内容,将其与原始标签进行比较,来更新我们的模型参数。

这种比较基于损失函数(或者说成本函数),,损失函数表示了预测的不准确性。一些常见损失函数,比如平方损失(square loss),铰链损失(hinge loss),逻辑损失( logistic loss)和互熵损失( cross-entropy loss)。

 

完成模型训练后,可以用之前模型训练过程中未使用过的数据集,来测试机器学习(ML)模型性能,以检测模型的通用性。你可以使用不同的指标,来评估性能;并根据结果,在前序步骤进行多方面的调整,来改善模型,以获得更好的性能。

 

基于此考虑,你应该充分了解,在训练模型的过程中,到底发生了些什么。

 

什么是自动机器学习(AutoML)呢?当我们提起AutoML时,我们更多地是说自动化数据准备(即数据的预处理,数据的生成和选择)和模型训练(模型选择和超参数调优)。这个过程的每一步都有非常多的选项(options),根据我们遇到的问题,需要设定各种不同的选项。

自动机器学习(AutoML)的意义就在于此,它帮助研究人员和从业者,自动构建机器学习(ML)管道,将多个步骤及其对应的多个选项集成为工作流,以期快速找到针对给定问题的高性能机器学习(ML)模型。

你可能感兴趣的:(AutoML)