查看原文
其他

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”,刷新DARPA比赛成绩

关注前沿科技 量子位 2022-04-16
栗子 发自 凹非寺 
量子位 报道 | 公众号 QbitAI


 来自《铁男》

科幻剧情里,没有看过哪位大佬拿Python写代码。

眼前净是蓝汪汪的全息画面,用手指拖几下,再点几下,就算出了结果。

“我夜观星象,算出你上班时间看P站。” (误)

回到现实,虽说是没有全息图,但不写代码、拖拖拽拽就能搞机器学习,这等美事已经达成了:

MIT和布朗大学联合开发了交互式数据科学系统,名字叫Northstar

团队说,这是“全球最快的交互式AutoML工具”;除了速度,它生成模型的成绩,也已经在DARPA D3M AutoML比赛上超越了所有对手。

作为用户,你只要加载好数据集,再把想预测的目标,拖进一个预测器。几 (十) 秒的光景,系统便会帮你找出最适合的机器学习模型。

有位不愿透露姓名的评论员说:

比用TNT还容易。

即便不是数据科学家,也可以充分利用手上的数据,来分析各种行业的现实问题。

并且,这套系统支持多人协作,不管是用同一台设备还是多台设备。电脑、平板、交互式白板……各种设备已支持。

现在,Northstar在工业界和学界都有了用户,Adobe便是其中之一。

能做些什么?

先拿医学研究人员举个栗子。

MIT在波士顿,那么就把整个波士顿的ICU患者健康信息全部投喂给Northstar。

加载完成之后,性别、年龄、BMI、有没有消化疾病、心脏衰竭等等,各种参数都会进入“属性 (Attributes) ”这一栏。

 滑动的部分,就是各种属性

机器学习出场前

可以先观察不同属性之间的联系。

比如,通常认为男性比女性更容易发生心脏衰竭 (Heart Failure) ,就来验证一下这个规律适不适用。

把“心衰”和“性别”两个属性拖出来,然后相连,发现女性的发病人数稍低。但把两个属性拖近彼此就会看到,按照比例计算,反而是女性比男性发病率高:

 拖到靠近的位置,就可以计算比例

另外,还可以轻松观察多类疾病共存的概率。

比如,传染病、血液疾病和代谢疾病。

除了把三者相连之外,Northstar还有一种更简洁的工具,叫frequent itemset

它可以把三类疾病的所有可能组合,概率全部计算出来:

最容易并发的是代谢疾病和血液疾病,而代谢疾病单独存在的概率是全部可能性里最高的。

这时候,再用“年龄”属性筛选出50岁以上的患者,代谢疾病的百分数飙升到了73%。

注:发现数据里,有很多患者年龄填了零,也可以一键清除他们,只留有效部分。

数据就观察到这里。

机器学习出场了

如果要预测某个患者有没有心脏衰竭,就从算法栏里拽出一个预测器 (Predictor) 。

然后把要预测的“心脏衰竭”,拖到预测器的“目标 (Target) ”里去。

这样,预测器的右边,便会产出一系列模型,每个模型的预测准确率都会显示出来。

模型生成完毕之后,可以选择一个成绩最好的模型,打开来仔细查看:


这个准确率92.25%的方案,一共有8个步骤。

现在可以把这个模型导出为Python脚本,今后可以手动优化,也可以直接投入使用。

除此之外,还可以看到各个不同参数的权重:


其中,对预测心衰最有帮助的是一个叫“heart_ischemic”的特征。

意思是心脏缺血,常常是伴随着心脏衰竭而生。

所以下一步,就把这个特征也扔进预测器的目标里。

这样的话,再生成的模型就不依靠这个症状来预测了。

还有,可以把自己选中模型的预测结果,和Ground Truth对比观察。

像上图这样直接拖进去,就会得出假阴假阳的情况。

选中这两部分,把它们和“年龄“摆在一起,就知道AI在哪个年龄段的预测更容易出错。

这个模型的错误率,几乎是随时间线性增长。

到这里,一个栗子就讲完了。

可问题是,AutoML找出的模型一定是有效的么?

并不,如果预测成绩看上去很迷,可能是因为属性栏里的数据集,并不是有用的预测工具。

但没关系,系统自带数据集搜索工具datamart,输入关键字,可以查找相关的数据集。

比如,输入“贫困 (Poverty) ”,就能看到美国各个县的人口数据。

有了这些数据,系统找出的贫困预测器,表现也会有所提升。

怎么做到的?

Northstar的英勇体现在三个角度,一是速度,二是生成模型的质量,三是交互能力。

团队说,这是由系统的四个部分共同决定的 (第三部分高能) 。

