京公网安备 11010802034615号
经营许可证编号:京B2-20210330
来源 | 云头条
想大胆尝试机器学习?这些工具可以为你处理繁重的任务。
驾驭机器学习的13种框架

在去年,机器学习以前所未有的势头进入主流。对这股潮流起到推波助澜的不单单是成本低廉的云环境和功能更强大的GPU硬件,还有如今面向机器学习的数量激增的框架。它们都是开源框架,而更重要的是,它们旨在化解机器学习最难的部分,将其技术或方法提供给广泛的开发人员。
本文介绍了13种机器学习框架,有的在去年刚出炉,有的刚修订。它们引起了我们的注意,因为都是在IT界具有重要影响力的产品,有的试图带来一种简化的解决办法,有的旨在攻克与机器学习有关的某个难题。
Apache Spark MLlib

Apache Spark最广为人知的角色就是它是Hadoop家族的一员,但这种内存数据处理框架脱胎于Hadoop之外,而且在Hadoop生态系统外面扬名立万。Spark已成为一款可靠的机器学习工具,这归功于其日益庞大的算法库,其算法可以高速运用于内存中数据。
Spark没有坐以待毙,因为Spark拥有的算法一直在不断增加和修订。去年的1.5版本增添了许多新的算法,改进了现有的算法,并进一步增强了Python中对MLlib的支持,而Python是面向数学运算和统计用户的一大平台。除了其他功能外,刚发布的Spark 1.6还让用户可以通过持久化流水线(persistent pipeline),暂停和恢复Spark ML任务。
Apache Singa

“深度学习”框架支持处理繁重任务的机器学习功能,比如自然语言处理和图像识别。Singa最近得到接受、进入Apache孵化器(Apache Incubator),这种开源框架旨在让用户很容易训练针对大量数据的深度学习模型。
Singa提供了一种简单的编程模型,用于训练跨机器集群的深度学习网络,它还支持许多常见类型的训练任务:卷积神经网络、受限玻尔兹曼机和递归神经网络。模型可以同步训练(逐个训练),也可以异步训练(并行训练),这取决于哪种方法最适用于某个问题。Singa还利用Apache Zookeeper简化了集群构建和设置。
Caffe

深度学习框架Caffe“在开发当初牢记表达、速度和模块化”。Caffe在2013年为机器视觉项目而开发,此后扩大到了其他应用领域,比如语音和多媒体。
速度是一大优先事项,于是Caffe完全用C++编写,并支持CUDA加速,不过它可以根据需要在CPU处理和GPU处理之间进行切换。发行版包括一套面向常见分类任务的免费开源参考模型,其他模型则由Caffe用户社区开发和捐献。
微软Azure ML Studio

考虑到执行机器学习需要大量的数据和强大的计算能力,云是机器学习应用的理想环境。微软为Azure配备了自己的按需付费的机器学习服务:Azure ML Studio,分为按月付费、按小时付费和免费套餐这三种版本。(该公司的HowOldRobot项目就是用这个系统构建的。)
Azure ML Studio让用户可以创建和训练模型,然后将它们变成可以被其他服务使用的API。用户可以为模型数据获得每个帐户最多10GB的存储空间,不过你也可以将自己的Azure存储空间连接到该服务,以处理更庞大的模型。一系列广泛的算法可供使用,这要感谢微软和第三方。你甚至不需要帐户就可以试用该服务;匿名登录后,就可以使用Azure ML Studio长达8个小时。
亚马逊机器学习

亚马逊对云服务采用的一般方法遵循这种模式:提供基本服务,培育关注它的核心受众,让他们在上面构建,然后找到他们真正需要的东西,并提供这种东西。
亚马逊首次尝试提供机器学习即服务:亚马逊机器学习(Amazon Machine Learning)也是如此。它连接到存储在亚马逊S、Redshift或RDS中的数据,可以对相关数据执行二元分类、多类分类或递归等操作。然而,这项服务完全以亚马逊为中心。除了依赖存储在亚马逊上的数据外,因而生成的模型无法导入或导出,训练模型的数据集不得大于100GB。不过,它仅仅是个开始,表明了它更注重机器学习的实用性,而不是便利性。
微软分布式机器学习工具包

