游乐游手机版
首页/AI热点日报/热点详情

自动机器学习优势与痛点全解析

类型:热点整理2026-07-04
自动机器学习旨在自动化特征工程、模型选择、超参数调优、神经网络架构搜索及部署等流程,以降低人工操作成本与错误率,使专家专注问题定义与道德规范。尽管已有多种开源与商业框架,但自动化仍面临可解释性、监管合规等挑战。

自从计算机时代拉开帷幕,科学家和工程师们就一直怀揣着一个朴素的愿望:让计算机像人类一样,学会自主学习。艾伦·图灵最早提出了智能理论的前瞻设想——有朝一日,机器能够达到与人类同等的智能水平。从那以后,机器学习领域经历了一轮又一轮的巨大飞跃。如今,我们已经在许多场景中看到机器学习击败甚至媲美特定的人类认知能力:比如ResNet(深度残差网络)在图像识别上超越了人类的表现,微软的语音转录系统也几乎达到了人类水平。

机器学习的优点是显而易见的——它几乎可以应用于人类今天面临的任何问题。但伴随这些好处而来的,还有不小的挑战。

痛点在于:机器学习算法需要针对每一个不同的现实场景进行配置和优化。这意味着高强度的人工操作,监督开发的人员需要投入大量时间。而且,这个手动流程不仅容易出错、效率低下,还很难管理。更麻烦的是,配置和优化不同类型算法所需要的专业知识,本身就相当稀缺。

自动机器学习的初衷很直接:如果配置、调优和模型选择都能自动化,那么部署过程就会高效得多,人们也可以腾出手来关注更重要的任务——比如模型的可解释性、道德规范和业务结果。因此,将机器学习模型构建过程自动化,具有重要的现实意义。

自动机器学习的优点与痛点

进入正题:自动机器学习。这里所涵盖的范围包括——自动化特征工程、自动模型选择与超参数调优、自动神经网络架构选择(NAS)、以及自动部署。本文将逐一探索目前可用于上述每个自动化过程的框架,帮助读者了解当下自动机器学习能做到什么程度。在深入每个环节之前,先简要回顾一下端到端的机器学习流程,明确每个过程在流程中的位置。

从流程图上可以清楚看到,机器学习并不只是建模这件事。它还包括问题定义、数据收集和部署。本文的焦点仍然放在“建模”和“部署”阶段——这正是我们希望从自动化角度去探索的部分。如果建模和部署可以自动化,那么专家就能把更多精力放在问题定义、数据理解、遵守道德标准,以及确保部署的模型能为业务带来有影响力的见解,同时不引发任何道德问题。针对建模和部署阶段的每个环节,我们将梳理来自开源社区、谷歌、微软、亚马逊等供应商以及其他参与者的框架。

自动特征工程

通常情况下,机器学习算法的良好性能,很大程度上取决于模型所使用的特征质量。对数据科学家来说,特征工程是一项相当手工且劳动密集的任务——涉及大量试错、深入的领域知识,以及目前机器还不擅长的东西:直觉。自动化特征工程的目标,就是迭代地创建新的特征集,直到ML模型达到令人满意的准确度分数。那么,我们想要自动化的过程到底是什么样的?

特征工程流程通常是这样:先收集数据集,比如从电子商务网站收集客户行为数据。作为数据科学家,你一般会希望创建数据中尚未存在的特征,例如:

  • “客户下单的频率”
  • “上次购买后的天数或小时数”
  • “顾客通常购买的商品类型”

核心目标就是设计一种算法,让它自动从数据中生成或综合这些类型的特征。接下来,我们列出并简要介绍一些用于自动化特征工程的框架。需要注意的是,在深度学习这种专门的机器学习形式中,通过多层矩阵变换自动从图像、文本和视频中提取特征已经很常见了。本文讨论的特征工程主要针对结构化的事务和关系数据集,不过也会简要提及深度学习中的特征工程。

数据科学机器(Data Science Machine)是由麻省理工学院的Max Kanter和Kalyan Verramachaneni发起的研究项目。他们的论文详细阐述了深度特征合成算法的内部机制——该算法利用“原语”的概念为实体(数据中的唯一观察对象)以及实体间的关系生成特征。原语本质上是应用于数据的数学函数(sum、mean、max、min、a verage等),这些函数返回不区分大小写的数值结果,并且可以被人类解释为不同的含义。以电子商务为例,sum可用来计算某个客户所有订单的总金额;再以机票预订平台为例,它又可以计算客户当年已购买的机票数量。用例不同,但数学原语相同。该项目已开源为Featuretools Python库,由Feature Labs将其研究论文中的工作产品化。Feature Labs正是数据科学机器创始人Max和Kalyan创办的公司。

