【机器学习】推荐13个机器学习框架

2017 年 9 月 10 日 产业智能官

在过去的一年里,机器学习炙手可热。机器学习的“突然”降临,并不单纯因为廉价的云环境和更强有力的GPU硬件。也因为开放源码框架的爆炸式增长,这些框架将机器学习中最难的部分抽象出来,并将这项技术提供给更广大范围的开发者。

这里有新鲜出炉的机器学习框架,既有初次露面的,也有重新修改过的。这些工具被大众所注意,或是因为其出处,或是因为以新颖的简单方法处理问题,或是解决了机器学习中的某个特定难题,或者是上述的所有原因。

Apache Spark MLlib

Apache Spark 广为人所知的是因为它是 Hadoop 家族的一员,但是这个内存数据处理框架却是脱胎于 Hadoop 之外,也正在 Hadoop 生态系统以外为自己获得了名声。Hadoop 已经成为可供使用的机器学习工具,这得益于其不断增长的算法库,这些算法可以高速度应用于内存中的数据。

早期版本的 Spark 增强了对 MLib 的支持,MLib 是主要面向数学和统计用户的平台,它允许 通过持久化管道特性将 Spark 机器学习工作挂起和恢复。2016 年发布的 Spark2.0,对 Tungsten 高速内存管理系统和新的 DataFrames 流媒体API 进行了改进,这两点都会提升机器学习应用的性能。

H2O

H2O,现在已经发展到第三版,可以提供通过普通开发环境(Python, Java, Scala, R)、大数据系统(Hadoop, Spark)以及数据源(HDFS, S3, SQL, NoSQL)访问机器学习算法的途径。H2O 是用于数据收集、模型构建以及服务预测的端对端解决方案。例如,可以将模型导出为 Java 代码,这样就可以在很多平台和环境中进行预测。

H2O 可以作为原生 Python 库,或者是通过 Jupyter Notebook,或者是 R Studio中的 R 语言来工作。这个平台也包含一个开源的、基于 web 的、在 H2O 中称为Flow 的环境,它支持在训练过程中与数据集进行交互,而不只是在训练前或者训练后。

Apache Singa

“深度学习”框架增强了重任务类型机器学习的功能,如自然语言处理和图像识别。Singa 是一个 Apache 的孵化器项目,也是一个开源框架,作用是使在大规模数据集上训练深度学习模型变得更简单。

Singa 提供了一个简单的编程模型,用于在机器群集上训练深度学习网络,它支持很多普通类型的训练工作:卷积神经网络,受限玻尔兹曼机 以及循环神经网络。 模型可以同步训练(一个接一个)或者也异步(一起)训练,也可以允许在在 CPU 和 GPU 群集上,很快也会支持 FPGA 。Singa 也通过 Apache Zookeeper 简化了群集的设置。

Caffe2

深度学习框架 Caffe 开发时秉承的理念是“表达、速度和模块化”,最初是源于2013 年的机器视觉项目,此后,Caffe 还得到扩展吸收了其他的应用,如语音和多媒体。因为速度放在优先位置 ,所以 Caffe 完全用 C+ + 实现,并且支持 CUDA 加速,而且根据需要可以在 CPU 和 GPU 处理间进行切换。分发内容包括免费的用于普通分类任务的开源参考模型,以及其他由 Caffe 用户社区创造和分享的模型。

一个新的由 Facebook 支持的 Caffe 迭代版本称为 Caffe2,现在正在开发过程中,即将进行 1.0 发布。其目标是为了简化分布式训练和移动部署,提供对于诸如 FPGA 等新类型硬件的支持,并且利用先进的如16位浮点数训练的特性。

TensorFlow

与微软的 DMTK 很类似,Google TensorFlow 是一个机器学习框架,旨在跨多个节点进行扩展。 就像 Google 的 Kubernetes 一样,它是是为了解决 Google 内部的问题而设计的,Google 最终还是把它作为开源产品发布出来。

TensorFlow 实现了所谓的数据流图,其中的批量数据(“tensors”)可以通过图描述的一系列算法进行处理。系统中数据的移动称为“流”-其名也因此得来。这些图可以通过 C++ 或者 Python 实现并且可以在 CPU 和 GPU 上进行处理。

TensorFlow 近来的升级提高了与 Python 的兼容性,改进了 GPU 操作,也为TensorFlow 能够运行在更多种类的硬件上打开了方便之门,并且扩展了内置的分类和回归工具库。

亚马逊的机器学习

