开源人工智能
人工智能是目前最热门的科研领域之一。诸如 IBM、谷歌、微软、脸书和亚马逊这类大型公司不仅加大了对旗下发展研究部门的资金投入,同时也开始并购一些在机器学习、神经网络、自然语言与图像处理领域小有所成的初创公司。鉴于目前人工智能研究领域的火爆程度,斯坦福大学的教授们不久前作出了这样一份报告:“人工智能软件的作用越来越强大,而对人类社会、经济有强大影响力的人工智能软件将于 2030 年前面世”。
国外网站 Datamation 今日整理了目前热门的 15 款开源人工智能软件,雷锋网(搜索“雷锋网”公众号关注)对全文进行了编译介绍如下:
1. Caffe
Caffe 软件由加州大学伯克利分校的一名博士生开发,是一个基于表达构架与可扩展编码的深度学习框架。因其出色的处理速度而广受研究人员与企业的喜爱。根据其主页的介绍,只使用一颗 NVIDIA K40 GPU,该软件一天就可处理超过 6000 万张图片。Caffe 软件项目由 BVLC 运作,由 NVIDIA 和亚马逊等公司资助其发展研究。
2.CNTK
CNTK 是 Computational Network Toolkit(计算网络工具包)的缩写,是微软旗下开源人工智能软件之一。它的过人之处在于:无论是只有 CPU 工作,还是单科 GPU,或是或多颗 GPU,亦或是多台机器配备多颗 GPU 工作,它的性能都十分优秀。虽然微软主要用它进行语音识别的研究,但它还可以进行机器翻译、图像识别、图像抓取、文本处理、语言识别与语言建模等工作。
3.Deeplearning4j
Deeplearning4j 是一款 JVM 开源深度学习库软件。它能在分布式环境中运行,并整合 Hadoop 与 Apache Spark。而这使得它可以配置深度神经网络,还可运行 Java、Scala 等其他 JVM 语言。
Deeplearning4j 软件项目由 Skymind 商业公司运作,由 Skymind 负责项目的资金支持、人员培训与产品推广。
4.DMTK
与 CNTK 一样,DMTK 是 Distributed Machine Learning Toolkit 的缩写(分布式机器学习工具),是微软旗下的另一款开源人工智能软件。为大数据研究而设计,旨在缩短人工智能系统的训练时间。DMTK 包括三大主要部分:DMTK 框架、LightLDA 模型算法与分布式(多感)字嵌入算法。为了说明 DMTK 的处理速度,微软声称其可通过一台 8 节点计算机集群,在有着超过 1000 亿个标记的文档合集中处理出一个包含 100 万主题与 1000 万文字(总计 10 万亿个参数)的主题模型,而这是同类软件无法匹敌的。
5.H2O
更专注于企业使用体验而不是科学研究的H2O收获了如 Capital One、思科、Nielsen Catalina、PayPal 和 Transamerica 等大型企业的订单。Oxdata 称所有人都可使用H2O机器学习与预测分析能力解决商业问题。H2O还可用于预测建模、欺诈与风险分析、保险分析、广告工艺、医疗保健与客户智能等方面。
H2O有两个开源版本:标准版H2O和 Sparkling Water 版H2O,两个版本都整合在 Apache Spark 中,Oxdata 将为付费企业提供技术支持。
6.Mahout
Mahout 是 ASF(Apache 软件基金会)旗下的一个开源项目,提供开源机器学习框架。据其官方主页描述,Mahout 有三大主要特点:可扩展算法编程环境、事先写有如 Spark 和H2O等工具的算法、内置名为“Samsara”的矢量运算环境。Mahout 用户的包括 Adobe、Accenture、Foursquare、英特尔、领英、Twitter 和雅虎等公司。
7.MLlib
以处理速度而闻名的 Apache Spark 已成为大数据处理中最常用的软件之一。MLlib 算法是一个 Spark 的可扩展机器学习库。它与 Hadoop 融为一体,可与 NumPy 和 NumPy.R 跨平台操作。它囊括了大量机器学习算法类型,包括:分类、回归、决策树、建议、聚集、主题建模、特点转换、模型评价、ML pipeline 构建、ML 持久性、生存分析、频繁集、序列模式挖掘、离散线性代数和数据统计分析。
8.NuPIC
NuPIC 由 Numenta 公司运作,是一个基于 HTM(分层时间记忆)理论的开源人工智能项目。实际上,HTM 理论是想根据人大脑新皮质结构设计一个电脑系统,旨在打造一台“在处理认知型任务上,接近或超过人类能力的电脑。”
Numenta 不仅拥有 NuPic 的开放源代码许可,还有其商业授权与专利证书。
9.OpenNN
OpenNN 是一款为研究人员和开发者打造的高级人工智能软件,提供可运行神经网络的 C 编程库。其主要特点在于深度框架与高效的性能。OpenNN 官网有关于神经网络运作的详细介绍。为 OpenNN 客户提供技术支持是来自西班牙的 Artelnics 公司(主攻预测分析研究)。
10. OpenCyc
由 Cycorp 公司开发的 OpenCyc 软件内置 Cyc 知识库与常识推理引擎,含括了 23.9 万条术语,约 209.3 万条三元组,约 6.9 万条网络本体语言,就好比外接了一个语义数据库。它在富领域建模、语义数据融合、文本理解、特定领域专家系统和游戏人工智能等方面十分有效。OpenCyc 一共有两个版本:一个是对研究员免费不开源版本,另一个是对企业收费的版本。
11.Oryx 2
Oryx 2 基于 Apache Spark 和 Kafka 构建,是一款专攻大型机器学习的发展框架软件。它使用的是独特的三层λ构架。开发者可使用 Oryx 2 开发新软件,其内置了一些通用大型数据任务的程序,如协同过滤、分类、归化和集群等。大数据工具提供商 Cloudera 开发了初代 Oryx 1 项目,现仍在继续研究发展。
12.PredictionIO
早在今年二月份,Salesforce 公司买下了 PredictionIO 软件项目。PredictionIO 软件项目作为一个孵化项目为 ASF 提供了新的平台和商标。虽然 Salesforce 公司通过 PredictionIO 软件项目来发展自己的机器学习技术,但其仍是开源。它可以利用机器学习来部署相关网络服务,通过对页面动态请求实时回应帮助用户建立一个预测引擎。
13.SystemML
SystemML 最初由 IBM 开发,后被 ASF 收购,成为其大数据项目。SystemML 是一个可高度扩展的平台,可进行高级数学运算,执行R或类 Python 语句。SystemML 基于 Spark 或 Hadoop 运行,可用于 4S 店车辆维护的客户回访、机场领空管制以及银行客户社交媒体数据的收集。
14.TensorFlow
TensorFlow 是谷歌旗下的开源人工智能软件之一,提供一个使用数据流图的数值计算库,可在单/多颗 CPU 或 GPU 系统甚至移动设备上运行。谷歌称 TensorFlow 十分灵活、真正的可移植,拥有自动鉴别能力且支持 Python 和 C 平台。
15. Torch
Torch 这样描述自己:“拥有科学的计算框架,支持可优先使用 GPU 的机器学习算法”。Torch 的特点在于其出色的灵活性与杰出的处理速度,在处理机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和计算机网络等方面十分得心应手。它采用的是 LuaJIT 语言编写,一种基于 Lua 语言的脚本语言。