Taking the Human out of Learning Applications: A Survey on Automated Machine Learning
聚焦 supervised-learning,根据 AutoML 框架总结 AutoML 相关的方法。
文章目录
1. 定义与框架
1.1. 定义
Definition (AutoML): AutoML attempts to construct machine learning programs (specified by E , T and P in Definition 1), without human assistance and within limited computational budgets.
The three goals of AutoML:
a. Good performance: good generalization performance across various input data and learning tasks can be achieved;
b. No assistance from humans: configurations can be automatically done for machine learning tools; and
c. High computational efficiency: the program can return an reasonable output within a limited budget
1.2. 框架
我们在 AutoML 控制器中有两个关键成分,即 optimizer(优化器)和 evaluator(评估器)。
- optimizer:①更新或生成学习工具的配置
- evaluator:从优化器得到一个配置后,① a. 评估器根据这个配置以及输入数据,训练一个模型来评估效果;b. 评估器直接根据外界知识来评估配置。② 评估器给出反馈。
2. 自动化什么(问题设定) 与 如何自动化(优化器 + 评估器)
2.1. “What to automate”: Problem Setup
根据问题设定可以对AutoML方法进行分类,三个问题:
a. learning process: 我们关注的是哪个学习过程?
b. learning tools: 这个学习过程可以设计和使用(自己的理解:属于)哪个学习工具?
c. search space: 期待得到的相应配置是什么样的?
2.1.1. Feature Engineering
目标:从数据中自动构造特征,使后续的学习工具具有良好的性能。分为创造特征与增强特征,这里只讨论特征增强。
方法:
- Dimension reduction (降维):PCA, LDA, auto-encoders
- Feature generation (特征生成):基于一些预定义的操作,从原来的特性构建新的特性
- Feature encoding (特征编码):根据从数据中获得的一些信息重新解释原始特征。sparse coding, local-linear coding, kernel methods
2.1.2. Model Selection
目标:自动选择分类器,设置分类器的超参数,获得良好的学习性能
常见可供选择的分类器:
2.1.3. Optimization Algorithm Selection
目标:自动找到优化算法,使效率和性能达到平衡
常见可供选择的优化算法:
2.1.4. NAS
目标:搜索适合学习问题的好的深度网络架构
以CNN为例,每个卷积层的设计选择有:
2.2. “How to automate: Basic Techniques”
2.2.1. Optimizer Techniques
根据优化策略可以对AutoML方法进行分类,三个问题:
a. search space: 优化器可以在什么样的搜索空间上操作?
b. feedbacks: 它需要被提供什么样的反馈?
c. converge: 在找到一个好的配置之前,它需要生成/更新多少配置?
常见方法:
- Simple Search Approaches
- Grid search (brute-force, 网格搜索)
- Random search (随机搜索):它在搜索空间中随机抽样配置。随机搜索可以比网格搜索在更重要的维度上探索更多。
- Optimization from Samples
迭代地根据先前评估的样本生成新的配置:- 启发式搜索
- Particle swarm optimization (PSO, 粒子群算法):SVM的特征选择、模型选择
- Evolutionary algorithms (遗传算法):应用在 特征选择生成、模型选择、NAS
- Model-Based Derivative-Free Optimization (基于模型的无导优化): 基于已访问过的样本构建一个模型。充分利用评价器的反馈,有助于生成更好的新样本
- Bayesian optimization (贝叶斯优化):① 建立一个概率模型,如高斯过程,基于树的模型或深度网络,将配置映射到它们的带有不确定性的性能。② 然后,基于概率模型定义一个获取函数,如期望提升、置信上限等,在搜索过程中平衡探索和利用。③ 在每次迭代中,通过优化获取函数生成一个新的样本,并在评估后用于更新概率模型。
- Classification-based optimization (CBO, 基于分类的优化):① 基于分类的优化学习了一个分类器,该分类器将搜索空间分为 positive 和 negtive 两个区域。② 然后,在更有可能得到更好配置的正区域随机生成新的样本。
- Simultaneous Optimistic optimization (SOO):分支限界策略
- Reinforcement Learning (强化学习):RL中的策略作为优化器,其在环境中的实际性能由评估器测量。然而,反馈(即奖励和状态)不需要在采取行动后立即返回,有滞后。
- 启发式搜索
- Gradient descent
通常AutoML的优化问题是不可微甚至是不连续的,所以梯度下降法应用的少。
传统优化中,梯度可以直接从目标定义中派生,但AutoML中,梯度计算的两种方法:- finite differentiation methods : 数值计算梯度
- reversible learning (automatic differentiation) : 它利用链式法则计算梯度,这种方法也应用于网络训练的反向传播过程中
- Greedy search
贪心策略主要用在 multi-step decision-making problem(多步决策问题)。在AutoML中主要的应用有NAS问题、搜索空间极大的特征生成问题 上等。 - Other technique
改变搜索空间的格局,从而可以使用更强大的优化技术。
例如:NAS中使用 soft-max 或 encoder-decoder framework 将空间变为连续的
2.2.2 Evaluator Techniques
一旦优化器生成了候选配置,评估器需要评估它的性能。三个问题:
a. fast: 它能够快速评估吗?
b. accuracy: 它能够准确评估吗?
c. feedbacks: 它需要提供怎样的反馈?
常见方法:
- Direct evaluation (直接评估)
从优化器那里得到一组配置后,在训练集上训练模型,然后在验证集上评估配置的性能
准确,但是费时 - 改进
- Sub-sampling (二次抽样):使用训练数据集的一部分样本或一部分特征来训练模型。
- Early stop:在训练的早期就停止,根据当前训练集的准确率来评估。
- Parameter reusing (参数复用):用上次评估训练出的模型作为起点,热启动训练。
- Surrogate evaluator (代理评估):根据过去评估的经验,建立一个预测给定配置性能的模型。应用场景限于超参数优化,因为其他类型的配置往往难以量化。
2.3. “How to automate: Experienced Techniques”
基于经验的技术从过去的搜索或外部数据中学习和积累知识。它们通常需要与基础技术相结合,主要包括:
- meta-learning (元学习) :它从过去的学习中提取关于学习问题和工具的元知识(例如,元特征和性能),并训练元学习器以促进未来
- transfer learning (迁移学习):它直接使用过去学习的最终或中间结果(例如,最佳配置或代理模型)
2.3.1. Meta-Learning (元学习)
元学习从过去的经验中学习特定的学习工具如何解决给定的问题的知识。然后应用其为即将出现的问题推荐或构建合适的学习工具。
分为三类:
- 配置评估的元学习(用于评估器);
- 配置生成的元学习(用于优化器);
- 动态配置调整的元学习。
2.3.1.1. 元学习的框架
① meta-knowledge (获得元知识): =
学习问题和学习工具的元特征 (数据集的统计属性,学习工具的超参数等)
+ 关于元学习目标的经验知识 (学习工具的性能,特定问题用哪些特定工具)
② meta-learners (训练元学习器):通过元知识进行训练元学习器。
③ meta-predictions (作出预测):经可以应用过训练的元学习器在即将出现的、特征化的学习问题,来作出预测。
2.3.1.2. 元学习的应用分类
每一类都有特定的 元知识、元学习器:
- Configuration Evaluation (配置评估)
- Model evaluation (模型评估)
- General configuration evaluation (配置评估)
- Configuration Generation (配置生成)
- Promising configuration generation (生成可行配置)
- Warm-starting configuration generation (热启动):给定一个新的学习任务,识别过去在元特征空间中最接近它的任务,并使用它们性能最好的配置来初始化搜索。
- Search space refining (精炼搜索空间)
- Dynamic Configuration Adaptation (动态调整配置)
concept drift
:在单个数据集中,数据分布会有所不同。- Concept drift detection (概念漂移识别):通过训练模型监测数据分布的变化来识别概念漂移
- Dynamic configuration adaptation (动态调整配置)
2.3.2. Transfer-Learning (迁移学习)
迁移学习利用源领域和学习任务中的知识 (通常是源配置生成或评估的最终或中间结果),然后来改进目标领域和学习任务上的学习。
在AutoML中,迁移的源和目标要么是配置生成,要么是配置评估,其中前一个设置在AutoML实例之间传递知识,后一个设置在AutoML实例内部传递知识
2.3.2.1. 迁移学习的框架
2.3.2.2. 迁移学习的应用分类
每一类都有特定的 迁移源、迁移目标和迁移内容:
- Configuration Evaluation (配置评估)
- Model parameter transfer(模型参数迁移):在评估的时候用之前评估过程中训练的模型初始化,加速评估的训练过程
- Function-preserving transformation
- Configuration Generation (配置生成)
- Surrogate model transfer (代理模型迁移):在类似于贝叶斯优化这类模型中,迁移上一次训练的模型参数或组件
- Network cell transfer (网络元迁移):在NAS问题中,可以先用少部分数据找出最优网络元,然后迁移成大的网络。
2.3.3. 总结
元学习是从元特征 => 配置的角度,以端到端的方式促进自动化。
迁移学习是从迁移评估器或优化器的角度,促进自动化
3. 例子
3.1. Model Selection using Auto-sklearn
在 Auto-sklearn 中, 模型选择被形式化为一个 CASH problem
Let
F
=
{
F
1
,
⋯
,
F
R
}
\mathcal{F}=\left\{F_{1}, \cdots, F_{R}\right\}
F={F1,⋯,FR} be a set of learning models, and each model has hyper-parameter
θ
j
\theta_{j}
θj with domain
Λ
j
,
D
train
=
{
(
x
1
,
y
1
)
,
⋯
,
(
x
n
,
y
n
)
}
\Lambda_{j}, \mathcal{D}_{\text {train }}=\left\{\left(\mathbf{x}_{1}, y_{1}\right), \cdots,\left(\mathbf{x}_{n}, y_{n}\right)\right\}
Λj,Dtrain ={(x1,y1),⋯,(xn,yn)} be a training set which is split into
K
K
K cross-validation folds
{
D
train
1
,
⋯
,
D
train
K
}
\left\{\mathcal{D}_{\text {train }}^{1}, \cdots, \mathcal{D}_{\text {train }}^{K}\right\}
{Dtrain 1,⋯,Dtrain K} and
{
D
valid
1
,
⋯
,
D
valid
K
}
\left\{\mathcal{D}_{\text {valid }}^{1}, \cdots, \mathcal{D}_{\text {valid }}^{K}\right\}
{Dvalid 1,⋯,Dvalid K} with
D
train
i
∪
\mathcal{D}_{\text {train }}^{i} \cup
Dtrain i∪
D
valid
i
=
D
train
\mathcal{D}_{\text {valid }}^{i}=\mathcal{D}_{\text {train }}
Dvalid i=Dtrain for
i
=
1
,
…
,
K
i=1, \ldots, K
i=1,…,K. Then, the Combined Algorithm Selection and Hyper-parameter (CASH) optimization problem is defined as
F
∗
,
θ
∗
=
argmin
θ
∈
Λ
j
F
j
∈
F
1
K
∑
i
=
1
K
min
w
L
(
F
j
(
w
;
θ
)
,
D
train
i
,
D
valid
i
)
F^{*}, \theta^{*}=\underset{\substack{\theta \in \Lambda_{j} \\ F_{j} \in \mathcal{F}}}{\operatorname{argmin}} \frac{1}{K} \sum_{i=1}^{K} \min _{\mathbf{w}} \mathcal{L}\left(F_{j}(\mathbf{w} ; \theta), \mathcal{D}_{\text {train }}^{i}, \mathcal{D}_{\text {valid }}^{i}\right)
F∗,θ∗=θ∈ΛjFj∈FargminK1i=1∑KwminL(Fj(w;θ),Dtrain i,Dvalid i)
where
L
(
F
j
(
w
j
;
θ
j
)
,
D
train
i
,
D
valid
i
)
\mathcal{L}\left(F_{j}\left(\mathbf{w}_{j} ; \theta_{j}\right), \mathcal{D}_{\text {train }}^{i}, \mathcal{D}_{\text {valid }}^{i}\right)
L(Fj(wj;θj),Dtrain i,Dvalid i) denotes the loss that
F
j
F_{j}
Fj achieves on
D
valid
i
\mathcal{D}_{\text {valid }}^{i}
Dvalid i with parameter
w
j
\mathbf{w}_{j}
wj, hyper-parameter
θ
j
\theta_{j}
θj and training data
D
train
i
\mathcal{D}_{\text {train }}^{i}
Dtrain i.
存在的问题:
a. 由于目标没有明确的表达式,我们不知道它的性质,例如平滑程度。
b. 决策变量
θ
θ
θ 和
F
j
F_j
Fj 甚至可能不是连续的。
c. 每次都需要训练模型
F
j
F_j
Fj,时间花销很大。
采用的 AutoML 策略:
a. 优化器:一种基于树的贝叶斯优化方法
b. 评估器:基础直接评估
c. 集成:Auto-sklearn不是丢弃在配置空间中搜索过的模型,而是存储它们,并使用后处理方法构建它们的集成
3.2. Feature Construction using ExploreKit
ExploreKit 的优化器采用了一种贪婪的策略,分为三个迭代的过程:
① 候选特征生成:通过对已经选择的特征应用算子来构造新的特征
② 候选特征排序:通过元学习,利用特征工程的历史知识训练排序分类器,快速排序候选对象
③ 候选特征评估和选择:对候选特征进行更昂贵和准确的评估。验证集上的错误减少被用作特征重要性的度量。
4. 未来展望
- 问题设定方面:从数据中自动创建特性,而不只是特征增强
- 技术方面:
- 基础技术:开发更有效的基本技术 (更快找到最优解的优化器、更快更准的评估器)
- 给予经验的技术
- 元学习:更好地特征化学习问题、工具,更好地收集元知识,学习工具成功或失败的机理,自动化元学习。
- 迁移学习:自动确定何时以及如何转移哪些知识
- 应用层面:从监督学习到半监督学习、主动学习等
- 理论方面:
- 优化理论:目前不清楚各个优化器得到好配置的速度
- 学习理论:哪些学习问题可以自动化,明确AutoML方法的泛化能力 (需要多少训练数据,训练结果的置信区间)