DataRobot使用一种称为“模型蓝图”的概念来实现自动化特征工程——在机器学习管道中堆叠不同的预处理步骤。特征工程部分不像Featuretools那样利用原语的概念,但它确实会对数据应用一些标准的预处理技术(具体取决于所用的ML算法,如随机森林、逻辑回归等),包括独热编码、填充缺失值、类别计数、在自由文本列中提取n-gram标记、比率等。

H2O的无人驾驶AI(Driverless AI)是一个自动机器学习平台,可用于自动化特征工程、模型验证、模型调优、模型选择和模型部署。这里我们只讨论它的自动特征工程部分。无人驾驶AI支持一系列所谓的“transformers”(变换器),可以应用到数据集上。

tsfresh是一个用于从时间序列数据中计算和提取特征的Python库。它能提取中位数、均值、样本熵、分位数、偏度、方差、值计数、峰值数量等特征。它并不适用于所有类型的数据集,而是更针对时间序列数据。不过,它可以与上面提到的其他工具配合使用。

话说回来,自动化特征工程仍然是一项艰巨的任务。也有不少反对声音认为自动化特征工程可能产生不正确的结果,或者用不透明的方式使用错误标签对观察对象进行分类。因此,自动化特征工程需要谨慎对待——尤其是在高度监管的环境中,比如金融服务领域,每个决策过程都要求可解释性和可说明性。

自动选择模型和超参数调整

特征预处理完成后,你需要找到一个机器学习算法来训练这些特征,并能够预测新观测值的目标值。与特征工程不同,模型选择有着丰富的选择和选项——有聚类模型、分类和回归模型、基于神经网络的模型、基于关联规则的模型等等。每种算法适用于某一类问题。自动模型选择的目标,就是在空间中过滤出所有适合特定任务的模型,选出准确率最高(如最低AIC)或误差最小(如最低RMSE)的那个。

可以理解的是,没有一种机器学习算法能在所有数据集上表现最好(没有免费的午餐理论),有些算法还需要进行超参数调优。事实上,选择模型时,我们往往倾向于尝试不同的变量、不同的系数或不同的超参数。在回归问题中,有一种方法可以使用F检验、t检验、调整R²等技术自动选择最终模型中使用的预测变量,称为逐步回归——但这种方法容易出错。

自动选择模型的框架

auto-sklearn是由Mathias Feurer、Aaron Klein、Katharina Eggensperger等人创建的Python库。该库主要处理机器学习中的两个核心过程:从分类和回归算法的广泛列表中挑选算法,以及超参数优化。它不执行特征工程——数据集的特性需要通过Featuretools等工具组合数学原语来创建新特征。Auto-sklearn与Auto-WEKA、Hyperopt-sklearn类似。以下是auto-sklearn可以选择的部分分类器:决策树、高斯朴素贝叶斯、梯度提升、kNN、LDA、SVM、随机森林和线性分类器(SGD)。在预处理步骤上,它支持核主成分分析、百分位数选择、选择率、独热编码、填充缺失值、平衡、缩放、特征聚合等。同样,从通过组合现有特征来丰富数据集的角度来看,这些都不能被理解为特征工程步骤。

有些算法会通过一系列不同的变量配置自动优化某些指标,这类似于寻找变量重要性。通常,通过理解变量存在的上下文和领域,人类可以很好地完成这项工作。比如:“夏季销量增加”或“最昂贵的商品来自西伦敦居民”——这些变量可以由领域专家自然地暗示出来。但还有另一种方法:看这个变量在统计上有多重要,这由决策树(使用基尼指数或信息增益)等算法自动完成。随机森林也这样做,但与决策树不同,随机森林会运行多个决策树,创建多个引入随机性的模型。

对于时间序列数据,我们倾向于讨论auto.arima。R中的auto.arima包使用AIC作为优化指标,它利用Hyndman-Khandakar算法在后台实现这一点,相关细节在OText书中有详细解释。

如前所述,H2O无人驾驶AI可用于自动化特征工程,它还可以同时自动训练多个算法。这是通过h2o.automl包实现的——它能自动用多种不同算法(GLM、Xgboost、随机森林、深度学习、集成模型等)和不同参数训练你的数据。

DataRobot也可以同时自动训练多个算法。它使用经过DataRobot科学家调优的模型,能够用预先设置的超参数运行几十个模型,最终选出准确率最高的算法。它同样允许数据科学家手动干预和调整模型以提高准确率。

