AutoML 工作流程

2025年3月17日 | 阅读 8 分钟

什么是自动化机器学习?

自动化机器学习(AutoML)将机器学习应用于现实世界问题并实现自动化的一个分支。它有助于使机器学习任务对机器学习专家、研究人员以及数据科学和机器学习方面专业知识较少的人员来说更简单、更易于访问。AutoML 提供各种工具和实践来自动化机器学习模型的选择和微调过程。

自动化机器学习的主要目标是使机器学习这个分支对机器学习爱好者以及那些正在探索数据科学以构建和部署更有效模型的人来说更容易、更熟悉。AutoML 有助于减少构建高效机器学习模型所需的时间和精力

AutoML 的工作原理

AutoML 是一个开源库,有助于简化从探索数据集处理数据到部署机器学习模型的整个机器学习过程和任务。在传统的机器学习过程中开发模型的每个过程都是单独完成的。但AutoML 会自动定位机器学习算法,然后使用具有优化解决方案的最佳模型。

AutoML 中选择和实现模型的过程涉及两个不同的概念:

  • 神经架构搜索:它有助于设计神经网络。它有助于为 AutoML 模型构建和探索新的架构。
  • 迁移学习:这项技术用于将现有的架构迁移到新的模型和最适合它们的问题中。

Python 提供了 AutoML 库,用于自动化机器学习过程。可以使用以下命令在 Python 中安装它:

传统机器学习的工作流程识别问题陈述开始,然后进行数据预处理,包括数据清理、特征工程等,训练数据集并选择最佳模型,然后通过可视化预测结果。这个过程漫长且迭代,耗时很长。需要多次实验和迭代才能达到最佳模型和解决方案。

AutoML 的工作流程数据收集和预处理开始。然后,它将探索数据选择最适合目标值与其属性之间关系的最佳算法

让我们研究一下 AutoML 所涉及的不同步骤。这包括:

  1. 数据加载
  2. 数据预处理
  3. 特征工程
  4. 模型选择
  5. 模型训练
  6. 超参数调整
  7. 部署

数据加载

这是 AutoML 的第一步,用于以适当的支持形式加载和读取数据,然后分析数据以检查其是否可用于进一步处理。此步骤也称为数据摄取。它包括数据探索、检查数据集中是否存在空值,并确保数据可用于机器学习任务。

重要的是要考虑,如果模型具有足够的标记数据,则可以使用许多AutoML 工具。因此,此阶段还保证了拥有足够的数据来训练一个强大的模型。

数据预处理

数据处理是 AutoML 过程的第二步。它包括将原始数据转换为干净的格式数据准备数据预处理包括不同的技术,如数据去重、检查空值用合适的值替换、缩放和标准化数据。此步骤可确保数据质量,以便用于模型构建。

特征工程

此步骤包括用于构建模型的特征选择。它说明了如何提取和处理特征或数据,以及采样和洗牌

特征工程或数据工程过程可以手动完成,也可以借助深度学习技术自动完成,这些技术可以自动从数据集中提取特征。

数据采样是**将数据集分割**成不同部分的过程:**训练和测试数据。**AutoML 会**随机选择**数据集的某些部分用作训练数据。

数据洗牌包括在训练之前**重新排列原始数据中的数据块**形成多个序列的过程。

模型选择

这是第四步,在此步骤中AutoML 选择最佳模型以进行模型构建和训练。

某些模型在特定数据集或特定目标(例如二元分类或时间序列预测)上可能表现更好。当有许多模型时,确定您需要从数据集中获取哪些详细信息以及您的目标至关重要。AutoML 工具会自动选择合适的模型。为此,一些系统采用了一种名为神经架构搜索的尖端技术。

模型训练

然后,下一步是**训练模型**。有许多机器学习模型,每个模型都有自己独特的超参数集。一些机器学习模型包括线性回归、决策树、随机森林、神经网络和深度神经网络模型。

不同的模型在数据上进行训练,并选择**准确率最高的最佳模型**进行进一步的改进或调整,从而进行部署。

超参数调整

为了提高AutoML 的性能,需要调整超参数。这被称为超参数优化。AutoML 必须为不同的超参数生成预测并选择最佳的。

部署

一旦模型构建并修改完成,部署训练好的模型可能会具有挑战性,尤其是在通常需要大量数据工程活动的大规模系统中。

另一方面,AutoML 系统能够通过利用关于如何将模型部署到各种系统和上下文的内置知识,直接建立机器学习管道

AutoML 中的工具

