人工智能artificial intelligence,AI目前是科技研究中最热门的方向,它代表着高新科技的未来,有人甚至相信将来人工智能能为人类做更多的事情。正是因为它很可能是未来的科技方向,所以像 IBM、谷歌、微软、Facebook 和亚马逊等公司都在研发上投入大量的资金、或者收购那些在机器学习、神经网络、自然语言和图像处理等领域取得了进展的初创公司。考虑到人们对此感兴趣的程度,我们将不会惊讶于斯坦福的专家在人工智能报告中得出的结论:“越来越强大的人工智能应用,可能会对我们的社会和经济产生深远的积极影响,这将出现在从现在到 2030 年的时间段里。
在本文中,我们将聚焦于开源的人工智能工具,详细的了解下最著名的 15 个开源人工智能顶级项目。同时在文章下方附面向Linux的人工智能工具介绍,如果你对人工智能很有兴趣可以参考文章进行人工智能机器人研发,应该选择哪种编程语言? 以下这些开源人工智能应用都处于人工智能研究的最前沿。
1.Caffe 它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe 是一个基于表达体系结构和可扩展代码的深度学习框架。使它声名鹊起的是它的速度,这让它受到研究人员和企业用户的欢迎。根据其网站所言,它可以在一天之内只用一个 NVIDIA K40 GPU 处理 6000 万多个图像。它是由伯克利视野和学习中心(BVLC)管理的,并且由 NVIDIA 和亚马逊等公司资助来支持它的发展。
2.CNTK 它是计算网络工具包Computational Network Toolkit的缩写,CNTK 是一个微软的开源人工智能工具。不论是在单个 CPU、单个 GPU、多个 GPU 或是拥有多个 GPU 的多台机器上它都有优异的表现。微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。
3.Deeplearning4j Deeplearning4j 是一个 java 虚拟机(JVM)的开源深度学习库。它运行在分布式环境并且集成在 Hadoop 和 Apache Spark 中。这使它可以配置深度神经网络,并且它与 Java、Scala 和 其他 JVM 语言兼容。 这个项目是由一个叫做 Skymind 的商业公司管理的,它为这个项目提供支持、培训和一个企业的发行版。
4.DMTK DMTK 是分布式机器学习工具Distributed Machine Learning Toolkit的缩写,和 CNTK 一样,是微软的开源人工智能工具。作为设计用于大数据的应用程序,它的目标是更快的训练人工智能系统。它包括三个主要组件:DMTK 框架、LightLDA 主题模型算法和分布式(多义)字嵌入算法。为了证明它的速度,微软声称在一个八集群的机器上,它能够“用 100 万个主题和 1000 万个单词的词汇表(总共 10 万亿参数)训练一个主题模型,在一个文档中收集 1000 亿个符号,”。这一成绩是别的工具无法比拟的。
5.H20 相比起科研,H2O 更注重将 AI 服务于企业用户,因此 H2O 有着大量的公司客户,比如第一资本金融公司、思科、Nielsen Catalina、PayPal 和泛美都是它的用户。它声称任何人都可以利用机器学习和预测分析的力量来解决业务难题。它可以用于预测建模、风险和欺诈分析、保险分析、广告技术、医疗保健和客户情报。 它有两种开源版本:标准版 H2O 和 Sparking Water 版,它被集成在 Apache Spark 中。也有付费的企业用户支持。
6.Mahout 它是 Apache 基金会项目,Mahout 是一个开源机器学习框架。根据它的网站所言,它有着三个主要的特性:一个构建可扩展算法的编程环境、像 Spark 和 H2O 一样的预制算法工具和一个叫 Samsara 的矢量数学实验环境。使用 Mahout 的公司有 Adobe、埃森哲咨询公司、Foursquare、英特尔、领英、Twitter、雅虎和其他许多公司。其网站列了出第三方的专业支持。
7.MLlib 由于其速度,Apache Spark 成为一个最流行的大数据处理工具。MLlib 是 Spark 的可扩展机器学习库。它集成了 Hadoop 并可以与 NumPy 和 R 进行交互操作。它包括了许多机器学习算法如分类、回归、决策树、推荐、集群、主题建模、功能转换、模型评价、ML 管道架构、ML 持久、生存分析、频繁项集和序列模式挖掘、分布式线性代数和统计。
8.NuPIC 由 Numenta 公司管理的 NuPIC 是一个基于分层暂时记忆Hierarchical Temporal Memory,HTM理论的开源人工智能项目。从本质上讲,HTM 试图创建一个计算机系统来模仿人类大脑皮层。他们的目标是创造一个 “在许多认知任务上接近或者超越人类认知能力” 的机器。 除了开源许可,Numenta 还提供 NuPic 的商业许可协议,并且它还提供技术专利的许可证。
9.OpenNN 作为一个为开发者和科研人员设计的具有高级理解力的人工智能,OpenNN 是一个实现神经网络算法的 c++ 编程库。它的关键特性包括深度的架构和快速的性能。其网站上可以查到丰富的文档,包括一个解释了神经网络的基本知识的入门教程。OpenNN 的付费支持由一家从事预测分析的西班牙公司 Artelnics 提供。
10.OpenCyc 由 Cycorp 公司开发的 OpenCyc 提供了对 Cyc 知识库的访问和常识推理引擎。它拥有超过 239,000 个条目,大约 2,093,000 个三元组和大约 69,000 owl:这是一种类似于链接到外部语义库的命名空间。它在富领域模型、语义数据集成、文本理解、特殊领域的专家系统和游戏 AI 中有着良好的应用。该公司还提供另外两个版本的 Cyc:一个可免费的用于科研但是不开源,和一个提供给企业的但是需要付费。
11.Oryx 2 构建在 Apache Spark 和 Kafka 之上的 Oryx 2 是一个专门针对大规模机器学习的应用程序开发框架。它采用一个独特的三层 λ 架构。开发者可以使用 Orys 2 创建新的应用程序,另外它还拥有一些预先构建的应用程序可以用于常见的大数据任务比如协同过滤、分类、回归和聚类。大数据工具供应商 Cloudera 创造了最初的 Oryx 1 项目并且一直积极参与持续发展。
12.PredictionIO 今年的二月,Salesforce 收购了 PredictionIO,接着在七月,它将该平台和商标贡献给 Apache 基金会,Apache 基金会将其列为孵育计划。所以当 Salesforce 利用 PredictionIO 技术来提升它的机器学习能力时,成效将会同步出现在开源版本中。它可以帮助用户创建带有机器学习功能的预测引擎,这可用于部署能够实时动态查询的 Web 服务。
13.SystemML 最初由 IBM 开发, SystemML 现在是一个 Apache 大数据项目。它提供了一个高度可伸缩的平台,可以实现高等数学运算,并且它的算法用 R 或一种类似 python 的语法写成。企业已经在使用它来跟踪汽车维修客户服务、规划机场交通和连接社会媒体数据与银行客户。它可以在 Spark 或 Hadoop 上运行。
14.TensorFlow TensorFlow 是一个谷歌的开源人工智能工具。它提供了一个使用数据流图进行数值计算的库。它可以运行在多种不同的有着单或多 CPU 和 GPU 的系统,甚至可以在移动设备上运行。它拥有深厚的灵活性、真正的可移植性、自动微分功能,并且支持 Python 和 c++。它的网站拥有十分详细的教程列表来帮助开发者和研究人员沉浸于使用或扩展他的功能。
15.Torch Torch 将自己描述为:“一个优先使用 GPU 的拥有机器学习算法广泛支持的科学计算框架”,它的特点是灵活性和速度。此外,它可以很容易的通过软件包用于机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和网络等方面。它依赖一个叫做 LuaJIT 的脚本语言,而 LuaJIT 是基于 Lua 的。
附:面向Linux的人工智能顶级工具 下面列出了为支持人工智能设计和开发的诸多平台,你可以在Linux及其他许多操作系统上使用。
1.DeepLearningForJava(Deeplearning4j) Deeplearning4j是一种商用级、开源、即插即用的分布式深度学习库,面向Java和Scala编程语言。它是专门为商业相关应用设计的,并与分布式CPU和GPU上的Hadoop和Spark整合起来。 DL4J采用Apache2.0许可证发布,它提供了GPU支持,以便在AWS上进行扩展,并且适用于微服务架构。
2.Caffe 是一种模块化、表达式的深度学习框架,以速度见长。它采用BSD2-Clause许可证发布,已经支持研究、初创公司原型以及视觉、速度和多媒体之类的工业应用等领域的几个社区项目。
3.H20 是一种开源、快速、可扩展的分布式机器学习框架,另外该框架还有各种各样的算法。它支持更智能化的应用,比如深度学习、梯度提升、随机森林、广义线性建模(比如逻辑回归和弹性网络)以及其他更多。 这是一种面向企业的人工智能工具,用于利用数据做决策,它让用户能够使用更快速、更准确的预测建模,从数据获取洞察力。
4.MLli 是一种开源、易于使用、高性能的机器学习库,是作为ApacheSpark的一部分开发的。它实际上易于部署,可以在现有的Hadoop集群和数据上运行。 MLlib还随带一系列算法,可用于分类、回归、推荐、聚类、生存分析及更多方面。重要的是,它可以用在Python、Java、Scala和R等编程语言中。
5.ApacheMahout Mahout是一种开源框架设计工具,用于构建可扩展的机器学习应用程序,它拥有如下三大功能: 提供简单、可扩展的编程工作环境。提供诸多预包装算法,支持Scala+ApacheSpark、H20以及ApacheFlink。包括Samaras,这是一种向量数学试验型工作环境,拥有类似R的语法。
6.开放神经网络库(OpenNN) OpenNN也是一种用C++编写的开源类库,面向深度学习,它用于构建神经网络。然而,它最适合经验丰富的C++程序员以及机器学习技能出色的人员。它的特点就是拥有深度架构和高性能。
7.Oryx2 Oryx2是最初的Oryx项目的延续,它是在ApacheSpark和ApacheKafka上开发的,重新设计了Lambda架构,不过专门面向实时机器学习。 这是个应用开发平台,还随带协作过滤、分类、回归和聚类等方面的某些应用程序。
8.OpenCyc OpenCyc是一种开源门户网站,通向世界上最大、最全面的一般知识库和常识推理引擎。它包括大量的Cyc术语,这些术语用一种精确设计的本体来排列,支持这些领域的应用: 丰富领域建模特定领域专家系统文本理解语言数据整合、人工智能游戏及其他
9.Apache SystemML SystemML是一种面向机器学习的开源人工智能平台,最适合大数据。主要功能特性:支持类似R和Python的语法,专注于大数据,专门为高级数学设计。主页上详细解释了其工作原理,包括视频演示,作了明确的讲解。 有几个方法可以使用它,包括ApacheSpark、ApacheHadoop、Jupyter和ApacheZeppelin。一些重要的使用场合包括汽车、机场交通和社群金融。
10.NuPIC NuPIC是一种机器学习开源框架,基于分层时间记忆(HTM),这是一种大脑皮层理论。用NuPIC集成的HTM程序是为分析实时流数据而实践的,它能学习数据中基于时间的模式,预测当前值,并且发现任何不规则的地方。 它的重要功能特性包括如下: 持续在线学习时间和空间模式实时流数据预测和建模强大的异常检测分层时间记忆。
相关主题 |