机器学习必知的15大框架

摘要: 不管你是一个研究人员,还是开发者,亦或是管理者,想要使用机器学习,需要使用正确的工具来实现。本文介绍了当前最流行15个机器学习框架。

机器学习工程师是开发产品和构建算法团队中的一部分,并确保其可靠、快速和成规模地工作。他们和数据科学家密切合作来了解理论知识和行业应用。数据专家和机器学习工程师的主要区别是:

·机器学习工程师构建、开发和维护机器学习系统的产品。

·数据专家进行调查研究形成有关于机器学习项目的想法,然后分析来理解机器学习系统的度量影响。

下面是机器学习的框架介绍:

1.Apache Singa 是一个用于在大型数据集上训练深度学习的通用分布式深度学习平台,它是基于分层抽象的简单开发模型设计的。它还支持各种当前流行的深度学习模型,有前馈模型(卷积神经网络,CNN),能量模型(受限玻尔兹曼机,RBM和循环神经网络,RNN),还为用户提供了许多内嵌层。

2.Amazon Machine Learning(AML)是一种让各种级别使用机器学习技术的开发人员可轻松掌握的一个服务,提供了视觉工具和向导,可以指导您在不必学习复杂的机器学习算法和技术的情况下建立机器学习。

3.Azure ML Studio允许微软Azure的用户创建和训练模型,随后将这些模型转化为能被其他服务使用的API。尽管您可以将自己的Azure存储链接到更大模型的服务,但是每个账户模型数据的存储容量最多不超过10GB。在Azure中有大量的算法可供使用,这要感谢微软和一些第三方。甚至你都不需要注册账号,就可以匿名登录,使用Azure ML Studio服务长达8小时。

4.Caffe是由伯克利视觉学习中心(BLVC)和社区贡献者们基于BSD-2-协议开发的一个深度学习框架,它秉承“表示、效率和模块化”的开发理念。模型和组合优化通过配置而不是硬编码实现,并且用户可根据需要在CPU处理和GPU处理之间进行切换,Caffe的高效性使其在实验研究和产业部署中的表现很完美,使用单个NVIDIA K40 GPU处理器每天即可处理超过六千万张图像 。

5.H2O使人轻松地应用数学和预测分析来解决当今极具挑战性的商业问题,它巧妙的结合了目前在其他机器学习平台还未被使用的独有特点:最佳开源技术,易于使用的WebUI和熟悉的界面,支持常见的数据库和不同文件类型。用H2O,你可以使用现有的语言和工具。此外,也还可以无缝扩展到Hadoop环境中。

6.Massive Online Analysis (MOA)是目前最受欢迎的数据流挖掘开源框架,拥有一个非常活跃的社区。它包含一系列的机器学习算法(分类,回归,聚类,离群检测,概念漂移检测和推荐系统)和评价工具。和WEKA项目一样,MOA 也是用Java编写,但扩展性更好。

7.MLlib (Spark)是Apache Spark的机器学习库,目的是让机器学习实现可伸缩性和易操作性,它由常见的学习算法和实用程序组成,包括分类、回归、聚类,协同过滤、降维,同时包括底层优化原生语言和高层管道API。

8.Mlpack是一个基于C++的基础学习库 ,最早于2011年推出,据库的开发者声称,它秉承“可扩展性、高效性和易用性”的理念来设计的。执行Mlpack有两种方法:通过快速处理简易的“黑盒”操作命令行执行的缓存,或者借助C++ API处理较为复杂的工作。Mlpack可提供简单的能被整合到大型的机器学习解决方案中的命令行程序和C++的类。

9.Pattern是Python编程语言的web挖掘组件,有数据挖掘工具( Google、Twitter 、Wikipedia API,网络爬虫,HTML DOM解析器),自然语言处理(词性标注,n-gram搜索,情感分析,WordNet接口),机器学习(向量空间模型,聚类,支持向量机),网络分析和<canvas>可视化。

10.Scikit-Learn为了数学和科学工作,基于现有的几个Python包(Numpy,SciPy和matplotlib)拓展了Python的使用范围。最终生成的库既可用于交互式工作台应用程序,也可嵌入到其他软件中进行复用。该工具包基于BSD协议,是完全免费开源的,可重复利用。Scikit-Learn中含有多种用于机器学习任务的工具,如聚类,分类,回归等。Scikit-Learn是由拥有众多开发者和机器学习专家的大型社区开发的,因此,Scikit-Learn中最前沿的技术往往会在很短时间内被开发出来。

11.Shogu是最早的机器学习库之一,它创建于1999年,用C++开发,但并不局限于C++环境。借助SWIG库,Shogun适用于各种语言环境,如Java,Python,c#,Ruby,R,Lua,Octave和Mablab。Shogun 旨在面向广泛的特定类型和学习配置环境进行统一的大规模学习,如分类,回归或探索性数据分析。

12.TensorFlow是一个使用数据流图进行数值运算的开源软件库,它实现了数据流图,其中,张量(“tensors”)可由一系列图形描述的算法来处理,数据在该系统中的变化被称为“流”,由此而得名。数据流可用C++或Python编码后在CPU或GPU的设备上运行。

13.Theano是一个基于BSD协议发布的可定义、可优化和可数值计算的Phython库。使用Theano也可以达到与用C实现大数据处理的速度相媲美,是支持高效机器学习的算法。

14.Torch是一种广泛支持把GPU放在首位的机器学习算法的科学计算框架。由于使用了简单快速的脚本语言LuaJIT和底层的C/CUDA来实现,使得该框架易于使用且高效。Torch目标是让你通过极其简单的过程、最大的灵活性和速度建立自己的科学算法。Torch是基于Lua开发的,拥有一个庞大的生态社区驱动库包设计机器学习、计算机视觉、信号处理,并行处理,图像,视频,音频和网络等。

15.Veles是一套用C++开发的面向深层学习应用程序的分布式平台,不过它利用Python在节点间自动操作与协作任务。在相关数据集中到该集群之前,可对数据进行分析与自动标准化调整,且REST API允许将各已训练模型立即添加至生产环境当中,它侧重于性能和灵活性。Veles几乎没有硬编码,可对所有广泛认可的网络拓扑结构进行训练,如全卷积神经网络,卷积神经网络,循环神经网络等。

作者介绍:Devendra Desale(@DevendraDesale)是一位目前从事文本挖掘和大数据技术的数据科学研究生,也对企业架构和数据驱动感兴趣。业余时间,喜欢参加聚会和未知的冒险。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Top 15 Frameworks for Machine Learning Experts》,作者:Devendra Desale,译者:Mags,审校:袁虎。