赞
踩
自动化机器学习要解决的问题是,针对特定的一类或若干类机器学习任务,在没有人类专家干预且计算资源有限的条件下,自动化地构造机器学习算法流程。机器学习算法流程包括根据数据建立算法模型、算法效果评估、不断优化算法效果等。
研究方向包括:自动化特征提取、自动化模型选择、自动化模型参数调优、自动化模型结构搜索、自动化模型评估、元学习、迁移学习等。
机器学习模型的选择和超参数的指定统称为机器学习模型的配置。对于一个给定的机器学习问题和一个数据集,我们可以配置一个具体的机器学习模型,然后在这个数据集上训练并拿到测试效果指标。如果把一个具体的机器学习模型的配置记为 λ \lambda λ(模型类型以及模型的超参数取值等),所有可能的配置参数空间记为 Λ \Lambda Λ,效果指标记为 f ( λ ) = L ( λ , D train , D valid ) f(\lambda)=\mathcal{L}\left(\lambda, \mathcal{D}_{\text {train }}, \mathcal{D}_{\text {valid }}\right) f(λ)=L(λ,Dtrain ,Dvalid ),则要优化的问题可定义为 λ ∗ = argmax λ f ( λ ) \lambda^{*}=\operatorname{argmax}_{\lambda} f(\lambda) λ∗=argmaxλf(λ),其中 f ( λ ) f(\lambda) f(λ)是要优化的目标函数, λ ∗ \lambda^{*} λ∗是模型的最优配置。
通常来说,机器学习模型配置的优化目标函数是一个黑盒函数,因此大多数算法应用者会依据对数据集或业务场景的领域知识、对机器学习算法的理解以及直觉来指定一组或者尝试少量组模型配置进行训练并验证,然后选择一个最优的。当计算资源相对充足,同时对效果指标有较高追求时,自动化调优的方法变得可行。
网格搜索把模型的配置参数空间 Λ \Lambda Λ划分成网格,然后给模型训练、验证程序加一个最外层循环,在此循环内遍历所有网格点并训练得到效果指标,最后挑出效果指标最优的那个配置。通常配置参数有种类型(算法种类、激活函数种类)、整型(网络层数、神经元个数)和连续型(学习率、正则化项系数)。对于种类型参数,只需按种类遍历即可;对于整型和连续型参数,可以采取均匀划分或对数均匀划分。
随机搜索是在模型的配置参数空间 Λ \Lambda Λ内进行随机采样,然后训练验证,通过多次尝试得到最优的配置参数。随机搜索可以在有限的计算资源下,通过调节采样率覆盖更大的搜索空间,不会受到组合爆炸的限制。
贝叶斯优化是,先随机尝试一些配置参数
λ
1
,
λ
2
,
.
.
.
,
λ
n
\lambda_{1},\lambda_{2},...,\lambda_{n}
λ1,λ2,...,λn,并训练验证得到效果指标
f
1
,
f
2
,
.
.
.
,
f
n
f_{1},f_{2},...,f_{n}
f1,f2,...,fn;然后根据这些
f
(
λ
)
f(\lambda)
f(λ)的采样值,通过贝叶斯公式推断出
f
f
f在任意
λ
\lambda
λ下的后验概率分布
p
(
f
∣
λ
)
p(f|\lambda)
p(f∣λ);根据这个后验分布可以去选择一个在当前已知信息下最优的
λ
∗
\lambda^{*}
λ∗作为下一次训练验证尝试的配置参数。
贝叶斯优化是一个顺序优化的过程,两个关键步骤分别是计算
f
(
λ
)
f(\lambda)
f(λ)的后验分布和在后验分布下寻求最优的
λ
∗
\lambda^{*}
λ∗。第一个步骤需要对
f
(
λ
)
f(\lambda)
f(λ)进行统计建模,常见的建模方法有高斯过程回归、随机森林、树形Parzen估计和深度神经网络;第二个步骤需要将后验分布变换成一个可优化的目标函数,这个目标函数称为获得函数。
神经网络架构搜索(NAS)可以在一定的可选范围内选择适用的网络架构,也可以在科研工作中搜索和设计新颖的网络架构。NAS的搜索范围包括网络的拓扑结构(网络的总层数和连接方式)、卷积核的大小和种类、时序模块的种类、池化的类型等。在定义神经网络架构搜索时,一般会将这些待搜索的网络架构以参数的形式表达出来,形成搜索空间。
一般的NAS算法的工作流程是,定义特定的搜索空间,使用特定的搜索策略在搜索空间中找到某网络架构 A A A,对网络架构 A A A进行评估,反馈结果并进行下一轮搜索。
搜索空间是网络架构的定义域,一个良好的搜索空间是NAS的基础。基本的链式架构的约束参数主要包括链式架构的总层数、每一层的网络种类以及对应的超参数等。多分支架构考虑到重复的元胞(cell)或块(block)结构,因此产生了基于元胞或块的搜索空间。
搜索策略是NAS的核心,一般分为:
评估策略用来评估搜索出的架构的好坏。由于每生成一个新架构都要进行一次性能评估,而性能评估过程一般计算量巨大,需要先训练网络,因此评估策略一般也是NAS算法的性能瓶颈。围绕着评估策略的大部分工作,其主要目的都是在保持一定准确度的情况下尽可能减少计算量。
一次架构搜索是NAS中的一种性能优化方法,基本原理是将整个搜索空间中可能的候选框架都视为一个超级图的子图,这样只需训练一次超级图就可以完成所有子图在验证集上的性能评估。
所有架构均分享超级架构的权重,因此只需要训练一次超级架构,就可以直接评估所有架构的性能,大大节约了NAS的整体时间。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。