自动机器学习(AutoML)是当前机器学习领域中备受关注的技术之一。AutoML 已经证明能够在多个领域达到甚至超越人类专家手动调参的效果。国内外多家领先企业纷纷将 AutoML 技术整合到自主研发的 AI 平台中,从而降低算法工程师的工作负担,加快机器学习模型的开发和部署。
本文将介绍 AutoML 的定义、目的和研究领域,回顾自动化超参数调优算法和机器学习管道创建方法,并对比分析主要的 AutoML 开源框架,通过真实案例展示 AutoML 的实际效果,最后讨论当前 AutoML 面临的挑战和未来的研究方向。
AutoML 是一种自动化处理机器学习任务的技术。它将机器学习这一复杂的端到端过程自动化,从而减少人工干预。从机器学习角度来看,AutoML 能够学习出泛化能力强大的系统。从自动化角度来看,AutoML 设计了一系列高级控制系统来操作机器学习模型,使模型能够自动学习到合适的参数和配置。
通过 Google Cloud AutoML Vision,我们可以从图像分类任务的角度直观理解 AutoML。此外,华为 Model Arts 提供了一个从结构化数据分类和回归模型自动构建的角度理解 AutoML 的视角。
现实问题:构建机器学习模型涉及多个步骤,依赖专家知识,模型难以通用,专业人才短缺。业务需求:通过自动化缩短 AI 应用的开发周期,降低成本,适应快速变化的业务需求。
AutoML 的核心任务是无需人工干预,降低计算成本,输出泛化能力强的模型。通过 AutoML,解决方案将从依赖专家知识转变为仅依靠数据和计算能力。
AutoML 的研究可以按照模型类型、机器学习管道的不同阶段和应用场景进行划分。其中,经典机器学习和神经网络架构搜索(NAS)是重要的研究方向。
本文将介绍 AutoML 成绩方式化的几个基本定义和 AutoML 框架的基本组成部分。
AutoML 涉及到机器学习管道的构建,包括数据清洗、特征工程和模型选择等环节。机器学习管道的构建可以分解为如何确定管道结构、选择具体算法和超参数优化等子任务。
AutoML 框架主要解决搜索空间、搜索策略和性能评估策略三个方面的问题。搜索空间定义了超参数的选择范围,搜索策略决定了如何高效找到最优配置,性能评估策略则用于评估模型的泛化能力。
本节将回顾 CASH(Combined Algorithm Selection and Hyperparameter optimization)算法,探讨其定义、主要算法和改进方向。
CASH 是一个结合算法选择和超参数优化的任务。其搜索空间可以通过树状结构来表示,超参数类型包括类别型、整数型、实数型和条件型。
网格搜索通过离散化超参数来缩小搜索空间,而随机搜索则适用于多极值和不可导函数的优化。随机搜索在高维空间中更为高效。
基于模型的序列优化算法通过构建代理模型来预测超参数组合的效果,并迭代优化。这种方法在寻找最优超参数组合时更为高效。
遗传算法是一种模拟自然进化过程的全局优化算法。它通过选择、交叉和变异等操作逐步逼近最优解。
粒子群算法模仿鸟群捕食行为,通过集体协作来寻找全局最优解。它没有交叉和变异操作,而是通过跟随当前最优值来搜索。
梯度下降算法通过不断调整参数来最小化损失函数。随机梯度下降和批量梯度下降是常用的优化方法。
CASH 算法可以从多保真近似、早停、集成学习、元学习和水平扩展性等方面进行改进。
本节将回顾两种主要的机器学习管道合成方法,并介绍 AlphaD3M 的方法。
固定形状的管道合成方法可以大大减少搜索空间,但可能不适合复杂数据。可变形状的管道合成方法虽然可以处理复杂问题,但容易过拟合且计算成本高。
AlphaD3M 利用深度强化学习中的自我博弈技术和蒙特卡洛树搜索,高效搜索高维空间。通过神经网络预测管道功能和下一步行动的概率。
本节将重点介绍 AutoSklearn 和 NNI 两个开源框架,并对比它们的主要特性。
AutoSklearn 基于 Scikit-learn,采用 SMAC 优化算法,并利用元学习加速初始化过程。它支持多种模型集成方法,但不支持 NAS。
NNI 是由微软亚研院开源的自动机器学习工具,支持神经网络架构搜索和超参数搜索。它提供了多种 Tuner 和 Assessor 选项,并支持 Web UI。
从代码侵入性、超参数搜索算法范围、NAS 支持、早停策略、扩展性、并行/分布式和 UI 等维度对比 AutoSklearn 和 NNI。
通过微软 NNI,展示了两个真实模型的超参数自动搜索效果,并与人工调参的效果进行了对比。结果显示,AutoML 在多个指标上取得了显著提升。
本节将从六个方面讨论 AutoML 领域当前存在的开放性问题及未来的研究方向。
研究更高效的优化算法,如基于梯度的方法改进。
研究如何在避免过拟合的前提下,实现完整的机器学习管道自动化。
探索如何提高搜索结果的复现性和可解释性。
研究如何优化算法的效率和扩展性,实现并行化和分布式处理。
研究如何实现持续迭代优化的终身学习机制。
建立统一的比较基准和性能度量标准。
本文作者黄绿君,目前担任京东数科资深算法工程师,主要从事 KuAI 平台建设。KuAI 平台是京东数科的重要平台之一,提供从模型开发、训练到部署、监控的一站式服务。欢迎有兴趣的朋友加入我们,简历可发送至 jddtech@jd.com(邮件标题注明:京东 KuAI 平台)。