自动机器学习(AutoML)是将机器学习应用于现实问题的端到端流程自动化的过程。
传统机器学习模型大致可分为以下四个部分:数据采集、数据预处理、优化、应用;
其中数据预处理与模型优化部分往往需要具备专业知识的数据科学家来完成,他们建立起了数据到计算的桥梁。
然而,即使是数据科学家,也需要花费大量的精力来进行算法与模型的选择。
机器学习在各种应用中的成功,导致对机器学习从业人员的需求不断增长,因此我们希望实现真正意义上的机器学习,让尽可能多的工作也能够被自动化完成,进一步降低机器学习的门槛,让没有该领域专业知识的人也可以使用机器学习来完成相关的工作。
AutoML应运而生。
从传统机器学习模型出发,AutoML从特征工程、模型构建、超参优化三方面实现自动化;并且也提出了end-to-end的解决方案。本专栏,贯彻AutoML的思想,将门槛降到最低,简略介绍原理,侧重介绍AutoML开源工具的使用方法。本篇文章主要对AutoML各个工具的优劣特性进行总结对比。
2 .为什么需要自动特征工程
在机器学习步骤中,特征工程会耗费数据科学家大量的人力去进行特征的提取和筛选,不仅耗费大量的时间,而且效率也不高。因此需要自动特征工程来将这些操作自动化,节省数据科学家的时间。
3.常见的特征工程工具总结和比较
本专栏调研了以下五种常用超参优化工具,并逐一撰写了报告发表在本专栏。
https://zhuanlan.zhihu.com/p/93109455
特征工程工具总结(1)——Tsfresh
特征工程工具总结(2)——Trane
特征工程工具总结(3)——Categorical Encoding
特征工程工具总结(4)——boruta_py
特征工程工具总结(5)——Featuretools
关于各个特征工程工具的细节可在以上链接中点击查阅。这里对这五种特征工程工具的功能、原理、优缺点等方面进行了评估了对比。
二、模型构建
此处模型构建特指深度学习框架,关于深度学习框架的介绍不在本专栏的调研范围内,因此我们只简要对深度学习框架做一个简单对比。
深度学习框架链接起了整个AI生态:上层算法应用基于框架搭建,底层芯片入口适配框架开发。
三、超参优化工具总结
1.什么是超参数优化
超参数是机器学习在学习之前预先设置好的参数,而非通过训练得到的参数,例如树的数量深度, 神经网络的学习率等,甚至在超参学习中神经网络的结构,包括层数,不同层的类型,层之间的连接方式等,都属于超参数的范畴。
手动修改调参既耗费大量的人力和时间,同时也难以寻找优化的方向,而对超参数选择进行优化既能节省大量人力和时间,又能让学习获得更好的性能和效果。因此出现了一系列的超参优化的工具来简化和改进超参选择和调整的过程。
2. 十种超参优化工具的总结和比较
本专栏调研了以下十种常用超参优化工具,并逐一撰写了报告发表在本专栏。
https://zhuanlan.zhihu.com/p/93109455
超参优化工具总结(1)——Skopt
超参优化工具总结(2)——Hyperopt
超参优化工具总结(3)——Simple(x)
超参优化工具总结(4)——Ray.tune
超参优化工具总结(5)——Chocolate
超参优化工具总结(6)——GpFlowOpt
超参优化工具总结(7)——FAR-HO
超参优化工具总结(8)——Xcessiv
超参优化工具总结(9)——HORD
超参优化工具总结(10)——ENAS
超参优化工具总结(11)——NNI
关于各个超参优化工具的细节可在以上链接中点击查阅。这里从优化范围、基本配置、优化算法、各自的特点等五个方面对十一种工具进行了评估了对比。(注:表格增加了NNI的超参优化部分与其他超参优化工具的对比)
并对10种超参优化工具评分如下:
最终排名如下:
四、AutoML开源框架分析
AutoML开源框架集成了特征工程模型构建以及超参优化,是一种全管道的AutoML工具。
本专栏调研了以下五个常用的AutoML开源框架,并逐一撰写了报告发表在本专栏。
https://zhuanlan.zhihu.com/p/93109455
深度解析AutoML框架——MLBox:十行代码完成Titanic生存预测
深度解析AutoML框架——Autokeras:入门指南
深度解析AutoML框架——TPOT:一键生成ML代码,释放双手
深度解析AutoML框架——H2O:入门指南
深度解析AutoML框架——Auto_ml:初识AutoML的引路人
关于各个开源框架的细节可在以上链接中点击查阅。这里从AutoML框架的特征工程、模型支持、超参优化、特性以及安装和上手难度五个方面最五个框架进行了评估了对比。
可以看出,除了AutoKeras,其余框架均对特征工程有较强的支持,但支持的模型大多是传统机器模型。AutoKeras对神经网络支持较好,也因此对特征工程要求较低,它也是五种框架中唯一支持NAS的框架。TPOT支持显式地生成可执行代码,而MLBox甚至无法输出模型,只能输出对test的预测结果。H20是一款更加产品化的框架,有WebUI界面展示过程,对用户更加友好。auto_ml基础但全面,它更像是一个用于新手的教练机,没有特别的亮点但基本功能一应俱全。
在学术界,AutoML是一个活跃的新兴领域,大量关于AutoML的论文出现在机器学习会议与期刊中,同时也有很多开创性的开源项目(例如本文中列举的各类工具)受到大家的关注。在工业界,也有许多成熟的AutoML的产品,如专注特征工程的FeatureLab、包含NAS的Google's Cloud。这些产品都很大程度上帮助了机器学习从业人员将想法快速便捷的应用、落地。未来,AutoML能让机器学习自动化到什么程度、在算力需求上能否大众化、相关的优化理论能否加速整个学习过程?我们与您共同期待。