栗子 发自 凹非寺 
  量子位 报道 公众号 QbitAI

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客
来自《铁男》

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

比用 TNT 还容易。

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

  能做些什么?

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客
滑动的部分,就是各种属性

  机器学习出场前

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客
拖到靠近的位置,就可以计算比例

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

  数据就观察到这里。

  机器学习出场了

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

  怎么做到的?

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

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

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

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

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

  下面看速度

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

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

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

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

  “全 MIT 最聪明的人”

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

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

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

不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”-风君雪科技博客

  论文一作名叫尚泽远,也来自 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

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