人工智能和机器学习的突破是过去二十年中最激动人心的两个话题。机器学习和数据科学工程师需要广泛的研究和努力工作才能有效地理解和运行他们的模型。
虽然它们可能因人而异,但传统的机器学习步骤包括:
- 数据采集
- 数据探索
- 数据准备
- 特征工程
- 选型
- 模型训练
- 超参数调整
- 预测
虽然 8 个步骤在构建机器学习模型时可能看起来并不多,但从上面的步骤开始需要相当长的时间才能完善!
当非专业的机器学习从业者第一次经历这些步骤时,问题会更加严重;该过程通常需要更多时间和资源才能完成,即使如此,最终结果也可能与预期不符。
AutoML 通过为专家和非专家等人自动执行大部分模型创建过程而派上用场。
什么是自动机器学习 (AutoML)?
自动化机器学习,通常称为 AutoML,使机器学习变得更容易。AutoML 使用由给定框架完成的自动处理,使非机器学习专家更容易使用机器学习。
它专注于加速人工智能的研究和提高机器学习模型的效率。
传统的机器学习过程侧重于前面提到的所有 8 个步骤,而 AutoML 涵盖两个步骤:
- 数据采集是在将数据存储到数据仓库之前收集、过滤和清理所用数据的过程。
- 预测是指给定模型返回的实际输出,训练有素的模型很可能会返回准确的最终预测。
数据探索、 数据准备、特征工程、模型选择、模型训练和 最终模型调整的框架将涵盖其他 6 个步骤。
AutoML 的优势
- 提高工作效率
- 更好的最终结果
- 最小化错误
- 扩展机器学习
AutoML 流行框架
既然我们已经讨论了什么是 AutoML 并了解了它的一些优势,我们将介绍 10 大 AutoML 框架、在哪里可以找到它们以及它们提供的功能。
1. 谷歌自动机器学习
Google AutoML是最著名的可用框架之一,在我们的列表中排名第一。谷歌已经推出了许多 AutoML 框架,例如 Google AutoML vision、Google AutoML Natural Language 等。
2. 自动 SKLearn
之前接触过机器学习的用户可能对 SKlearn 这个名字并不陌生。作为流行的sci-kit-learn 库的附加组件,Auto SKLearn 是一个开源机器学习框架,可处理机器学习任务的自动化。
Auto Sklearn 框架能够执行其模型选择、超参数调整和表征,这是 Auto SKlearn 框架的一个独特功能。
通过执行模型选择,Auto SKlearn 将自动搜索能够处理用户给定问题的最佳算法。
转到 Auto SKlearn 的第二个功能,我们有超参数调整。作为任何机器或深度学习模型的最后步骤之一,用户应该找到最佳模型参数来优化结果。此任务需要大量时间,并且可以通过此类框架轻松实现自动化。
使用 Auto SKlearn 的独特和最终好处是它能够执行自动表征。表征是将原始数据转换为可用信息的过程。
3.TPot
TPOT,也称为 Tree Pipeline Optimization Tool,是最早的 python 开源 autoML 软件包之一。它专注于使用遗传编程优化机器学习管道。
TPOT 的主要目标是通过将管道的灵活表达式树表示与遗传编程等随机搜索算法相结合来自动构建 ML 管道。
请注意,TPOT 在sci-kit-learn library之上工作,必须先安装它。
4.AutoKeras
AutoKeras是一个为 AutoML 和深度学习模型构建的开源库,最初由 DATA 实验室开发。
Auto Keras 帮助非专家机器和深度学习爱好者以最小的努力运行和训练他们的模型。Auto Keras 的目标是让每个人都可以学习机器学习,它是初学者的绝佳工具
5.路德维希
Ludwig是一个开源 autoML 框架,主要侧重于使用简单的配置文件系统组装和训练深度学习模型。
通过让用户提供一个配置文件来定义给定模型的输入和输出及其各自的数据类型,Ludwig 框架将利用这些数据基于前面提到的属性构建其深度学习模型。
6. MLBOX
MLBOX正在崛起,并迅速成为顶级自动化机器学习框架工具之一。
根据MLBOX 官方文档,它提供了以下好处:
- 快速读取和分布式数据预处理/清理/格式化。
- 高度稳健的特征选择和泄漏检测。
- 高维空间中的精确超参数优化。
- 最先进的分类和回归预测模型(深度学习、堆叠、LightGBM 等)。
- 使用模型解释进行预测。
7. 自动关机
AutoGloun面向专家和非专家机器学习从业者,专注于自动化堆栈集成、深度学习和跨越图像、文本和表格数据的真实世界应用程序。
根据AutoGloun 在线文档,AutoGLoun 使用户能够:
- 仅需几行代码即可为原始数据快速构建深度学习和经典 ML 解决方案的原型。
- 在没有专业知识的情况下自动利用最先进的技术(在适当的情况下)。
- 利用自动超参数调整、模型选择/集成、架构搜索和数据处理。
- 轻松改进/调整定制模型和数据管道,或为特定用例定制 AutoGluon。
8.微软神经网络智能(NNI)
Microsoft Neural Network Intelligence,也称为 NNI,是一个工具包,旨在为深度学习自动化特征工程、神经架构搜索、超参数调整和模型压缩。
NNI 工具支持 PyTorch、TensorFlow、Scikit-learn、XGBoost、LightGBM 等框架。使用 Microsoft Neural Network 的主要好处是神经架构搜索,NNI 工具支持 Multi-trail(网格搜索、正则化进化、基于策略的 IRL 等)和 One-shot(DARTS、ENAS FBNet 等)神经架构搜索。
该工具提供了多种超参数调整算法,例如贝叶斯优化、穷举搜索和启发式搜索。查看 Github 上 NNI 的自述文件,了解有关此工具提供的其他内容的更多信息。
9. 变形怪
TransmogrifAI旨在帮助开发人员提高机器学习生产力。TransmogrifAI 在 Apache Spark 之上运行。
正如 Transmogrif 上的 Github 自述文件中简要提到的那样,“通过自动化,它可以达到接近手动调整模型的精度,并且时间减少了近 100 倍。”
与提到的其他 autoML 框架一样,TransmogrifAI 工具能够为用户选择的数据集选择最佳算法。
10. H2O 自动机器学习
H2O autoML是 H2O 创建的开源框架工具,同时支持 R 和 Python 编程。
它还支持最广泛使用的统计和机器学习算法,包括梯度提升机器、广义线性模型和深度学习。
H2O autoML 接口通过要求尽可能少的参数来适应新的机器学习用户。用户在使用 H2O 工具时的主要任务是提供数据集。
其他有用的 AutoML 工具
1.过度紧张
Hypertunity是一种轻量级工具,旨在使用轻量级包优化模型的给定超参数。它们模块化简单,可扩展以允许无缝调度实现。
Hypertunity 支持使用 GPyOpt、Slurm 兼容调度程序的贝叶斯优化,以及使用 Tensorboard 的实时可视化(通过 HParams 插件)。
2. 蜻蜓
Dragonfly是一种开源 autoML 工具,专为可扩展的贝叶斯优化而设计。
贝叶斯优化用于评估超出普通优化的非常昂贵的黑盒函数。
Dragonfly 允许新用户用最少的知识解决可扩展的贝叶斯优化错误。
3.雷音
作为我们的第二个超参数优化工具,Ray Tune是一个用于扩展 AI 和 Python 应用程序的统一框架。
它通过分布式数据处理、分布式训练、可扩展的超参数调整、可扩展的强化学习和可扩展的可编程服务来实现简单的 AI 工作负载扩展。
4.自动图学习
Auto Graph Learning是一个独特的 autoML 框架,它专注于图形数据集的机器学习,非常容易和简单。
他们使用数据集来维护基于 Pytorch Geometric 或 Deep Graph Library 中的 Datasets 的基于图的机器学习的数据集。
用于自动机器学习的 GitHub 存储库
随着机器和深度学习领域的进步,对机器学习专家的需求大幅增加却没有得到解决。
这就是机器学习工具和技术的自动化派上用场的地方,它允许新用户比以往任何时候都更轻松地构建功能齐全且高度优化的模型。
简而言之,在寻找完美的自动化机器学习工具时,您应该关注您尝试使用给定模型实现的目标以及您希望自动化的机器学习过程中的确切部分。我们建议您自己尝试上述几个 autoML 工具,然后只使用您认为高效且易于使用的几个。