微软在去年9月宣布了自己的自动化机器学习工具包,产品名称为automatic ML,属于Azure机器学习产品。微软的自动ML利用协同过滤和贝叶斯优化来搜索机器学习空间——包括数据预处理步骤、学习算法和超参数配置的组合。在许多模型选择技术中,自动化的典型部分只是超参数设置。微软的研究人员发现,仅调优超参数有时可以与随机搜索相媲美,因此理想情况下,整个端到端流程都应该自动化。

谷歌也在这一领域进行了创新,推出了谷歌云自动化(Cloud AutoML)。在Cloud AutoML中,数据科学家只需提供标记数据,系统就会自动构建并训练算法——支持计算机视觉、自然语言处理和翻译模型的训练。

TPOT是用于自动化机器学习的Python库,它利用遗传编程来优化机器学习管道。ML管道包括数据清理、特征选择、特征预处理、特征构建、模型选择和参数优化。TPOT库利用了scikit-learn中可用的机器学习库。

Amazon SageMaker提供了建模、训练和部署的能力。它可以自动调整算法——采用一种叫做贝叶斯优化的技术来实现这一点。

HyperDrive是微软的产品,专为全面超参数探索而构建。超参数搜索空间可以用随机搜索、网格搜索或贝叶斯优化来覆盖。它实现了一个调度器列表,你可以通过联合优化质量和成本来提前终止探索阶段。

神经网络结构选择

在机器学习的世界里,最乏味的任务之一就是设计和构建神经网络架构。通常,人们会花费数小时甚至数天时间,尝试用不同的超参数迭代不同的神经网络结构,以优化手头任务的目标函数。这非常耗时且容易出错。谷歌引入了利用进化算法和强化学习实现神经网络搜索的思想,用来设计和寻找最优的神经网络结构。本质上,这是在训练过程中创建一层,然后堆叠这些层来构建一个深度神经网络架构。近年来,这一领域的研究引起了广泛关注,涌现出大量研究论文。

以下是一些值得注意的研究论文:

  • NASNet——学习可扩展图像识别的可迁移架构
  • AmoebaNet——基于正则化演化的图像分类器架构搜索
  • ENAS——高效的神经结构搜索

该领域最新研究论文的完整列表可参见:http://www.ml4aad.org/automl/literature-on-neural-architecture-search/。

自动部署

机器学习社区的很多关注点都集中在学习算法的开发上,但端到端机器学习流程中一个最关键的部分——ML模型的部署和产品化——却往往被忽视。将机器学习模型部署到生产环境中存在许多固有的挑战。

有一些公司和开源项目正在尝试将这个过程自动化,力求减轻数据科学家的痛苦——因为他们不一定具备DevOps技能。以下是这个领域的一些框架和公司:

  • Seldon——提供了一系列方法,可以将用R、Python、Ja va和NodeJS构建的模型包装起来,部署到Kubernetes集群中。它支持与kubeflow、IBM用于深度学习的fabric、NVIDIA TensorRT、DL推理服务器、TensorFlow Serving等集成。
  • Redis-ML——是Redis(内存中分布式键值数据库)中的一个模块,允许将模型部署到生产环境。目前只支持随机森林(分类和回归)、线性回归和逻辑回归。
  • Apache MXNet的模型服务器——用于为从MXNet或Open Neural Network Exchange(ONNX)导出的深度学习模型提供服务。
  • Microsoft机器学习服务——允许你以web服务的形式将模型部署在可伸缩的Kubernetes集群上,并可通过web服务调用模型。
  • Amazon SageMaker——可以将模型部署到HTTPS端点,应用程序利用该端点对新数据观测进行推断/预测。
  • 谷歌云ML——也支持模型部署,通过对托管模型的web服务进行HTTP调用来进行推断。默认情况下,模型大小限制为250 MB。
  • H2O——通过利用Ja va MOJO(优化的模型对象)的概念来支持模型部署。MOJO支持自动化、深度学习、DRF、GBM、GLM、GLRM、K-Means、堆栈集成、支持向量机、Word2vec和XGBoost模型。它与Ja va类型环境高度集成。对于非Ja va编程模型(如R或Python),可以将模型保存为序列化对象,在推断时加载。
  • TensorFlow Serving——用于将TensorFlow模型部署到生产环境中。只需几行代码,你就可以将TensorFlow模型用作预测的API。
  • Openscoring——如果你的模型已经训练并导出为PMML格式,Openscoring可以帮助你将这些PMML模型作为REST API进行推断服务。
  • GraphPipe——旨在将ML模型部署与框架特定的模型实现(如TensorFlow、Caffe2、ONNX)解耦。
来源:https://m.elecfans.com/article/1697069.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。