亚马逊对云服务的方法遵循一种模式:提供基本的内容,让核心受众关注,让他们在上面构建应用,找出他们真正需要的内容,然后交付给他们。

亚马逊在提供机器学习即服务-亚马逊机器学习方面也是如此。该服务可以连接到存储在亚马逊 S3、Redshift 或 RDS 上的数据,并且在这些数据上运行二进制分类、多级分类或者回归以构建一个模型。但是,值得注意的是生成的模型不能导入或导出,而训练模型的数据集不能超过 100GB。

但是,亚马逊机器学习展现了机器学习的实用性,而不只是奢侈品。对于那些想要更进一步,或者与亚马逊云保持不那么紧密联系的人来说,亚马逊的深度学习机器图景包含了许多主要的深度学习框架,包括 Caffe2、CNTK、MXNet 和 TensorFlow。

微软的 Azure ML Studio

考虑到执行机器学习所需的大量数据和计算能力,对于机器学习应用云是一种理想环境。微软已经为 Azure 配备了自己的即付即用的机器学习服务 Azure ML Studio,提供了按月、按小时和免费的版本。(该公司的 HowOldRobot 项目就是利用这个系统创立的)你甚至不需要一个账户来就可以试用这项服务;你可以匿名登录,免费使用 Azure ML Studio 最多8小时。

Azure ML Studio 允许用户创立和训练模型,然后把这些模型转成被其他服务所使用的 API。免费用户的每个账号可以试用多达 10GB 的模型数据,你也可以连接自己的 Azure 存储以获得更大的模型。有大范围的算法可供使用,这要感谢微软和第三方。

近来的改进包括通过 Azure 批处理服务、更好的部署管理控制和详细的 web 服务使用统计,对训练任务进行了批量管理。

微软的分布式机器学习工具集

在机器学习问题中投入更多的机器,会取得更好的效果-但是开发在大量计算机都能运行良好的机器学习应用却是挺伤脑筋的事。

微软的 DMTK (分布式机器学习工具集)框架解决了在系统集群中分布多种机器学习任务的问题。

DMTK 被认为是一个框架而不是一个完全成熟、随去随用的解决方案,因此包含算法的数量是很小的。然而,你还是会找到一些关键的机器学习库,例如梯度增强框架(LightGBM),以及对于一些像 Torch 和 Theano 这样深度学习框架的支持。

DMTK 的设计使用户可以利用有限的资源构建最大的群集。例如,群集中的每个节点都会有本地缓存,从而减少了与中央服务器节点的通信流量,该节点为任务提供参数。

微软的计算网络工具集

在发布 DMTK 之后,微软又推出了另一款机器学习工具集,即计算网络工具包,简称 CNTK。

CNTK 与 Google TensorFlow 类似,它允许用户通过一个有向图来创建神经网络。微软也认为 CNTK 可以与诸如 Caffe、Theano 和 Torch 这样的项目相媲美,此外 CNTK 还能通过利用多 CPU 和 GPU 进行并行处理而获得更快的速度。微软声称在 Azure 上的 GPU 群集上运行 CNTK,可以将为 Cortana 的语音识别训练速度提高一个数量级。

最新版的 CNTK 2.0 通过提高精确性提高了 TensorFlow 的热度,添加了一个 Java API,用于 Spark 兼容性,并支持kera框架(通常用于 TensorFlow)的代码。

Apache Mahout

在 Spark 占据主流地位之前很久,Mahout 就已经开发出来,用于在 Hadoop 上进行可扩展机器学习。但经过一段长时间的相对沉默之后,Mahout 又重新焕发了活力,例如一个用于数学的新环境,称为 Samsara,允许多种算法可以跨越分布式 Spark 群集上运行。并且支持 CPU 和 GPU 运行。

Mahout 框架长期以来一直与 Hadoop 绑定,但它的许多算法也可以在 Hadoop 之外运行。这对于那些最终迁移到 Hadoop 的独立应用或者是从 Hadoop 中剥离出来成为单独的应用都很有用。

Veles (Samsung)

Veles(https://velesnet.ml/)是一个用于深度学习应用的分布式平台,就像 TensorFlow 和 DMTK 一样,它是用 C++ 编写的,尽管它使用 Python 来执行节点之间的自动化和协调。在被传输进群集之前,要对数据集分析并且进行自动的归一化,然后调用 REST API 来即刻使用已训练的模型(假定你的硬件满足这项任务的需要) 。

Veles 不仅仅是使用 Python 作为粘合代码,因为基于 Python 的 Jupyter Notebook 可以用来可视化和发布由一个 Veles 集群产生的结果。Samsung 希望,通过将 Veles 开源将会刺激进一步的开发,作为通往 Windows 和 MacOS 的途径。

mlpack 2

作为一个基于 C++ 的机器学习库,mlpack 最初产生于 2011 年,按照库的创立者想法,设计 mlpack 是为了“可扩展性,速度和易于使用。mlpack 既可以通过由若干行命令行可执行程序组成的“黑盒”进行操作,也可以利用 C++ API 来完成复杂的工作。

mlpack 的第二版包含了许多新的算法,以及现有算法的重构,以提高它们的速度或使它们瘦身。例如,它舍弃了 Boost 库的随机数生成器,转而采用 C++ 11 的原生随机数功能。

mlpack 的一个痼疾是缺少对于 C++ 以为语言的支持。这就意味着其他语言的用户需要第三方库的支持,如这样的一个 Pyhton 库。还有完成了一些工作来增加对 MATLAB 的支持,但是像 mlpack 这样的项目,在机器学习的主要环境中直接发挥作用时,往往会获得更大的应用。

Neon

Nervana,一家建立自己的深度学习硬件和软件平台的公司(现在是英特尔的一部分),已经提供了一个名为“Neon”的深度学习的框架,它是一个开源项目。Neon使用可插拔的模块,以实现在 CPU、GPU 或者 Nervana 自己开发的芯片上完成繁重的任务。

Neon 主要是用 Python 编写,也有一部分是用 C++ 和汇编以提高速度。这使得该框架可以为使用 Python 或者其他任何与 Python 绑定框架进行数据科学工作的人所用。

许多标准的深度学习模型,如 LSTM、AlexNet 和 GoogLeNet,都可以作为 Neon 的预训练模型。最新版本 Neon 2.0,增加了英特尔数学内核库来提高 CPU 的性能。

Marvin

另一个相对近期的产品——Marvin 神经网络框架,是普林斯顿视觉集团的产物。Marvin“生来就是被黑的”,正如其创建者在该项目文档中解释的那样,该项目只依赖于一些用 C++ 编写的文件和 CUDA GPU 框架。虽然该项目的代码很少,但是还是提供了大量的预训练模型,这些模型可以像项目本身代码一样,能够在合适的场合复用或者根据用户的需要共享。

 



新一代技术+商业操作系统:

AI-CPS OS

     

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利AI-CPS OS形成字化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生,在行业、企业和自身三个层面勇立鳌头。


  • 分辨率革命种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品控制、事件控制和结果控制。

  • 复合不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  • 边界模糊化:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。


给决策制定者和商业领袖的建议:

  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发人工智能型企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。





产业智能官  AI-CPS



新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能),在场景中状态感知-实时分析-自主决策-精准执行-学习提升认知计算机器智能实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链




长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售新模式:案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”






本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
8

相关内容

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
【硬核书】可扩展机器学习:并行分布式方法
专知会员服务
80+阅读 · 2020年5月23日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
机器学习速查手册,135页pdf
专知会员服务
335+阅读 · 2020年3月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
195+阅读 · 2020年2月11日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
37+阅读 · 2019年10月9日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
开发 | 用 Python 做机器学习不得不收藏的重要库
AI科技评论
5+阅读 · 2019年1月8日
资源 | 机器学习必知的15大框架,欢迎补充!
数据分析
19+阅读 · 2018年9月11日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
机器学习必知的15大框架
互联网架构师
3+阅读 · 2017年12月21日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Meta-Learning with Implicit Gradients
Arxiv
13+阅读 · 2019年9月10日
Neural Approaches to Conversational AI
Arxiv
8+阅读 · 2018年12月13日
Arxiv
9+阅读 · 2018年3月23日
VIP会员
相关VIP内容
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
【硬核书】可扩展机器学习:并行分布式方法
专知会员服务
80+阅读 · 2020年5月23日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
机器学习速查手册,135页pdf
专知会员服务
335+阅读 · 2020年3月15日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
195+阅读 · 2020年2月11日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
80+阅读 · 2020年1月13日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
37+阅读 · 2019年10月9日
相关资讯
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
开发 | 用 Python 做机器学习不得不收藏的重要库
AI科技评论
5+阅读 · 2019年1月8日
资源 | 机器学习必知的15大框架,欢迎补充!
数据分析
19+阅读 · 2018年9月11日
机器学习者必知的 5 种深度学习框架
深度学习世界
7+阅读 · 2018年5月3日
机器学习必知的15大框架
互联网架构师
3+阅读 · 2017年12月21日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
Top
微信扫码咨询专知VIP会员