AutoML系列 | 01-自动化机器学习技术原理
「前言」自动机器学习(AutomatedMachine Learning, AutoML)技术是当前机器学习领域热点研究和迅速发展的方向之一,已被证明能够在多个领域达到或超过人类专家手动调参的效果,国内外许多头部公司纷纷将AutoML技术集成到自研AI平台中,降低算法工程师调参试错成本,加速机器学习模型的构建和落地。
一、AutoML概述
AutoML是一个将机器学习这个用于解决现实世界问题的端到端的处理过程进行自动化的过程。AutoML是自动化与机器学习的交叉。
★ 机器学习角度:在给定数据和任务上学习泛化能力非常强大的系统。
★ 自动化角度:设计一系列高级的控制系统去操作机器学习模型,使得模型可以自动化地学习到合适的参数和配置而无需人工干预。
通过Google的Cloud AutoML Vision从图像分类领域的神经网络架构搜索的角度直观认识AutoML。
(基于NAS的自动图像分类)
(结构化数据分类/回归)
1.3 为什么需要AutoML
1.4 AutoML解决哪些问题
核心任务:无需人工干涉;更低的计算开销;输出更好泛化能力的模型。
Current:Solution= ML Expertise + Data + Computing Power → Future:Solution= Data + Computing Power * 100
1)按模型类型划分:Classical ML&NAS
Classical ML:传统机器学习模型的自动化学习,包括基础算法的选择和超参数优化以及机器学习pipeline的自动合成等。
NAS:神经网络架构搜索 (Neural Architecture Search,NAS)是一种自动设计神经网络的技术,可以通过算法根据样本集自动设计出高性能的网络结构,在某些任务上甚至可以媲美人类专家的水准,甚至发现某些人类之前未曾提出的网络结构,这可以有效的降低神经网络的使用和实现成本。
2)按机器学习pipeline不同阶段划分
3)按垂直应用场景划分
二、AutoML问题形式化
主要介绍AutoML问题形式化的几个基本定义以及AutoML框架的基本组成。
2.1 几个基本定义
★ 典型监督学习模型pipeline
定义1:机器学习管道(MachineLearning Pipeline)
三元组(g,A ⃗,λ ⃗)称作一个配置。对于一个Pg,A ⃗,λ ⃗,需要评估其在给定数据集上的性能以确保构建的机器学习管道(ML Pipeline)具有低的泛化误差。
定义2:管道创建(Pipeline creation Problem)
定义3:管道性能(Pipeline Performance)
注:该定义仅限于监督学习,非监督和强化学习可通过选择适当的损失函数参照以上方式进行扩展。
AutoML框架主要解决搜索空间、搜索策略、性能预估策略三个方面的问题。
3)性能预估策略:超参数优化的目标是为了找到能够在待预测的新数据上实现高预测性能的超参数配置。性能预估最简单的选择是在数据集上进行标准的模型训练和模型验证,但计算成本很高,并且限制了可以探索的超参数组合的数量。因此,最近的许多研究都集中在开发降低这些性能评估成本的方法上。
三、CASH算法回顾
3.1 CASH定义
Combined Algorithm Selection andHyperparameter optimization
3.2 网络搜索与随机搜索算法
★ Grid Search:将连续超参数离散化,构成的搜索空间为n个离散化的超参的笛卡尔积空间。
★ Contradicting Grid Search:首先在粗粒度网格进行搜索,然后在表现较好配置点上进行细粒度的搜索。
★ Random Search:适合于具有多个局部极小值、不可导函数的求解;较网格搜索快。
3.3 基于模型的序列优化算法
基于模型的序列优化方法框架,包含三个核心部分:代理模型的选择、代理模型的更新和新超参组合的选取。
(序列迭代过程)
(算法流程)
3.4 遗传进化类算法
遗传算法是受大自然的启发,模拟生物在自然环境中的遗传和进化过程而形成的一种自适应、具有全局优化能力的随机搜索算法。
基本思路:通过从给定一个初始群体出发,利用选择算子、杂交算子以及变异算子来模拟自然进化,选择较优的一部分,逐步改进种群,一步步逼近最优解,以达到求解最优化问题的目的。
★ 应用于CASH优化:每个个体代表具有相应超参数的算法,将连续超参离散化。
删除:剔除某个超参数用默认值来代替;
插入:将某个未配置的超参数用某个值来代替;
变异:改变某个超参数的值;
交叉:选择两个个体的超参数子集进行合并。
▶▶▶ 优点:同一种群个体之间独立,易并行处理。
▶▶▶ 缺点:相比于贝叶斯优化不够高效,不太适合于算法选择,因为两个算法很难交叉。
粒子群算法的思想源于对鸟/鱼群捕食行为的研究,模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的。它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,通过追随当前搜索到的最优值来寻找全局最优。
① 在初始化范围内,对粒子群进行随机初始化,包括随机位置和速度;
② 计算每个粒子的适应值;
③ 更新粒子个体的历史最优位置;
④ 更新粒子群体的历史最优位置;
⑤ 更新粒子的速度和位置;
⑥ 若未达到终止条件,则转第2步;
(粒子群算法流程图)
每个寻优的问题解都被想像成一只鸟,称为“粒子”。所有粒子都在一个D维空间进行搜索。所有的粒子都由一个fitness function 确定适应值以判断目前的位置好坏。每一个粒子必须赋予记忆功能,能记住所搜寻到的最佳位置。每一个粒子还有一个速度以决定飞行的距离和方向。这个速度根据它本身的飞行经验以及同伴的飞行经验进行动态调整。
3.5 K-摇臂赌博机学习算法
基于一个概率来对探索和利用进行权衡。每次尝试时,以ε的概率进行探索,即以均匀概率随机选择一个摇臂;以1-ε的概率进行利用,即选择当前平均奖赏最高的摇臂(如有多个,则随机选取一个)。
3.6 基于梯度下降的算法
梯度下降(GD)是机器学习中较长使用的损失函数优化方法,随机梯度下降和批量梯度下降是两种迭代求解思路。
3.7 CASH算法的改进方向
从多保真近似、早停、集成学习、元学习、水平扩展性几个角度总结CASH算法的改进方向。
3.8 CASH算法对比
四、ML Pipeline合成方法回顾
▶▶▶ 优点:大大减少搜索空间
▶▶▶ 缺点:对于复杂数据,可能导致性能不佳
2)Pipeline of variable shape合成方法
▶▶▶ 优点:可解决复杂问题
▶▶▶ 缺点:易过拟合,计算开销大
4.2 Pipeline合成方法-AlphaD3M
利用了深度强化学习中self play的最新技术,结合蒙特卡洛树搜索,高效锁搜索高维空间。通过一个神经网络来预测pipeline的性能和下一步action的概率。
五、AutoML开源框架
▶▶▶ 优点:
① 基于元学习进行初始化加速;
② 对搜索的多个模型pipeline进行集成;
③ 采用的SMAC优化算法可处理结构化配置空间;
④ 可限制单个搜索实例的运行时间和占用内存;
⑤ 禁用部分耗时较长的数据预处理组合;
⑥ 基于pSMAC进行多核并行处理或跨机器并行;
由微软亚研院开源的自动机器学习工具。既支持神经网络架构搜索,也支持超参数搜索。
★ Configuration:指来自搜索空间的一个超参数组合实例,每个超参都会有一个特定的值。
★ Trial: 指一次尝试,它使用某组配置(如一组超参值或者特定的神经网络架构)。 Trial 基于提供的配置运行。
★ Tuner: 指一个自动机器学习算法,为下一个 Trial 生成新的配置。新的 Trial会使用这组配置来运行。
★ Assessor:通过分析 Trial 中间结果(如测试数据集上的精度),来确定 Trial 是否应该被提前终止。
★ Training Platform:指Trial 的执行环境。根据 Experiment的配置,可以是本机、或其它大规模训练平台(如K8S)。
▶▶▶ 优点:
① 支持多种模型框架和基础算法库;
② 多种Tunner、Assessor可选,且支持自定义;
③ 可以local、remote、cluster多种模式执行;
④ 具有Web UI,提供了试验管理和对比功能;
▶▶▶ 缺点:
① 不支持机器学习pipeline的自动创建;
② 需用户配置搜索空间,无默认值;
③ 未利用元学习和搜索结果集成进一步优化;
5.3 AutoML开源框架对比
从对代码的侵入性、超参数搜索算法范围、NAS、早停策略、算法的扩展性、并行/分布式、UI等维度进行对比。
(某基于XGBoost的回归模型)
验证集RMSE提升:(3930337 – 3004705) / 3930337 =23.55%
(2)真实案例实践二
(某基于DNN的多分类模型)
验证集AUC提升:(0.949353 - 0.946338) / 0.946338= 0.32%
六、AutoML开放性问题
从六个方面探讨AutoML领域目前存在的开放性问题及未来研究方向。
★ OptimizationTechniques
(更智能优化算法的提出和创新,如基于梯度的方法改进)
★ CompleteAutoMLPipeline
(在避免过拟合和提高泛化能力的前提下,对完整MLPipeline的自动学习)
★ Reproducibility&Interpretability
(如何控制搜索结果的可复现性,约束搜索的结果不仅性能好,还具有可解释性)
★ Efficiency&Scalability
(优化算法的效率问题,算法的并行化/分布式改造)
★ LifelongLearn
(终身学习,持续迭代优化)
★ Benchmarks&Comparability
(统一的比较基准和性能度量指标)
招纳贤才
1、算法实践 | 面向中文地址的预训练语言模型GeoBERT
3、首次公开:京东数科强一致、高性能分布式事务中间件JDTX
全是技术干货,快关注它!