简介:什么是AutoML?
Machine Learning近年来已经取得了相当大的成功,一大批学科的前进都依赖于它。但是,这些成功都需要机器学习专家去执行以下任务:
Preprocess the data(数据预加工)
Select appropriate features(选择合适的特征)
Select an appropriate model family(选择一个合适的模型族)
Optimize model hyperparameters(优化超参数模型)
Postprocess machine learning models(机器学习模型后处理)
Critically analyze the results obtained(严谨地分析所得结果)
当任务的复杂度经常会令非机器学习专家头疼的时候,一大批机器学习的应用应运而生。这些现成的机器学习方法不需要专家的知识,同时可以简单的使用。我们将由此产生的领域称之为Targets progressive automation of machine learning,AutoML。
虽然它聚焦于让用户不需要专业的机器学习知识。AutoML同样为机器学习专家提供了新工具,比如:
Perform architecture search over deep representations(在深度学习中执行框架搜索)
Analyse the importance of hyperparameters(分析超参数的重要性)
通过编程中优化的范式,AutoML主张开发灵活的数据包。这些数据包可以通过数据驱动的方式自动实例化。
AutoML的一些例子
AutoML的目标是可以让机器学习的菜鸟来编写一些立即可用的软件。以下的一些例子说明了这是可行的:
众所周和,Deep neural networks(深度神经网络)依赖于其中众多的超参数,并且模型优化程序在设置超参数方面取得的结论已经比人类的更好。(Bergstra et al, Snoek et al)
Making a science of model search:一个复杂型计算机视觉框架可以自动进行实例化,并且可以产生3种类型的任务结果:face matching(人脸对比),face identification(人脸识别),object recognition(物体识别)
方法
AutoML用到了很多机器学习的学科,最显著的包括:
Bayesian optimization(贝叶斯优化)
Regression models for structured data and big data(结构化数据和大数据的回归模型)
Meta learning(元学习)
Transfer learning(迁移学习)
Combinatorial optimization(组合优化)
超参数优化系统
当今一些使用贝叶斯优化来优化机器学习超参数的系统极大促进了AutoML。它们包括:
Hyperopt, including the TPE algorithm
我们同样提供了两个函数包用来优化超参数:
SMAC3 – a python re-implementation of the SMAC algorithm