AutoML
AutoML综述
关于机器学习应用的方方面面,如特征工程,模型选择,参数调整都需要人工干预,那是否能让机器自身“improving automatically with experience”?,以实现机器学习解决方案的快速部署更新,并且使人们更多的关注应用和商业价值。
AutoML的定义
3个目标(最优性能,无人工干预,计算量小)
Definition 1 (Machine learning [1]). A computer program is said to learn from experience E with respect to some classes of task T and performance measure P if its performance can improve with E on T measured by P
Definition 2 (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
一个现有AutoML方法的通用框架
能涵盖不同的自动化任务(特征选择,模型选择,优化算法选择,NAS(neural architecture search))
- 基于“what to automate and how to automate”对现有AutoML方法进行了有效的分类:
-
基于上述框架对现有AutoML方法的深入分析:
-
learning process/learning tools
我们关注哪个过程的学习
我们可以用到的工具有哪些
跟优化配置有关的有哪些
AutoML对于自动生成原始特征并没有很大提升,因为这一过程极大的依赖于应用场景和人类经验。
-
-
optimizer
优化器能应用在哪些搜索空间里
优化器需要什么反馈
生成一个最优配置需要更新多少次
-
evaluator
能否进行快速评估?
能否准确评估?
需要什么样的反馈?
Direct evaluation:结果准确但是计算量大
Sub-sampling
Early stop
Parameter reusing
Surrogate evaluator
高级AutoML技术
- meta-learning:从一个具体的问题中抽取已有的知识,并用来解决现有问题
- transfer-learning
AutoML的几个应用实例
Auto-SKLearn:
NASNet:
ExploreKit
不断的在已有特征的基础上产生候选特征,特征排序,特征评估选择,叠加
AotoML的4个研究方向
-
特征生成:人类基于经验设计的特征提取方法cv方向(SIFT,HOG),nlp(TF-IDF),基于网络自动生成特征(SIFT->CNN,TF-IDF->RNN),新研究DSM,特征的自动生成还是一个热门研究的方向。
-
技术:在基础的AutoML技术上,计算量较大,怎么实现配置和参数更新同步;在高级技术上,怎么优化meta-learning的学习策略,怎么将transfer-learning在更广的领域应用
-
应用:本文的分析是基于监督学习进行的,基于其他领域的AutoML技术的应用的挑战还是有的
-
理论:现有的优化方法对于AutoML计算效率的实际提升效果还有待确认;AutoML可以解决的问题还很有限
AutoML开源库
Benchmarking Automatic Machine Learning Frameworks
-
-
优点:融合了ScikitLearn, XGBoost, TensorFlow, Keras, and LightGBM,支持时间类型数据
-
缺点:扩展性差,无法对训练时间做限制
-
-
通过不同数据集的探究,采用meta-learning选出k个初始化配置进行算法模型的最佳初始化并对贝叶斯优化过程进行预热
-
通过贝叶斯优化自动构建模型集合
-
基于sklearn的表现较好的分类器和预处理方案精心设计一个高度参数化的机器学习框架
-
通过在不同数据集上的对比,auto-sklean的每个组件部分都表现稳定且性能良好
ML framework:15个分类器,14种特征预处理方法,和4个数据预处理方法,产生结构化的110 hyperparameters;超参数在组件被应用的时候才会用到(基于SMAC)
-
优点:使用了meta-learning和基于SMAC3的贝叶斯优化,可以对运行时间做限制
-
缺点:不支持nlp,不支持string分类特征,仅支持Linux系统
-
-
优点:基于sklean,可以对运行时间做限制,优化过程支持暂停和重启,模型支持导出修改
-
缺点:不支持nlp,不支持string分类特征
-
-
h2o:分布式AutoML框架
-
优点:可配置选择算法,运行时间,交叉验证;特征工程和超参数执行彻底的暴力搜索,支持格点搜索和随机搜索;支持框架内模型的保存和重载
-
缺点:需配置的资源较多
-
参考资源: