0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分析四种自动化的机器学习工具包,更好地建立网络模型

如意 来源:机器之心 作者:Andre Ye 2020-09-22 14:47 次阅读

AutoML 是当前深度学习领域的热门话题。只需要很少的工作,AutoML 就能通过快速有效的方式,为你的 ML 任务构建好网络模型,并实现高准确率。简单有效!数据预处理、特征工程、特征提取和特征选择等任务皆可通过 AutoML 自动构建。

自动机器学习(Automated Machine Learning, AutoML)是一个新兴的领域,在这个领域中,建立机器学习模型来建模数据的过程是自动化的。AutoML 使得建模更容易,并且每个人都更容易掌握。

在本文中,作者详细介绍了四种自动化的 ML 工具包,分别是 auto-sklearn、TPOT、HyperOpt 以及 AutoKeras。如果你对 AutoML 感兴趣,这四个 Python 库是最好的选择。作者还在文章结尾文章对这四个工具包进行了比较。

auto-sklearn

auto-sklearn 是一个自动机器学习工具包,它与标准 sklearn 接口无缝集成,因此社区中很多人都很熟悉该工具。通过使用最近的一些方法,比如贝叶斯优化,该库被用来导航模型的可能空间,并学习推理特定配置是否能很好地完成给定任务。

该库由 Matthias Feurer 等人提出,技术细节请查阅论文《Efficient and Robust Machine Learning》。Feurer 在这篇论文中写道:

我们提出了一个新的、基于 scikit-learn 的鲁棒 AutoML 系统,其中使用 15 个分类器、14 种特征预处理方法和 4 种数据预处理方法,生成了一个具有 110 个超参数的结构化假设空间。

auto-sklearn 可能最适合刚接触 AutoML 的用户。除了发现数据集的数据准备和模型选择之外,该库还可以从在类似数据集上表现良好的模型中学习。表现最好的模型聚集在一个集合中。

分析四种自动化的机器学习工具包,更好地建立网络模型

图源:《Efficient and Robust Automated Machine Learning》

在高效实现方面,auto-sklearn 需要的用户交互最少。使用 pip install auto-sklearn 即可安装库。

该库可以使用的两个主要类是 AutoSklearnClassifier 和 AutoSklearnRegressor,它们分别用来做分类和回归任务。两者具有相同的用户指定参数,其中最重要的是时间约束和集合大小。

更多 AutoSklearn 相关文档请查阅:https://automl.github.io/auto-sklearn/master/。

TPOT

TPOT 是另一种基于 Python 的自动机器学习开发工具,该工具更关注数据准备、建模算法和模型超参数。它通过一种基于进化树的结,即自动设计和优化机器学习 pipelie 的树表示工作流优化(Tree-based Pipeline Optimization Tool, TPOT),从而实现特征选择、预处理和构建的自动化。

分析四种自动化的机器学习工具包,更好地建立网络模型

图源:《Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data Science》 。

程序或 pipeline 用树表示。遗传编程(Genetic Program, GP)选择并演化某些程序,以最大化每个自动化机器学习管道的最终结果。

正如 Pedro Domingos 所说,「数据量大的愚蠢算法胜过数据有限的聪明算法」。事实就是这样:TPOT 可以生成复杂的数据预处理 pipeline。

分析四种自动化的机器学习工具包,更好地建立网络模型

潜在的 pipelie(图源:TPOT 文档)。

TPOT pipeline 优化器可能需要几个小时才能产生很好的结果,就像很多 AutoML 算法一样(除非数据集很小)。用户可以在 Kaggle commits 或 Google Colab 中运行这些耗时的程序。

也许 TPOT 最好的特性是它将模型导出为 Python 代码文件,后续可以使用它。具体文档和教程示例参见以下两个链接:

TPOT 文档地址:https://epistasislab.github.io/tpot/。

TPOT 的教程示例地址:https://epistasislab.github.io/tpot/examples/

HyperOpt