第一部分叫Vizdom,就是前端,人类最直观感受到的部分,像一个没有边界的画板,可以在上面自在地发挥。

之所以自在,是因为背后有个强大的数据引擎:

第二部分叫IDEA,就是这个引擎。全称“交互式数据探索加速器“,可以理解成样本管理器

它把内存分成三份,一是结果缓存 (Result Cache) ,二是样本存储 (Sample Store) ,三是索引 (Indexes) 。

当用户开始操作,IDEA就会从各种数据源吸取数据,推测性地 (Speculatively) 执行运算,然后把结果缓存下来,支援用户后面可能下达的指令。

同时,IDEA还会把所有传入的数据,缓存到“样本存储”的位置。如果没空间了,IDEA就开始更新缓存:用水塘抽样 (Reservoir Sampling),给数据集生成一个代表性样本 (Representative Sample) ,就算数据流有偏差也是后面再处理:

要避免数据流的偏差 (Bias) 带来的影响,IDEA利用了许多数据库都有的采样算子,以及这些数据的随机偏移 (Random Offsets) 。

IDEA还可能把水塘样本分成几个分层 (Stratified) 的子样本,用来过度表示 (Overrepresent) 一个分布的尾端,或者用来创建专门的索引。

它所有的决定,都要根据用户过往和当下的操作不断优化

比如,当用户把一个新属性拖进画布,系统就会分配更多资源到这个新属性上,为用户可能发出的请求提前做好准备。

另外,随着计算的进行,IDEA还会把精确度越来越高的结果,不断传输到前端,也包括这些结果的完整性和误差分析。

这样,即便用户任意发挥,系统也能快速待命,不论数据大小,不论数据类型。

第三部分叫Alpine Meadow,重中之重

在IDEA准备好数据之后,就是它负责选出最适合的算法,最适合的超参数。

2013年,团队曾经开发出MLbase:用一种简单的声明式方法 (Declarative Way) ,来说明ML任务是什么 (但不发出具体指令) ;还提供一个新的优化器,选出一个学习算法,并且能够动态地适应当前的任务。

只不过,MLbase不是为了和人类交互而生的,调参常常要几小时。

所以,团队在此基础上一顿操作,获得了快速有效的Alpine Meadow:

先是证明了,把基于规则的优化 (Rule-Based Optimization) 方法,和多臂老虎机、贝叶斯优化以及元学习,巧妙结合在一个系统里,能有效找到最好的ML模型。

并设计了一个自适应的选择算法,通过对比训练集和验证集的误差,早期就可以剪掉 (Prune) 一些不靠谱的pipeline。这在训练实例的样本越来越大的情况下,有助于达到更高的效率。

结果是,Alpine Meadow广泛支持各类任务,多才多艺的程度,远远超过其他AutoML系统:

并且,它在从前没见过的数据集上,有80%的情况超越了作为基线的专家系统:

下面看速度

绿色是Alpine Meadow找出第一个方案需要的时间。在成功的数据集数量相同的情况下,用时远低于其他算法:

方案在数据集上的相对排名,依然明显超过其他算法 (越低越好) :

然后,是DARPA比赛的分数 (已Normalized) :

截至目前,它已经超越了DARPA D3M AutoML比赛上的全部对手。

虽然,Alpine Meadow单打独斗也没有问题。但在这个四部分组成的系统里,还有最后一个部分:

第四部分是QUDE,它可以监控用户的每一个交互动作,对常见的错误和问题给出警告。

这些模块合在一起,才是完整的Northstar。

美中不足,现在似乎还没有个人用户的入口。

“全MIT最聪明的人”

MIT和布朗大学组成的团队,已经在NorthStar上面耗时四年。

领队是Tim Kraska副教授,来自MIT赫赫有名的CSAIL实验室。

项目已经发射了许多篇论文,其中核心的Meadow Alpine论文,登上了SIGMOD ’19。

论文一作名叫尚泽远,也来自CSAIL,是Kraska的博士生。

少年的校园主页,域名瞩目:http://smartest.mit.edu/

下方还有一行傲娇的说明:

如果想知道谁是MIT最聪明的人,请前往https://www.shangzeyuan.com/

Alpine Meadow论文传送门:
http://sci-hub.tw/https://dl.acm.org/citation.cfm?id=3319863

NorthStar论文传送门:
http://www.vldb.org/pvldb/vol11/p2150-kraska.pdf

作者系网易新闻·网易号“各有态度”签约作者


加入社群 | 与优秀的人交流

小程序 | 全类别AI学习教程


量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


喜欢就点「在看」吧 ! 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存