有各种工具用于自动化机器学习过程。它们是:

  1. Auto Sklearn:这款 AutoML 工具是一个基于 sklearn 库的开源包。该框架**搜索最佳解决方案**以用于**模型架构、处理过程和超参数**。它使用贝叶斯优化方法和元学习来预处理数据。
  2. Google AutoML:它为图像识别、自然语言处理和数据分析等任务提供各种 AutoML 服务。Google 提供Google AutoML Tables 工具,这是一个用于数据处理的 AutoML 工具。它帮助用户为回归、时间序列预测等不同应用创建和部署模型
  3. H2O.ai:这款 AutoML 工具提供 H2O driverless AI,这是一个**自动化机器学习工作流程**的 AutoML 平台。它包括**数据预处理、特征工程和超参数调优**。它既可用于标记数据,也可用于未标记数据
  4. Databricks AutoML:Databricks AutoML 是一个AutoML 应用程序,可以轻松地在大型数据集构建机器学习模型。它可以处理广泛的任务,并提供一个简单而交互式的模型开发和评估环境。
  5. Auto PyTorch:Auto PyTorch 是一个开源 AutoML 包,用于自动化深度学习模型。Auto PyTorch 使用贝叶斯优化来获得最佳模型架构。它允许用户进行高级问题制定。
  6. Auto Keras:它是一个基于Keras 和 TensorFlow 的开源 AutoML 包。它提供了一个简单的接口,用于简化深度学习模型的创建过程。AutoKeras 除了其他功能外,还提供图像分类、回归和文本分类。为了确定给定数据集的最佳神经网络架构和超参数,它采用了神经架构搜索 (NAS)

让我们来了解一下使用 AutoKeras 实现 AutoML

程序 1:一个用于通过数据集预测花的 AutoML 工具实现程序。

1. 导入库和数据集

代码

2. 分割数据集

代码

输出

Found 3670 files belonging to 5 classes.
Using 2936 files for training.
Found 3670 files belonging to 5 classes.
Using 917 files for validation.

说明

我们已将数据集分割为测试、训练和验证数据。我们为图像设置了固定大小,可用于训练和预测。我们将20% 的数据**用于训练**,**25% 作为验证数据**。我们发现总共有3670 个文件,其中2936 个用于训练917 个用于验证

3. 构建和训练模型

代码

输出

Trial 1 Complete [00h 54m 52s]
val_loss: 0.40751439332962036

Best val_loss So Far: 0.40751439332962036
Total elapsed time: 00h 54m 52s
INFO:tensorflow:Oracle triggered exit
Epoch 1/8
74/74 [==============================] - 534s 7s/step - loss: 0.9473 -     accuracy: 0.4101
Epoch 2/8
74/74 [==============================] - 479s 6s/step - loss: 0.3521 -    accuracy: 0.6104
Epoch 3/8
74/74 [==============================] - 519s 7s/step - loss: 0.2737 -    accuracy: 0.7296
Epoch 4/8
74/74 [==============================] - 485s 7s/step - loss: 0.1841 -    accuracy: 0.8535
Epoch 5/8
74/74 [==============================] - 485s 7s/step - loss: 0.1091 -    accuracy: 0.9363
Epoch 6/8
74/74 [==============================] - 484s 7s/step - loss: 0.0769 -    accuracy: 0.9656
Epoch 7/8
74/74 [==============================] - 453s 6s/step - loss: 0.0742 -    accuracy: 0.9700
Epoch 8/8
74/74 [==============================] - 484s 7s/step - loss: 0.0593 -    accuracy: 0.9796
INFO:tensorflow:Assets written to: .\image_classifier\best_model\asset

说明

我们使用Auto Keras Image Classifier 模型进行了8 个 epoch 的数据训练,这使得如此庞大的数据集的训练变得非常容易和快速。

4. 模型评估

代码

输出

说明

在这里,我们使用图像分类器(Auto Keras 模型)评估了测试数据。

5. 模型预测

  • 加载图像

代码

输出

JPEG (320, 240) RGB
None (200, 200) RGB

AutoML Workflow

说明

我们已从数据集中加载了一个样本图像。然后,我们使用训练时设置的大小调整了该图像的大小。Image.open() 中的图像路径将是样本图像的路径。

  • 预测

代码

输出

1/1 [==============================] - 0s 219ms/step
1/1 [==============================] - 0s 57ms/step
[['dandelion']]

说明

最后,我们使用 predict 函数预测出该图像是**蒲公英**。

AutoML 的优势

使用 AutoML 构建和部署机器学习模型有很多好处。它们包括:

  • 节省了大量时间,因为它减少或消除了创建任何机器学习模型过程中的手动尝试和错误。
  • AutoMl不需要太多机器学习方面的专业知识。它对大量用户都可用。
  • AutoML 用于大型数据集和复杂的机器学习任务,从而构建准确的模型
  • 通过自动化特征工程和选择模型,它有助于减少机器学习模型中的偏差

AutoML 的缺点

  • 虽然 AutoML 可以提供高度准确的模型,但有时它们无法达到所需的结果
  • AutoML 生成的模型很复杂,**不易解释**,这使得获取预测更具挑战性。
  • 用于 AutoML 的工具在大型机器学习项目中**成本很高**。
  • AutoML 也可能出现**过拟合**,导致性能不佳。