HyperOpt 是一个用于贝叶斯优化的 Python 库,由 James Bergstra 开发。该库专为大规模优化具有数百个参数的模型而设计,显式地用于优化机器学习 pipeline,并可选择在多个核心和机器上扩展优化过程。

但是,HyperOpt 很难直接使用,因为它非常具有技术性,需要仔细指定优化程序和参数。相反,作者建议使用 HyperOpt-sklearn,这是一个融合了 sklearn 库的 HyperOpt 包装器。

具体来说,HyperOpt 虽然支持预处理,但非常关注进入特定模型的几十个超参数。就一次 HyperOpt sklearn 搜索的结果来说,它生成了一个没有预处理的梯度提升分类器:

如何构建 HyperOpt-sklearn 模型可以查看源文档。它比 auto-sklearn 复杂得多,也比 TPOT 复杂一点。但是如果超参数很重要的话,它可能是值得的。

文档地址:http://hyperopt.github.io/hyperopt-sklearn/

AutoKeras

与标准机器学习库相比,神经网络和深度学习功能更强大,因此更难实现自动化。AutoKeras 库有哪些功效呢?具体如下:

通过 AutoKeras,神经框架搜索算法可以找到最佳架构,如单个网络层中的神经元数量、层数量、要合并的层、以及滤波器大小或 Dropout 中丢失神经元百分比等特定于层的参数。一旦搜索完成,用户可以将其作为普通的 TF/Keras 模型使用;

通过 AutoKeras,用户可以构建一个包含嵌入和空间缩减等复杂元素的模型,这些元素对于学习深度学习过程中的人来说是不太容易访问的;

当使用 AutoKeras 创建模型时,向量化或清除文本数据等许多预处理操作都能完成并进行优化;

初始化和训练一次搜索需要两行代码。AutoKeras 拥有一个类似于 keras 的界面,所以它并不难记忆和使用。

AutoKeras 支持文本、图像和结构化数据,为初学者和寻求更多参与技术知识的人提供界面。AutoKeras 使用进化神经网络架构搜索方法来减轻研究人员的繁重和模棱两可的工作。

尽管 AutoKeras 的运行需要很长时间,但用户可以指定参数来控制运行时间、探索模型的数量以及搜索空间大小等。

AutoKeras 的相关内容参阅以下两个链接:

文档地址:https://autokeras.com/

教程地址:https://towardsdatascience.com/automl-creating-top-performing-neural-networks-without-defining-architecture-c7d3b08cddc

四个库各有特色,应该选哪个?

用户可以根据自己的需求选择合适的 Python 库,作者给出了以下几个建议:

如果你的首要任务是获取一个干净、简单的界面和相对快速的结果,选择 auto-sklearn。另外:该库与 sklearn 自然集成,可以使用常用的模型和方法,能很好地控制时间;

如果你的首要任务是实现高准确率,并且不需要考虑长时间的训练,则使用 TPOT。额外收获:为最佳模型输出 Python 代码;

如果你的首要任务是实现高准确率,依然不需要考虑长时间的训练,也可选择使用 HyperOpt-sklearn。该库强调模型的超参数优化,是否富有成效取决于数据集和算法;

如果你需要神经网络(警告:不要高估它们的能力),就使用 AutoKeras,尤其是以文本或图像形式出现时。训练确实需要很长时间,但有很多措施可以控制时间和搜索空间大小。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    28

    文章

    5000

    浏览量

    77649
  • 模型
    +关注

    关注

    1

    文章

    2671

    浏览量

    47573
  • 机器学习
    +关注

    关注

    66

    文章

    8062

    浏览量

    130442