用来处理任何机器学习问题的计算机部署得越多,效果越好,但是将机器结合起来、开发可以跨所有机器顺畅运行的机器学习应用程序可能很棘手。微软的DMTK(分布式机器学习工具包)框架就专门处理这个问题:跨系统集群分配各种各样的机器学习任务。
DMTK号称是一种框架,而不是一种完备的即开即用的解决方案,所以它自带的实际算法数量很少。不过DMTK的设计便于将来扩展,而且便于用户最充分地利用资源有限的集群。比如说,集群中的每个节点都有本地缓存,减少了与中央服务器节点之间的通信量,而中央服务器节点为相应任务规定了范围。
谷歌TensorFlow

谷歌TensorFlow酷似微软的DMTK,这种机器学习框架旨在跨多个节点灵活扩展。与谷歌的Kubernetes一样,它当初也是旨在解决谷歌内部的问题,谷歌最终决定将它作为一款开源产品来发布。
TensorFlow实施了所谓的数据流图(data flow graph),其中成批数据(“tensor”)可以由数据流图描述的一系列算法来加以处理。数据在系统中的移动被称为“流”(flow)――TensorFlow由此得名。数据流图可以用C++或Python来装配,可以在CPU或GPU上进行处理。谷歌的长期计划是,让第三方贡献者来完善TensorFlow。
微软计算网络工具包

微软发布DMTK不久,紧随其后发布了另一款机器学习工具包:计算网络工具包(Computational Network Toolkit,简称CNTK)。
CNTK类似谷歌TensorFlow,因为它让用户可以通过有向图来构建神经网络。微软还认为它与Caffe、Theano和Torch等项目相媲美。它声称相比那些框架的优点主要在于速度快,具体来说是能够同时充分利用多个CPU和多个GPU。微软声称,使用CNTK,并结合Azure上的GPU集群,将Cortana的语音识别训练的速度提升了一个数量级。
CNTK最初作为微软的语音识别研究项目的一部分而开发,早在2015年4月起初作为一个开源项目来提供,不过后来重新发布到GitHub上,采用了一种极其宽松的、类似MIT许可证的许可证。
Veles(三星)

Veles是一种面向深度学习应用的分布式平台;与TensorFlow和DMTK一样,它也用C++编写,不过使用Python来执行自动化和节点之间的协调。数据集加以分析、自动规范后被馈送到集群,REST API让受过训练的模型可以立即用在生产环境中(假设你的硬件足够好)。
Veles使用Python并不局限于仅仅将它用作粘合代码(glue code)。IPython(现在的Jupyter)这种数据可视化和分析工具,可以直观显示和发布来自Veles集群的结果。三星希望,发布开源Veles项目有望促进进一步的发展,比如移植到Windows和Mac OS X。
Brainstorm

Brainstorm由瑞士卢加诺的Dalle Molle人工智能研究所(IDSIA)的两名博士生Klaus Greff和Rupesh Srivastava开发而成,该项目的目的是“让深度神经网络快速、灵活而有趣”。已经包括了支持众多递归神经网络模型(比如LSTM)的功能。
Brainstorm使用Python提供两个“hander”,即数据管理API :一个用于Numpy的CPU运算,另一个通过CUDA利用GPU。大部分工作通过Python脚本来完成,所以别指望有一个丰富的前端GUI,只有你给自己提供的那个GUI。但长远计划是开发这种构架:可以运用“从早期开源项目汲取的经验”,并使用“与多种平台和计算后端兼容的新的设计元素”。
mlpack 2

我们之前汇总的机器学习资源提到了mlpack,这种基于C ++的机器学习库最早于2011年推出,设计当初着眼于“可扩展性、速度和易用性”,据库的开发者声称。实施mlpack有两种方法:通过处理简易的“黑盒子”操作的命令行执行文件缓存,或者借助处理较复杂工作的C ++ API。
2.0版本有很多重构和新功能,包括许多新类型的算法,并对现有算法做了改变,以便提速或简化。比如说,它丢弃了Boost库面向C++ 11的原生随机函数的随机数发生器。
一个长期存在的缺点是,缺少针对除C++之外的任何语言的绑定,这意味着使用从R到Python各种语言的用户无法使用mlpack,除非有人为上述语言推出了自己的包装器。已开展了工作,添加支持MATLAB的功能,但是像这样的项目在处理机器学习工作的主要环境下径直发挥作用,才往往会受到更大的追捧。
Marvin

