【大规模机器学习】大规模机器学习流程的构建与部署

大规模机器学习流程的构建与部署

现在有许多的机器学习算法实现是可以扩展到大数据集上的(其中包括矩阵分解、SVM、逻辑回归、LASSO 等等)。实际上,机器学习专家们很乐于指出的一点是:如果你能把机器学习问题转化为一个简单的数值优化问题,你就几近成功了。

当然,现实的问题是,很多机器学习项目是没法简化成一个简单的优化问题的。因此数据科学家们不得不去管理和维护复杂的数据项目,加之他们所要分析的问题经常也需要特定的机器学习流程。上游流程中每个阶段的决策影响下游流程的结果,因此流程中模块的连接与交互成为了一个研究的热点。

在Strata+Hadoop World New York的报告上,伯克利教授Ben Recht描述了他们新的伯克利 AMPLab项目,该项目旨在提供一种构建和管理大规模机器学习的通用流程。鉴于AMPLab与Spark项目的紧密联系,该项目的一些想法已在Apache Spark中初现端倪。

基元辨识与构建

第一步就是创建基础部件(基石).机器学习流程往往用图来描述和表达,AMPLab研究人员一直专注于针对大数据集的图节点(机器学习流程基础元件,简称基元)的扩展和优化。其中一些基元可能针对于特定领域和数据类型(例如文本,图像,声音,时空数据),一些则是针对于更加通用场景的领域(例如统计学,机器学习).最近的一个例子是ml-matrix矩阵库,该库是一个运行于Apach Spark上的分布式矩阵计算库。

机器学习模块以基元的形式来构成机器学习系统,使得机器学习系统更易于理解。由于流程中的模块几乎都可解释,因此相对于那些依赖于黑盒子的机器学习方法,这样构建的机器学习系统更具透明性,易于解释。

让机器学习更具模块化:简化流程融合

尽管基元可以作为基础部件,但是用户还是需要工具来完成整个流程的构建。现如今,工作流工具已经变得越来越普遍,而且诸如此类的工具已经有很多可供数据工程师,数据科学家,甚至商业分析师等使用(例如Alteryx, RapidMiner, Alpine Data, Dataiku)。

正如上篇博文我提到的,我们将会看到越来越多的数据分析工具,这些工具一方面为程序员提供了优雅的接口设计,一方面为提供了简单的DSL(领域特定语言)使得非专业程序员可以进行编辑。某种程度上说,通过DSL对机器学习流程(或者说对表达该流程的图结构)进行封装会变得越来越普遍。最新版本的Apache Spark (版本 1.2)提供了构建机器学习流程的API接口(如果你仔细看的话,我们已经利用DSL来实现机器学习流程构建了)。

做一些误差分析

“我们正在试图将机器学习系统植入自动驾驶汽车,电力系统网络等等。如果我们想让机器学习真正影响到我们的日常生活,那么我们最好能够保证机器学习系统能如那些复杂系统(就如飞行器设计系统)般稳定。”-Ben Recht

我们是否能够去限定这种层次式流程的近似误差和收敛率呢?假定我们能够计算每个节点的误差,下一步就得有一种机制去提取整个流程的误差。实际上,我们需要在产品实际部署的时候提供工具来保证流程能正常工作,同时可以期望提供一些测量误差的方法。

为此,Laurent Lessard、Ben Recht 和 Andrew Packard一直利用从控制理论中的技术自动地对机器学习流程生成验证证书。该方法已经能够分析大数据集上大多数流行的机器学习技术。他们更长远的目标则是能够直接通过那些复杂的,分布式软件系统的伪代码,分别推导和分析出系统的性能特征和鲁棒性。(与AMPLab相关的Velox项目提供了产品中模型的管理框架)。

随着机器学习算法日益渗透入各个领域,我们需要更好的工具来构建复杂的,健壮性强,稳定度高的机器学习系统。虽然诸如scikit-learn 和 GraphLab已经提供了对机器学习流程构建的支持,但是像Apache Spark这种常用的分布式框架则把这种思想发挥到了极致,以使其能偶适应于更大的数据集,更广泛的人们受益。目前,AMPLab前期的一些结果还是很令人振奋的,研究者们已经构建了大规模的机器学习系统,并且在视觉,语音以及文本处理方面取得了与各自领域最好成绩都不相上下的结果。

在Ben Recht的诸多头衔中, 也是”Hardcore Data Science day at Strata+Hadoop World”的协作方。加入我们吧,我们将和Ben将在2015年1月在San Jose举办另一场数据科学盛宴。

链接:http://blog.jobbole.com/84605/

原文链接:http://radar.oreilly.com/2015/01/building-and-deploying-large-scale-machine-learning-pipelines.html

原文发布于微信公众号 - 数据科学与人工智能(DS_AI_shujuren)

原文发表时间:2015-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

AI时代Chatbots对话式交互系统的技术与挑战

摘要 一直以来,人机交互方式都在发生着不断的变化,从命令行交互,GUI交互,GUI+交互,直到现在的对话交互(CUI)。之前传统交互都是人在适配机器,而CUI则...

4206
来自专栏灯塔大数据

每周学点大数据 | No.56推荐系统概述

NO.56 推荐系统概述 Mr. 王:在现在的网络购物平台和电影、图书分享平台中,还有一类非常广泛存在的机制——推荐机制。 小可:在我打开的购物网站右侧经常有...

3646
来自专栏大数据文摘

谷歌上线自带中文的机器学习免费课程,我们带你做了个测评

1725
来自专栏量子位

TensorFlow产品经理:机器学习如何改变未来十年的软硬件?

王瀚宸 编译自 South Park Commons博客 量子位 报道 | 公众号 QbitAI 最近,Google Brain员工,TensorFlow产品经...

3165
来自专栏CDA数据分析师

英雄联盟如何指挥团战?AI帮你做决策

作者在 Kaggle 中上传了模型的每个部分,以便大家更好地理解数据的处理过程与模型结构:

1931
来自专栏AI研习社

不需要敲代码就可以开发深度学习应用?我们来探个究竟

AI 研习社按:在深度学习仍然需要不少的数学和计算机编程能力的现在,如果突然出现了一个不需要写任何公式和代码的深度学习应用开发平台,你会是什么感觉?震惊?鄙夷?...

762
来自专栏AI科技评论

观点 | 不需要敲代码就可以开发深度学习应用?我们来探个究竟

AI 科技评论按:在深度学习仍然需要不少的数学和计算机编程能力的现在,如果突然出现了一个不需要写任何公式和代码的深度学习应用开发平台,你会是什么感觉?震惊?鄙夷...

1282
来自专栏PPV课数据科学社区

常用的5种数据可视化方法

小编最近在研究后台的设计,涉及到数据统计分析模块的数据的呈现方面,搜集学习材料的时候发现这篇文章,推荐给有需求的童靴们共同学习。在文章中,原作者跟大家分享数据可...

2984
来自专栏新智元

【重磅】微软Facebook联手发布AI生态系统,CNTK+Caffe2+PyTorch挑战TensorFlow

【新智元导读】夜间重磅,微软Facebook联手发布AI生态系统,推出 Open Neural Network Exchange(ONNX,开放神经网络交换)格...

3184
来自专栏机器之心

业界 | 思必驰推出启发式对话系统,关注知识传播的会话精灵

对于对话系统来说,一般都可以分为特征处理、理解意图和生成答案等过程。思必驰北京研发院 NLP 负责人葛付江解释,在接收问句后,系统会进行进行分词、词性标注以及命...

1183

扫码关注云+社区

领取腾讯云代金券