Automated Machine Learning (AutoML)
自动机器学习(AutoML)可自动完成模型选择、超参数调优和特征准备。本文介绍搜索原理、相关工具和 YOLO 调优。
自动化机器学习(AutoML)是指自动完成构建机器学习(ML)模型时的试错工作:准备特征、选择算法、设置超参数,有时还要设计网络架构或组合多个模型。给定数据集、目标指标和计算预算后,AutoML 系统会搜索候选流程,在留出数据上为每个流程打分,并返回找到的最佳方案。Auto-WEKA项目将这项任务的核心概括为算法选择与超参数优化联合(CASH)问题;auto-sklearn 等后续工具采用了这一表述。AutoML 能为非专业人士提供强有力的基线,也能为专家省去实验中重复性的工作。
AutoML 的工作原理#
AutoML 系统包含三个要素。搜索空间定义哪些内容可以变化,从数据预处理和特征工程步骤,到模型类别(例如线性回归、XGBoost或神经网络),以及每种模型的设置(例如学习率)。搜索策略决定尝试哪些候选方案,可以使用随机搜索、贝叶斯优化(对搜索空间中看起来有前景的区域建模),或进化算法(对优良配置进行变异和重组)。评估步骤会在验证数据上为每个候选方案打分,或使用交叉验证进行评估。许多系统还会利用早期数据集上的元学习对搜索进行热启动,最后将最佳候选方案组合成模型集成。
将每个候选方案都训练到完成是主要成本,因此多保真方法会先以较低成本训练许多配置,只对有前景的配置投入更多资源。Hyperband的基础组件逐次减半会重复一轮轮筛选,直到只剩一个配置:
大型搜索也可能对验证数据过拟合,因为胜出的方案在一定程度上只是众多候选方案中最幸运的一个,所以最终模型要在单独的测试集上评分。
AutoML 工具#
- AutoGluon: 由 Amazon 发起的开源库,可针对表格、文本、图像和时间序列数据训练多种模型,并将它们堆叠成集成模型。
- auto-sklearn: 使用贝叶斯优化、元学习和集成构建来搜索 scikit-learn 流程。
- FLAML: Microsoft 推出的库,旨在以低成本搜索表格模型及其超参数。
- Optuna: 超参数优化框架,其剪枝器会提前停止前景不佳的试验,常用作自定义 AutoML 循环中的搜索引擎。
- Google Cloud AutoML: 一项托管服务,现已成为 Gemini Enterprise Agent Platform 的一部分,此前名为 Vertex AI;它无需编写代码即可训练图像分类、目标检测和表格模型。
- Amazon SageMaker Autopilot: AWS 的 AutoML 服务,其界面现已移至 SageMaker Canvas。
对于小型表格数据,表格基础模型提供了另一种实现相同目标的途径:直接根据上下文中的训练行进行预测,而无需针对每个数据集单独搜索。
YOLO 的自动调优#
对于架构固定且经过预训练的计算机视觉模型,自动搜索通常针对训练方案进行。Ultralytics YOLO 的 model.tune() 默认会进化 26 个训练超参数,包括学习率、动量、损失增益和增强强度:每次迭代都会变异并重组迄今为止找到的最佳配置,进行短时间训练并记录适应度;运行过程还会保存 best_hyperparameters.yaml,其中包含适应度随迭代变化的图表。传入 use_ray=True 后,搜索会改由 Ray Tune 执行。
from ultralytics import YOLO
# 加载预训练的 YOLO26 模型以进行调优
model = YOLO("yolo26n.pt")
# 进化超参数:每次迭代都会变异迄今为止的最佳配置、进行训练并评估适应度
model.tune(data="coco8.yaml", epochs=30, iterations=10, plots=False, save=False, val=False)AutoML 与相关术语的比较#
- 超参数调优: 优化某个已选模型的设置。AutoML 通常会将其作为更广泛搜索中的一个阶段,同时还会选择模型。
- 神经架构搜索(NAS): AutoML 中负责设计网络架构的分支,例如层类型、深度和连接方式。
- 迁移学习: 从预训练模型开始,而不是从头开始。AutoML 系统通常会搜索预训练主干网络,因此两者可以互为补充。
- 机器学习运维(MLOps): 涵盖模型的整个生命周期,包括部署、监控和重新训练,并且常将 AutoML 作为训练流程中的一个步骤。