Marvin神经网络框架是另一种比较新的框架,它是普林斯顿视觉小组(Princeton Vision Group)的杰作。它“生来就是为了被改动的”,开发者在项目的说明文档中这么解释,它只依赖用C++和CUDA GPU框架编写的几个文件。尽管代码本身有意很小,但项目确实随带许多预先训练的模型:只要适当引用,可以重复使用这些模型,使用合并请求(pull request)贡献给社区,就像该项目的自家代码那样。
Neon

Nervana这家公司开发了自己的深度学习硬件和软件平台,它提供了一种名为Neon的深度学习框架,将其作为一个开源项目。它使用可插入式模块,以便在CPU、GPU和Nervana自己的定制硬件上处理繁重任务。
Neon主要是用Python编写的,有几个组件用C++编写,以求速度。这样一来,用Python处理数据科学工作的其他人可以立即用它,拥有Python绑定的其他任何框架也可以立即用它。
end
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 STP模型(营销战略三步法) 定义: 现代营销战略核心框架,通过市场细分(S)、目标市场选择( ...
2026-09-18在互联网产品迭代、运营优化、界面改版与策略升级过程中,主观经验判断容易造成决策偏差、盲目改版、资源浪费等问题。AB实验(AB ...
2026-09-18 很多企业并不缺少指标,缺少的是让指标“串起来、动起来、用起来”的体系。零散指标像散落一地的珠子,指标体系则是那根把珠 ...
2026-09-18在电商行业精细化运营时代,流量红利逐步消退,粗放式投流、广撒网营销模式已无法适配市场竞争需求。依托用户点击、加购、收藏、 ...
2026-09-17在数据可视化与数据分析工作中,图表是将零散数据转化为直观业务规律的核心工具。不同图表拥有专属的数据逻辑与分析维度,能够从 ...
2026-09-17 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-09-17在企业数字化运营、业务流程管理与精细化管控体系中,流程运营是串联各项业务环节、保障工作落地、提升运转效率的核心载体。无论 ...
2026-09-16在数据分析与统计学研究中,卡方检验是分析分类变量关联性与差异性的重要方法,广泛应用于市场调研、行为统计、社会调查、商业数 ...
2026-09-16 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“什么是指标”“指标和维度有什么区别”“如何定义指标值的计算规则和 ...
2026-09-16CDA数据分析师 出品 作者:李诗怡 定义: 用户增长核心分析框架,刻画用户从接触产品到自发推荐的全生命周期,五个递进环节构建 ...
2026-09-15在数字化营销与精细化用户运营时代,企业传统的广撒网式营销模式成本高、转化率低,已无法适配精准商业竞争需求。客户画像作为大 ...
2026-09-15 很多数据分析师精通描述性统计,能熟练计算均值、中位数、标准差,但当被问到“用500个样本如何推断10万用户的真实满意度” ...
2026-09-15在MySQL数据库数据查询与数据分析中,GROUP BY与ORDER BY是使用频率极高的核心关键字。二者语法结构相似,常搭配使用,但核心功 ...
2026-09-14随着数字化治理、智慧运营、数字孪生技术的普及,数字体征成为衡量业务状态、系统运行、城市治理与企业经营健康度的核心体系。数 ...
2026-09-14 很多数据分析师沉迷于复杂的模型和算法,却忽略了数据分析的一项基础能力——描述性统计。事实上,大量商业分析问题,用描述 ...
2026-09-14在MySQL数据库运维与开发实践中,经常出现一种典型现象:数据库实际存储的数据量很小,数据表条数少、文件体积低,但服务器整体 ...
2026-09-11 很多数据分析师能熟练计算均值、标准差,但当被问到“总体和样本有什么区别”“参数和统计量有什么关系”“数据级别的高低如 ...
2026-09-11CDA数据分析师 出品 作者:李诗怡 定义: 将同一时间段内因具备相同属性或共同经历的用户划分为群体,分析其留存与生命周期价值 ...
2026-09-11在零售、商超、餐饮、线下门店等实体商业运营中,客流与销售额是衡量门店经营状态的两大核心指标。销售额是门店经营的最终结果, ...
2026-09-10在数据可视化体系中,柱形图是最基础、应用最广泛的图表类型,其中**累计柱形图(堆积柱状图)**是兼顾整体总量与内部结构的核心 ...
2026-09-10