AI已经是大趋势,不搞点人工智能就太落伍了,学习永无止境!
目录
TensorFlow
一个用于机器智能的开源软件库。
TensorFlow™是一个开源软件库,最初由研究Google Brain Team的研究人员和工程师开发。TensorFlow用于使用数据流图进行数值计算。图中的节点表示数学运算,而图表边表示在它们之间传递的多维数据阵列(张量)。灵活的体系结构允许您使用单个API将计算部署到桌面,服务器或移动设备中的一个或多个CPU或GPU。
TensorFlow提供多个API。最低级别的API - TensorFlow Core - 为您提供完整的编程控制。更高级别的API构建在TensorFlow Core之上。与TensorFlow Core相比,这些更高级别的API通常更易于学习和使用。此外,更高级别的API使重复性任务更容易,并且在不同用户之间更加一致。像tf.estimator这样的高级API可以帮助您管理数据集,估算器,培训和推理。
TensorFlow中的中央数据单位是张量。张量由一组原始值组成,这些原始值被整形为任意数量维度的数组。张量的等级是它的维数。
一些使用张量流的Google应用程序是:
RankBrain:在www.google.com上大规模部署深度神经网络,用于搜索排名
初始图像分类模型:基准模型和对高精度计算机视觉模型的后续研究,从赢得2014年Imagenet图像分类挑战的模型开始
SmartReply:深度LSTM模型,可自动生成电子邮件回复
用于药物发现的大规模多任务网络:一种深度神经网络模型,用于识别谷歌与斯坦福大学合作的有希望的候选药物。
用于OCR的设备上计算机视觉:用于进行光学字符识别以实现实时翻译的设备上计算机视觉模型
有用的链接
Apache SystemML
使用大数据进行机器学习的最佳工作场所。
SystemML是IBM创建的机器学习技术,已经达到了Apache Software Foundation的顶级项目状态之一,它是一个灵活,可扩展的机器学习系统。重要特征是:
通过R-like和类似Python的语言可以定制算法。
多种执行模式,包括Spark MLContext,Spark Batch,Hadoop Batch,Standalone和JMLC(Java机器学习连接器)。
基于数据和集群特征的自动优化,以确保效率和可扩展性。
SystemML被认为是用于机器学习的SQL。SystemML的最新版本(1.0.0)支持:Java 8 +,Scala 2.11 +,Python 2.7 / 3.5 +,Hadoop 2.6+和Spark 2.1+。
它可以在Apache Spark之上运行,它可以自动逐行扩展数据,确定您的代码是应该在驱动程序还是Apache Spark集群上运行。未来的SystemML开发包括利用GPU功能进行额外的深度学习,例如导入和运行神经网络架构以及用于训练的预训练模型。
SystemML的Java机器学习连接器(JMLC)
Java机器学习连接器(JMLC)API是一种编程接口,用于以嵌入方式与SystemML交互。JMLC的主要目的是作为评分API,其中您的评分函数使用SystemML的DML(声明性机器学习)语言表示。除了评分之外,嵌入式SystemML还可用于在单个计算机上运行的较大应用程序的上下文中执行无人监督学习(例如,群集)等任务。
有用的链接
Caffe
深入学习框架,以表达,速度和模块化为基础。
Caffe项目由Yangqing Jia博士开设。在加州大学伯克利分校,然后由伯克利AI研究(BAIR)和社区贡献者开发。它主要关注计算机视觉应用的卷积网络。Caffe是计算机视觉相关任务的坚实和受欢迎的选择,您可以从Caffe模型动物园(下面的链接)下载Caffe用户制作的许多成功模型,以便开箱即用。
Caffe的优点
富有表现力的建筑鼓励应用和创新。模型和优化由配置定义,无需硬编码。通过设置单个标志在GPU计算机上进行训练,然后部署到商品群集或移动设备,在CPU和GPU之间切换。
可扩展代码促进了积极的开发。在Caffe的第一年,它已被超过1,000名开发人员分享,并且有许多重大变化。
速度使Caffe成为研究实验和行业部署的理想选择。Caffe 每天可以使用一个NVIDIA K40 GPU 处理超过60M的图像。
社区:Caffe已经为视觉,语音和多媒体领域的学术研究项目,创业原型,甚至大规模的工业应用提供支持。
有用的链接
Apache Mahout
分布式线性代数框架和数学表达Scala DSL
Mahout旨在让数学家,统计学家和数据科学家快速实施他们自己的算法。Apache Spark是推荐的开箱即用的分布式后端,或者可以扩展到其他分布式后端。
数学上富有表现力的Scala DSL
支持多个分布式后端(包括Apache Spark)
用于CPU / GPU / CUDA加速的模块化原生求解器
Apache Mahout目前实现了包括协作过滤(CF),聚类和分类在内的领域
功能/应用
品尝CF. Taste是由Sean Owen在SourceForge上创建的CF(协同过滤)的开源项目,并于2008年捐赠给Mahout。
几个Map-Reduce启用的聚类实现包括k-Means,模糊k-Means,Canopy,Dirichlet和Mean-Shift。
分布式朴素贝叶斯和互补朴素贝叶斯分类实现。
用于进化编程的分布式适应度函数。
矩阵和矢量库。
所有上述算法的示例。
有用的链接
OpenNN
一个用C ++编写的开源类库,它实现了神经网络。
OpenNN(开放式神经网络图书馆)以前被称为Flood,它基于博士学位。R. Lopez的论文,“工程中变分问题的神经网络”,加泰罗尼亚技术大学,2008年。
OpenNN将数据挖掘方法实现为一组函数。这些可以使用应用程序编程接口(API)嵌入到其他软件工具中,用于软件工具和预测分析任务之间的交互。OpenNN的主要优点是其高性能。它采用C ++开发,可实现更好的内存管理和更高的处理速度,并通过OpenMP和GPU加速与CUDA实现CPU并行化。
该软件包附带单元测试,许多示例和大量文档。它为神经网络算法和应用的研究和开发提供了有效的框架。Neural Designer是一个使用OpenNN的专业预测分析工具,这意味着Neural Designer的神经引擎是使用OpenNN构建的。
OpenNN旨在从数据集和数学模型中学习。
数据集
函数回归。
模式识别。
时间序列预测。
数学模型
最佳控制。
最佳形状设计。
数据集和数学模型
反问题。
有用的链接
Torch
开源机器学习库,科学计算框架和基于Lua编程语言的脚本语言。
- 强大的N维数组
- 索引,切片,转置,...的许多例程
- 通过LuaJIT与C的惊人界面
- 线性代数例程
- 神经网络和基于能量的模型
- 数字优化例程
- 快速高效的GPU支持
- 可嵌入,具有iOS和Android后端的端口
Torch由Facebook AI Research Group,IBM,Yandex和Idiap Research Institute使用。它已被扩展用于Android和iOS,并已用于构建数据流的硬件实现,如神经网络中的数据流。
Facebook已经发布了一组扩展模块作为开源软件。
PyTorch是一个用于Python的开源机器学习库,用于自然语言处理等应用程序。它主要由Facebook的人工智能研究小组开发,用于概率编程的优步“Pyro”软件就是基于它构建的。
有用的链接
Neuroph
用Java编写的面向对象的神经网络框架。
Neuroph可用于在Java程序中创建和训练神经网络。Neuroph提供Java类库以及用于创建和训练神经网络的GUI工具easyNeurons。Neuroph是轻量级Java神经网络框架,用于开发通用的神经网络架构。它包含一个设计良好的开源Java库,其中包含少量与基本NN概念相对应的基本类。它还具有很好的GUI神经网络编辑器,可以快速创建Java神经网络组件。它已在Apache 2.0许可下作为开源发布。
Neuroph的核心类对应于基本的神经网络概念,如人工神经元,神经元层,神经元连接,权重,传递函数,输入函数,学习规则等.Neuroph支持常见的神经网络架构,如具有反向传播的多层感知器,Kohonen和Hopfield网络。所有这些类都可以扩展和定制,以创建自定义神经网络和学习规则。Neuroph内置支持图像识别。
有用的链接
Deeplearning4j
为Java和Scala编写的第一个商业级,开源,分布式深度学习库。
Deeplearning4j旨在成为最先进的即插即用和更多的约定而不是配置,这允许非研究人员进行快速原型设计。
DL4J可以大规模定制。
DL4J可以通过Keras从大多数主要框架导入神经网络模型,包括TensorFlow,Caffe和Theano,通过跨数据科学家,数据工程师和DevOps的跨团队工具包弥合Python生态系统和JVM之间的差距。Keras被用作Deeplearning4j的Python API。
使用Skymind的模型服务器在生产中提供机器学习模型。
特征
- 分布式CPU和GPU
- Java,Scala和Python API
- 适用于微服务架构
- 通过迭代减少的并行训练
- 在Hadoop上可扩展
- GPU支持在AWS上进行扩展
库:
- Deeplearning4J:神经网络平台
- ND4J:JVM的Numpy
- DataVec:机器学习ETL操作的工具
- JavaCPP:Java和Native C ++之间的桥梁
- 仲裁者:机器学习算法的评估工具
- RL4J:JVM的深度强化学习
Mycroft
声称是世界上第一个开源助手,可用于从科学项目到企业软件应用程序的任何事物。
Mycroft可以在任何地方运行 - 在台式计算机上,汽车内或Raspberry Pi上。这是一个开源软件,可以自由重新混合,扩展和改进。Mycroft可用于从科学项目到企业软件应用程序的任何事物。
OpenCog
OpenCog是一个旨在构建开源人工智能框架的项目
OpenCog是一种多样化的认知算法集合,每一种都体现了他们自己的创新 - 但是整体架构的强大之处在于它严格遵守认知协同原理。OpenCog最初是基于2008年发布的Novamente LLC专有“Novamente认知引擎”(NCE)的源代码。原始的NCE代码在PLN书中讨论(参见下文)。正在进行的OpenCog开发得到了人工智能通用研究所(AGIRI),Google Summer of Code项目等的支持。
- 一个图形数据库,它将术语,原子公式,句子和关系保存为超图; 给他们一个概率真值解释,称为AtomSpace。
- 一种可满足的模理论解算器,作为通用图形查询引擎的一部分构建,用于执行图形和超图形模式匹配(同构子图发现)。
- 基于概率逻辑网络(PLN)的概率推理引擎的实现。
- 一种称为Meta-Optimizing Semantic Evolutionary Search(MOSES)的概率遗传程序进化器,最初由Moshe Looks开发,现在已在Google工作。
- 基于经济理论的注意力分配系统,ECAN。
- 用于在虚拟世界中进行交互和学习的实施例系统,部分地基于OpenPsi和Unity。
- 由Link Grammar和RelEx组成的自然语言输入系统,两者都采用类似AtomSpace的语义和句法关系表示。
- 一种名为SegSim的自然语言生成系统,具有NLGen和NLGen2的实现。
- 用于处理情绪状态,驱动力和冲动的Psi-Theory的实现,被称为OpenPsi。
- 与Hanson Robotics机器人的接口,包括通过OpenPsi进行情感建模。
有用的链接
更新:建议阅读 Anton Shaleynikov撰写的Dzone文章 ,其中详细介绍了最佳框架。
原文标题《10 Open-Source Tools/Frameworks for Artificial Intelligence》
译者:February
不代表云加社区观点,更多详情请查看原文链接