自动机器学习框架盘点[2018-2019]

自动机器学习在过去的一年里呈爆发式的增长态势,一个又一个新的自动化学习框架的诞生让人眼花缭乱,目不暇接

为了方便持续关注该领域的动态,我在这里将目前发现和关注的框架再汇总一下,算是对之前的更新和补充:

有兴趣的话,大家可以了解下《开源自动机器学习盘点》以及《AutoML自动化机器学习技术深入

以下排名,按github上的标星排名

Tpot

Tpot的增长势头很猛,眼睁睁从去年的2k多星增长到了5k多星,不仅是关注的人增加了,框架本身的迭代升级也很快

好消息是经过这一年多的努力,Tpot开始可以支持Xgboost了

坏消息是框架也越来越臃肿庞大,笔者尝试在16核32G上的服务器上跑了一些小任务,结果进程经常就莫名崩溃了

由此可见Tpot目前还缺乏稳定的运行机制,只能做一些小数据集的探索,对于打造自动化模型构建系统来说,还欠缺火候

AutoKeras

AutoKeras无疑是过去一年,AutoML领域增长最快的一套框架,从发布到现在短短1年多,便收集了5k+star

为什么会这么迅速的崛起,除了AutoKeras项目本身的快速迭代更新以外,更重要的是,它是继auto_ml(部分支持深度学习)之后,第一个完全自动化深度学习的框架。大家想必也知道,深度学习的超参数调整一般会比较耗时,AutoKeras抓住了发展时机,给出了一种自动调参的途径。

可能大家就很好奇,AutoKeras采取的是什么方法和手段进行参数调整呢?那就是NAS(neural architecture search),好像很高大上的名词,其实我们可以把它理解为一堆搜索策略的组合:随机搜索、网格搜索、贪婪搜索和贝叶斯优化,这方面的介绍文章也很多了,mark一下,不做深入介绍了

从目前采用的策略来看,也是一个PU beast,看着我可怜的几个CPU和GPU,想想还是算了,惹不起

h2o-3

知道h2o有几年了,但一直以为是一个类似于orange或SAS的机器学习平台,找了一下发现也有AutoML的部分,支持xgboost,gbm等,通过最新的文档发现,可以通过api的调用实现自动化机器学习平台,在资源充足的情况下,倒是可以尝试下
h2o_automl

Featuretools

Featuretools不能算是一个自动机器学习框架,只是一个半自动的特征组合工具,而且组合特征之前必须先转换成它定义好的类型,心累。虽然关注的人不少,不过相信真正能在工作中用起来的并不多。好不容易算是一个填补自动化空缺的工具,却还是这么难用,唉,pass
featuretools
在出现替代的框架前,只能继续保持关注,暂不大面积铺开使用

auto-sklearn

auto-sklearn在之前的文章里也介绍过了,这一年多发展的不温不火,然而糟糕的是,目前更新频率好像越来越慢,有点要放弃的势头,所以在这里也不继续深入介绍了,pass

AdaNet 

AdaNet给人眼前一亮的感觉,号称是tensorflow团队非官方的项目,一图胜千言,一看就懂

adanet

框架的亮点就在于 ANAS(渐进式的神经网络结构搜索),这个特征非常符合建模准则:奥卡姆剃刀、模型集成方法等,所以也是非常值得期待的,可以持续保持关注
candidates
注意看上图,Adanet的每次迭代都是上一个网络基础上的一个深入,Adanet的这种尝试就假设了通过有限隐藏层能逐渐逼近的表征所有复杂特征

(看来还是大公司靠谱)

可是,目前这个框架只能算是一种搜索算法,只能通过包的形式使用,还缺少一个工程化的壳子

NNI 

这个世界上的软件项目,怎么能缺少微软呢,微软出品的这套NNI框架,也没让我失望,设计条理清晰,结构简单合理,只可惜不支持windows平台

可以继续保持关注,我也是醉了,怎么自己打自己脸,主推的机器学习框架竟然不支持自家最nb的产品

nni_svg

不过NII的确实值得想要打造自动化机器学习平台的朋友的关注,该框架目前已经集成了绝大多数调节器包括:

TPE, Random Search, Anneal, Naive Evolution, SMAC, Batch ,Grid Search, Hyperband, Network Morphism, ENAS, Metis Tuner,BOHB

NNI还在快速的迭代中。不得不说,想要做成事,还得靠大厂

PocketFlow 

Tensorflow团队的自动化模型压缩框架,亮点也很多,顾名思义,是为移动设备准备的,暂不在本次考察考虑范围内,pass

darts

严格意义上来说,darts也只是一种算法框架,主要面向的是卷积和递归神经网络结构的搜索问题,所以它的命运很可能与Adanet类似是成熟后被集成到其他框架中去

darts

TransmogrifAI 

TransmogrifAI,对我而言,这个框架又是一个鸡肋般的存在,使用scala编写,运行在spark之上,想想就很“沉重”,更何况以一己之力去维护这么一堆生态圈上的各个系统,简直就是自杀行为,算了,pass,有兴趣的朋友可以去关注

大家可能会觉得我有点简单粗暴,但我只想表达一点个人的观点:只有足够轻量的东西才能快速迭代,现在的自动化机器学习技术远不算成熟,把不成熟的思想封装到厚重的盒子里,会是什么后果呢?

automl-gs

automl-gs,这个好,简单小巧,有点“沙漠之鹰”的味道,一键输入,一键输出,值得关注

相比其他框架,最大的亮点:0代码,哈哈,懒人们有福了,不过会不会有更大的坑埋在里面呢?自己探索去吧

automl_gs

Auto_ml

之前的文章里,我也介绍过这款框架,不过不幸的是,和auto-sklearn类似,这款框架也有走下坡路的趋势,更糟的是已经1年没更新了,所以只好忍痛 pass 

Ludwig 

Ludwig,uber推出的机器学习“盒子”,与nni类似,未来这两款盒子谁将成为主导,还说不好,只能都保持关注

综上,自动化机器学习领域正受到越来越多巨头的关注,深度学习自动化,以及机器学习工程化的东西也越来越多了

一个掌握机器学习技术的人,能够使用这些工具创造价值、产生生产力的可能性也越来越大

机器学习专家的极客时代就要到来,看来未来真的有点意思了!

猜你喜欢

转载自yq.aliyun.com/articles/701018