由人工智能开发人工智能:Auto ML

人工智能的应用将会取代很多工作,如会计、翻译、客服。被置于风险中的不是普通体力工作者,而是一些普通的脑力工作者。当然,程序员也将面临着被人工智能取代的风险,程序员中不是人人都能参加顶级学术会议的大牛,也存在着每天进行着简单脑力劳动的普通人,毕竟不是每个公司都请得起大牛。随着各个大小公司对人工智能需求的上升,人们越来越希望AI可以更加亲民,让普通人也可以开发人工智能产品。

由google公司开发的人工智能解决方案:AutoML((automated machine learning))。业界声称,即使你不会编程,不懂模型,依然可以玩转神经网络。我们常用的CNN(卷积神经网络)、RNN(递归神经网络)、GAN(生成对抗式网络)等,由于不同的网络适用于不同的应用领域,常常结构的选择要靠经验。而AutoML只需要传入数据,它来帮你选择模型,搭建网络,优化参数。


AutoML 主要关注两个方面:数据采集 / 收集和预测。中间发生的所有其他步骤都可以轻松实现自动化,同时提供经过优化并准备好进行预测的模型。不仅提高了工作效率,自动化管道也有助于避免手动引入错误,同时使得数据科学家们能够更多的关注到问题本身而不是模型。

一个优秀的机器学习和深度学习模型,离不开这几个方面:

 1、优秀的数据预处理;

​ 2、合适的模型结构和功能;

​ 3、优秀的训练策略和超参数;

​ 4、合适的后处理操作;

​ 5、严格的结果分析。

而Auto ML以快速而有效的方式,只需要做很少的工作,即可为你的机器学习任务构建好网络模型,并获得高精度,获得的模型完全very good。

哇!这样一看,Auto ML好棒棒哦!让全民AI成为了现实,我们只要实行拿来主义,拿来用就好了哎!

先看一下官方描述:

AutoML is not automated data science. While there is undoubtedly overlap, machine learning is but one of many tools in the data science toolkit, and its use does not actually factor in to all data science tasks. For example, if prediction will be part of a given data science task, machine learning will be a useful component; however, machine learning may not play in to a descriptive analytics task at all.

大致意思是说不要迷信AutoML,它只是数据科学众多工具中的一种,而且它也只能解决众多数据科学任务中的某些任务,主要的作用就是来帮助实现高效的模型构建和超参数调整。

AutoML可分两类:传统AutoML和深度AutoML。传统autoML解决传统机器学习建模问题,如线性回归、逻辑回归、决策树等。深度AutoML面向深度学习中神经网络的建模。

目前现有的一些Auto ML包:auto keras ;auto sklearn;auto WEKA; google cloud autoML等。

列举5个正在被大规模使用的 AutoML库:

MLBox:一个功能强大的,传说仅用8行代码就能执行超参数优化走天下的,自动化机器学习python库。

git源码:https://github.com/AxeldeRomblay/MLBox/

主要有以下功能:

1.快速读取,提供分布式数据预处理、清洗、格式化等功能

2.精确的高纬度超参数优化

3.高度稳定的功能选择和泄露检测

4.用于分类和回归的最先进预测模型

MLBox主要是使用python2开发,不过目前也扩展到Python3了,仅兼容Linux系统(将很快支持windows、mac)。采用了少量的代码就能完成繁重的机器学习任务,真是美滋滋,然而,一些显而易见的缺点我们也要看到,它并不是真正的自动机器学习库,它不支持无监督学习,直到现在它仍然属于基础功能工程,还需创建完善其功能。

Auto-sklearn: 基于sklearn机器学习库构建的自动化机器学习软件包,使用方法也与之类似。

git源码:https://github.com/automl/auto-sklearn.git

主要有以下功能:

1.让机器学习的用户从算法选择和超参数调整中解放出来

2.在框架调优方面,使用贝叶斯进行优化,在中小型数据集上表现良好

3.支持切分训练/测试集,支持交叉验证,减少了训练模型代码量

Auto-sklearn的缺点是无法在大型数据上产生先进的现代深度学习系统,如果想进一步训练只能重写代码,目前只兼容linux系统。

TPOT:基于树的管道优化工具,通过遗传算法来优化机器学习管道。

源码:https://github.com/EpistasisLab/tpot

TPOT 扩展了 Scikit-learn 框架,使用了自己的回归器和分类器方法。TPOT 的工作原理是探索数千条可能的管道,并为数据找到最好的一个。TPOT 无法自动处理自然语言输入。此外,它还无法处理分类字符串,在作为数据传入之前,这些字符串必须进行整数编码。

Auto-keras:  DATA Lab 构建的一个用于自动化机器学习的开源软件库,提供了自动搜索深度学习模型的体系结构和超参数的功能。

git源码:https://github.com/keras-team/autokeras

Auto-Keras 是通过使用自动神经架构搜索(NAS)算法简化 ML 过程。NAS 基本上用一组自动调整模型的算法,替代了深度学习工程师 / 从业者。

TransmogrifAI Salesforce 的一个端到端的开源自动化机器学习库。

git源码:https://github.com/salesforce/TransmogrifAI.git

它用于 Scala 编写的结构化数据,运行在  Apache Spark 之上,具备以下功能:

1.快速训练高质量机器学习模型,只需极少的手动调节

2.构建模块化、可重用、强类型的机器学习工作流

安装该库之前需要安装java和spark。

 

AutoML是深度学习领域当前热门的话题,过去几年里自动化深度学习方面取得了巨大的进步,使用户和企业更容易接触到它,深入学习的力量也变得更容易为公众所接受,这一新方向为人工智能社区提供了令人兴奋的挑战,也为科学领域的另一次突破提供了机会。

猜你喜欢

转载自blog.csdn.net/qq_41127332/article/details/102369958