收藏 人收藏

    评论

    相关推荐

    分布式IO工业自动化数据采集与分析的核心

    随着工业自动化技术的不断发展,分布式IO在工业自动化领域的应用越来越广泛。作为一先进的控制技术,分布式IO能够实现设备的分布式控制和监测,提高生产效率、降低能耗和减少故障率。 分布式IO可以提高
    发表于 12-28 14:47

    基于机器学习的车位状态预测方法

    本发明公开一基于机器学习的车位状态预测方法,基于历史数据,建立回归决策树模型进而构建改进决策树模型
    发表于 09-21 07:24

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料分享(附源代码)

    3.Python人工智能学习工具包+入门与实践资料集锦 本资料的主要内容详细介绍的是Python工具包合集包括了:网页爬虫工具集,文本处理工具
    发表于 09-13 16:41

    Microchip(微芯)推出MPLAB机器学习开发工具包

    模型开发。这款软件工具包可用于Microchip的各类单片机(MCU)和微处理器(MPU)产品组合,助力开发人员快速高效地添加机器学习推理。Microchip开发系
    的头像 发表于 09-12 18:26 525次阅读
    Microchip(微芯)推出MPLAB<b class='flag-5'>机器</b><b class='flag-5'>学习</b>开发<b class='flag-5'>工具包</b>

    Microchip 推出 MPLAB® 机器学习开发工具包,助力开发人员轻松将机器学习集成到 MCU 和 MPU中

    开发工具包,提供一套完整的集成工作流程来简化机器学习模型开发。这款软件工具包可用于Microchip的各类单片机 (MCU) 和微处理器 (
    的头像 发表于 09-11 15:55 309次阅读

    工厂自动化解决方案和调试

    工厂自动化 提高生产效率,产品利用率高得多,减少人工手工作业,节约能源和资源。云计算新技术、预测分析机器学习使能源及公用事业公司能够建立
    发表于 09-07 07:21

    工厂自动化系统分享

    工厂自动化结构 PLC系统应用 IO-Link系统解决方案 工厂自动化中的工业机器人 问答环节
    发表于 09-07 06:32

    ARM KEIL™MDK工具包的操作流程

    本笔记介绍了ARM®KEIL™MDK工具包的操作流程,该工具包采用了μVision®和MicroSemi(Actel™)包含嵌入式ARM®Cortex™-M3处理器的全新智能融合2(SF2)系列
    发表于 09-04 06:16

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器学习算法模型
    的头像 发表于 08-17 16:11 648次阅读

    如何在OpenVINO工具包中使用带推理引擎的blob?

    无法确定如何在OpenVINO™工具包中使用带推理引擎的 blob。
    发表于 08-15 07:17

    c++对于ARM软件开发工具包用户及参考指引

    这本书描述了armc++ 1.0版本的ARM软件开发工具包,以下简称为armc++。ARM c++是一套工具,当与ARM软件开发工具包2.11或更高版本一起使用时,允许您为ARM家族的RisC处理器
    发表于 08-08 06:29

    利用OpenVINO工具包检测汽车品牌

    地检测品牌、车标和形状。 OpenVINO TM的Intel&Distribution工具包是一个全面的工具包,用于快速开发模拟人类视觉的应用程序和解决方案。该工具包以细胞神经网络
    发表于 08-04 07:36

    如何访问已与eIQ工具包一起安装的python版本?

    我正在尝试在远程 SSH 板上安装 eIQ 工具包,DEBIX Model A 板具有 I.MX 8M Plus EdgeVerse 处理器和 Ubuntu 20.04。 我下载了 eIQ 工具包
    发表于 06-07 06:46

    配电自动化系统有哪些功能作用?

    的安全。  4.故障诊断和自愈:配电自动化系统可以通过智能算法或模型分析供配电系统发生故障的原因,并能够实现自愈,使整个系统在最短时间内从故障中恢复过来。  5. 数据分析与处理:采
    发表于 04-10 17:19

    配电自动化系统主要由什么组成?有哪些特点?

    、传感器等。  总之,配电自动化系统是一综合的技术体系,其实现离不开监测、保护、控制、智能集成和各种配电设备的有机组合。  配电自动化系统的特点  配电
    发表于 04-10 17:04