美高梅官方网站3045-mgm6608美高梅app下载
10款人工智能和机器学习领域方面的开源项目。15 个开源的顶级人工智能工具,人工智能和机器学习领域中有趣的开源

10款人工智能和机器学习领域方面的开源项目。15 个开源的顶级人工智能工具,人工智能和机器学习领域中有趣的开源

作者:mgm美高梅 官方网址    来源:未知    发布时间:2020-01-26 07:13    浏览量:

图片 1

 

 

10款人工智能和机器学习领域方面的开源项目。
GraphLab
GraphLab是一种新的面向机器学习的并行框架。GraphLab提供了一个完整的平台,让机构可以使用可扩展的机器学习系统建立大数据以分析产品,该公司客户包括Zillow、Adobe、Zynga、Pandora、Bosch、ExxonMobil等,它们从别的应用程序或者服务中抓取数据,通过推荐系统、欺诈监测系统、情感及社交网络分析系统等系统模式将大数据理念转换为生产环境下可以使用的预测应用程序。( 详情 )
项目主页:
  
Vowpal Wabbit
Vowpal Wabbit (Fast Online Learning)最初是由雅虎研究院建设的一个机器学习平台,目前该项目在微软研究院。它是由John Langford启动并主导的项目。
项目地址:
  
scikits.learn
scikit-learn是一个开源的、构建在SciPy之上用于机器学习的 Python 模块。它包括简单而高效的工具,可用于数据挖掘和数据分析,适合于任何人,可在各种情况下重复使用、构建在 NumPy、SciPy和 matplotlib 之上,遵循BSD 协议。( 详情 )
项目地址:
  
Theano
Theano是一个python库,用来定义、优化和模拟数学表达式计算,用于高效的解决多维数组的计算问题。它使得写深度学习模型更加容易,同时也给出了一些关于在GPU上训练它们的选项。( 详情 )
项目地址:
  
Mahout
Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。
项目主页:
  
pybrain
pybrain是Python的一个机器学习模块,它的目标是为机器学习任务提供灵活、易应、强大的机器学习算法。pybrain包括神经网络、强化学习(及二者结合)、无监督学习、进化算法。以神经网络为核心,所有的训练方法都以神经网络为一个实例。
项目主页:
  
OpenCV
OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。( 详情 )
项目主页:
  
Orange
Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了 Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。
项目主页:
  
NLTK
NLTK(natural language toolkit)是python的自然语言处理工具包。2001年推出,至今发展非常活跃。它的主要作用是为了教学,至今已经在20多个国家60多所高校使用,里面包括了大量的词料库,以及自然语言处理方面的算法实现:分词, 词根计算, 分类, 语义分析等。
项目主页:
  
Nupic
Nupic是一个开源的人工智能平台。该项目由Grok(原名 Numenta)公司开发,其中包括了公司的算法和软件架构。 NuPIC 的运作接近于人脑,“当模式变化的时候,它会忘掉旧模式,记忆新模式”。如人脑一样,CLA 算法能够适应新的变化。( 详情 )
项目主页:   

 

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前也有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、DNA序列测序、语音和手写识别、战略游戏和机器人等方面。

VMware CEO Pat Gelsinger曾说:引用数据科学是未来,大数据分析则是打开未来之门的钥匙企业正在迅速用新技术武装自己以便从大数据项目中获益。各行业对大数据分析人才的需求也迫使我们升级自己的技能以便寻找更好的职业发展。 跳槽之前最好先搞清楚一个岗位会接触到的项目类型,这样你才能掌握所有需要的技能,工作的效率也会更高。 下面我们尽量列出了一些流行的开源大数据项目。根据它们各自的授权协议,你或许可以在个人或者商业项目中使用这些项目的源代码。写作本文的目的也就是为大家介绍一些解决大数据相关问题可能会用到的工具。1.Apache Mahout我们可以使用Apache Mahout来快速创建高效扩展性又好的机器学习应用。Mahout结合了诸如H2O算法、Scala、Spark和Hadoop MapReduce等模块,为开发人员提供了一个构建可扩展算法的环境。现在最新的版本是去年11月6日发布的0.11.1版本。Apache Mahout支持一个叫做Samsara的数学环境,用户可以在Samsara中使用它提供的常见算法来开发自己的数学解决方案。Samsara对于线性代数、数据结构和统计操作都有着很好的支持,而且可以通过Scala的Mahout扩展或Mahout库来进行定制。Samara对很多常见算法都进行了重写因此速度上有一定的提升。这里我们能列出的一些算法包括:朴素贝叶斯分类器、矩阵分解、协同过滤以及神经网络。新加入的相似性分析还可以通过分析用户的点击来实现共现推荐算法。Apache Mahout GitHub地址:2.Apache SparkApache Spark是一个为实时大数据分析所设计的开源数据处理引擎。目前Spark的大用户有雅虎、腾讯和百度,使用Spark处理的数据在PB级别,集群节点数目也超过8000。Apache Spark是GitHub上最大的数据处理项目之一,有超过750名开发人员都曾对项目做出过贡献。与Hadoop MapReduce相比Apache Spark在内存中的运行速度快100倍,在硬盘中运行速度的差距也在10倍以上。Spark能够达到这样的速度靠的是DAG引擎和内存内计算性能的提升。开发语言可以使用Java、Python、Scala和R,此外Spark还提供了差不多100种集合操作符以便开发人员构建并行应用。图:Spark生态系统Apache Spark为机器学习、Spark Streaming和GraphX提供了众多强大的库,其中也包括为DataFrame和SQL所设计的库。开发人员可以用这些标准库来提升应用的性能和开发效率。Spark可以运行于很多环境中,如独立的集群、Hadoop YARN、EC2和Apache Mesos。Apache Spark也能从Hive、HBase、Tachyon、Cassandra和HDFS等数据源读取数据。Apache Spark GitHub地址:3.Apache StormApache Storm的设计针对的是流式数据,不过对于大数据的实时分析它也是很可靠的计算系统。它同样是一个开源项目而且开发人员可以使用所有的主流高级语言。Apache Storm主要用于以下应用:在线机器学习、连续计算、实时分析、ETL、分布式RPC。Apache Storm有配置方便、可用性高、容错性好及扩展性好等诸多优点,处理速度也极快,每个节点每秒可以处理数百万个tuple。目前最新的Apache Storm是去年11月5日发布的0.9.6版。Storm集群中有三种节点:Nimbus、Zookeeper和Supervisor。Nimbus与Hadoop的JobTracker类似,主要用于运算的上传、代码的分发和计算的监测。Zookeeper节点的作用是Storm集群的协调,Supervisor节点则是实现对worker的控制。Apache Storm GitHub地址4.NTLK(自然语言处理工具箱)NTLK是用于开发Python自然语言相关应用的一个工具包。它自带用于断句、分类、标记、词干提取、语义推理和语法分析的库,此外还有一个较为活跃的社区。对于语言学的实证研究、人工智能、认知科学、机器学习和信息提取来说都是强大的工具,当然你得用Python。自动补全是NTLK可能的用处之一。输入部分文字,借助NTLK可以推测可能的完整句子,现在很多搜索引擎都有这个功能。其他可能的应用还包括文本归类、地址分析和智能语音命令等。NTLK GitHub地址:5.mLossmLoss是机器学习开源软件的英文缩写,它将很多开源软件集合到了同一个平台。mLoss所收集的开源项目都经过审阅并附有对项目的简短介绍。mLoss本身并不是一个软件而是一个支持机器学习应用开源的网站。 mLoss网站上列出的开源软件有各自项目不同的48种授权协议,作者数量高达1100人。mLoss是到目前为止最大的机器学习软件库,共支持107种数据类型,所涉及的操作系统有26个,使用的编程语言也有51种。mLoss网站上列出的软件中较为流行的有:dlib ml:机器学习算法的C++库R-Cran-Caret:分类和回归训练库Shogun:为SVM所设计的机器学习工具箱,适用于Python、Matlab、Octave和RArmadillo:一个线性代数C++库MLPY:以NumPy和SciPY为基础构建的Python机器学习库MyMediaLite:一个推荐器算法库mLoss网站:6.JuliaJulia是为技术计算所设计的一门动态高级语言。虽然它的语法和其他技术计算环境的语法差不多,但Julia现在的使用范围还比较窄。Julia支持分布式并行计算还有着完备的高精度数学函数库。JuliaStats是一个机器学习和统计工具的合集,目的是帮助Julia用户创建可扩展且高效的应用。下面列出了JuliaStats中包括的一些程序:StatsBase:从名字我们就能看出StatsBase提供的是统计学相关的基本功能,比如描述统计、统计动差、样本函数、计数、排序、互相关、自相关以及加权统计等。DataArrays: 一个允许数据为空的数组类型,对重复数据的计算进行了优化。DataFrames: 表数据类型,提供包括索引、合并以及公式等操作。Distribution:用于计算分布的库,功能包括一元分布、多元分布、概率密度函数、累积分布函数以及最大似然估计。Multivariate Stats:为多元统计分析所设计,功能包括降维、线性回归、线性判别分析以及多维标度。MLBase:包括数据预处理、模型选择以及交叉验证等机器学习算法。Clustering:包括聚类分析所用到的算法如k-means、k-medoids以及多种评估方法。这里我们只列出了一部分数据分析和机器学习相关的库,其他库包括假设检验、核密度估计、非负矩阵分解NMF、广义线性模型GLM、马尔科夫链蒙特卡洛方法MCMC以及时序分析等。所有库的源码都可以在GitHub上找到。Julia GitHub地址:7.Scikit-LearnScikit-Learn是为机器学习所设计的开源Python库。它基于SciPy、NumPy和Matplotlib开发,称得上是一款数据分析和数据挖掘的利器。Scikit-Learn的授权协议允许个人和商业用户使用。Scikit-Learn主要用于:聚类:识别数据中的不同类别。算法包括最邻近搜索、支持向量机和随机森林,可以用于图像识别和垃圾邮件识别等应用。回归:用于连续变量的预测。算法包括岭回归、支持向量回归、套索回归等。应用包括股票价格、天气以及电力负载的预测。降维:用于减少随机变量的个数。算法包括主成分分析、特征选择、乔里斯基分解和矩阵分解。数据处理:特征提取与数据预处理功能可以将原始数据转换成有利于机器学习应用处理的格式。Scikit-Learn GitHub地址:本文中我们列出的这些GitHub项目应用颇为流行,而且这些工具和软件已经被用于解决实际中的大数据问题,希望本文能够对大家的大数据分析之路有所启发。原文地址:Top Data Science Based Github Projects

 

翻译整理了目前GitHub上最受欢迎的28款开源的机器学习项目,以供开发者参考使用。

 

1. TensorFlow

 

图片 2

TensorFlow 是谷歌发布的第二代机器学习系统。据谷歌宣称,在部分基准测试中,TensorFlow的处理速度比第一代的DistBelief加快了2倍之多。
具体的讲,TensorFlow是一个利用数据流图(Data Flow Graphs)进行数值计算的开源软件库:图中的节点( Nodes)代表数学运算操作,同时图中的边(Edges)表示节点之间相互流通的多维数组,即张量(Tensors)。这种灵活的架构可以让使用者在多样化的将计算部署在台式机、服务器或者移动设备的一个或多个CPU上,而且无需重写代码;同时任一基于梯度的机器学习算法均可够借鉴TensorFlow的自动分化(Auto-differentiation);此外通过灵活的Python接口,要在TensorFlow中表达想法也变得更为简单。
TensorFlow最初由Google Brain小组(该小组隶属于Google's Machine Intelligence研究机构)的研究员和工程师开发出来的,开发目的是用于进行机器学习和深度神经网络的研究。但该系统的通用性足以使其广泛用于其他计算领域。
目前Google 内部已在大量使用 AI 技术,包括 Google App 的语音识别、Gmail 的自动回复功能、Google Photos 的图片搜索等都在使用 TensorFlow 。

开发语言:C++
许可协议:Apache License 2.0 
GitHub项目地址:https://github.com/tensorflow/tensorflow

 

2. Scikit-Learn

Scikit-Learn是用于机器学习的Python 模块,它建立在SciPy之上。该项目由David Cournapeau 于2007年创立,当时项目名为Google Summer of Code,自此之后,众多志愿者都为此做出了贡献。
主要特点:

  • 操作简单、高效的数据挖掘和数据分析
  • 无访问限制,在任何情况下可重新使用
  • 建立在NumPy、SciPy 和 matplotlib基础上

Scikit-Learn的基本功能主要被分为六个部分:分类、回归、聚类、数据降维、模型选择、数据预处理,具体可以参考官方网站上的文档。经过测试,Scikit-Learn可在 Python 2.6、Python 2.7 和 Python 3.5上运行。除此之外,它也应该可在Python 3.3和Python 3.4上运行。
注:Scikit-Learn以前被称为Scikits.Learn。

开发语言:Python
许可协议:3-Clause BSD license
GitHub项目地址: https://github.com/scikit-learn/scikit-learn

 

3.Caffe

Caffe 是由神经网络中的表达式、速度、及模块化产生的深度学习框架。后来它通过伯克利视觉与学习中心((BVLC)和社区参与者的贡献,得以发展形成了以一个伯克利主导,然后加之Github和Caffe-users邮件所组成的一个比较松散和自由的社区。
Caffe是一个基于C++/CUDA架构框架,开发者能够利用它自由的组织网络,目前支持卷积神经网络和全连接神经网络(人工神经网络)。在Linux上,C++可以通过命令行来操作接口,对于MATLAB、Python也有专门的接口,运算上支持CPU和GPU直接无缝切换。

 

Caffe的特点

  • 易用性:Caffe的模型与相应优化都是以文本形式而非代码形式给出, Caffe给出了模型的定义、最优化设置以及预训练的权重,方便快速使用;
  • 速度快:能够运行最棒的模型与海量的数据;
  • Caffe可与cuDNN结合使用,可用于测试AlexNet模型,在K40上处理一张图片只需要1.17ms;
  • 模块化:便于扩展到新的任务和设置上;
  • 使用者可通过Caffe提供的各层类型来定义自己的模型;

目前Caffe应用实践主要有数据整理、设计网络结构、训练结果、基于现有训练模型,使用Caffe直接识别。

开发语言:C++
许可协议: BSD 2-Clause license
GitHub项目地址: https://github.com/BVLC/caffe

15 个开源的顶级人工智能工具

4. PredictionIO

PredictionIO 是面向开发人员和数据科学家的开源机器学习服务器。它支持事件采集、算法调度、评估,以及经由REST APIs的预测结果查询。使用者可以通过PredictionIO做一些预测,比如个性化推荐、发现内容等。PredictionIO 提供20个预设算法,开发者可以直接将它们运行于自己的数据上。几乎任何应用与PredictionIO集成都可以变得更“聪明”。其主要特点如下所示:

  • 基于已有数据可预测用户行为;
  • 使用者可选择你自己的机器学习算法;
  • 无需担心可扩展性,扩展性好。

PredictionIO 基于 REST API(应用程序接口)标准,不过它还包含 Ruby、Python、Scala、Java 等编程语言的 SDK(软件开发工具包)。其开发语言是Scala语言,数据库方面使用的是MongoDB数据库,计算系统采用Hadoop系统架构。 

开发语言:Scala
许可协议: Apache License 2.0
GitHub项目地址: https://github.com/PredictionIO/PredictionIO

 

 

人工智能artificial intelligence,AI是科技研究中最热门的方向之一。像 IBM、谷歌、微软、Facebook 和亚马逊等公司都在研发上投入大量的资金、或者收购那些在机器学习、神经网络、自然语言和图像处理等领域取得了进展的初创公司。考虑到人们对此感兴趣的程度,我们将不会惊讶于斯坦福的专家在人工智能报告中得出的结论:“越来越强大的人工智能应用,可能会对我们的社会和经济产生深远的积极影响,这将出现在从现在到 2030 年的时间段里。”

在最近的一篇文章中,我们概述了 45 个十分有趣或有前途的人工智能项目。在本文中,我们将聚焦于开源的人工智能工具,详细的了解下最著名的 15 个开源人工智能项目。

以下这些开源人工智能应用都处于人工智能研究的最前沿。

5. Brain

Brain是 JavaScript 中的 神经网络库。以下例子说明使用Brain来近似 XOR 功能:

var net = new brain.NeuralNetwork();

net.train([{input: [0, 0], output: [0]},

           {input: [0, 1], output: [1]},

           {input: [1, 0], output: [1]},

           {input: [1, 1], output: [0]}]);

var output = net.run([1, 0]);  // [0.987]

当 brain 用于节点中,可使用npm安装:

npm install brain

当 brain 用于浏览器,下载最新的 brain.js 文件。训练计算代价比较昂贵,所以应该离线训练网络(或者在 Worker 上),并使用 toFunction() 或者 toJSON()选项,以便将预训练网络插入到网站中。

开发语言:JavaScript
GitHub项目地址: https://github.com/harthur/brain

1. Caffe

图片 3

它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe 是一个基于表达体系结构和可扩展代码的深度学习框架。使它声名鹊起的是它的速度,这让它受到研究人员和企业用户的欢迎。根据其网站所言,它可以在一天之内只用一个 NVIDIA K40 GPU 处理 6000 万多个图像。它是由伯克利视野和学习中心(BVLC)管理的,并且由 NVIDIA 和亚马逊等公司资助来支持它的发展。

6. Keras

Keras是极其精简并高度模块化的神经网络库,在TensorFlow 或 Theano 上都能够运行,是一个高度模块化的神经网络库,支持GPU和CPU运算。Keras可以说是Python版的Torch7,对于快速构建CNN模型非常方便,同时也包含了一些最新文献的算法,比如Batch Noramlize,文档教程也很全,在官网上作者都是直接给例子浅显易懂。Keras也支持保存训练好的参数,然后加载已经训练好的参数,进行继续训练。
Keras侧重于开发快速实验,用可能最少延迟实现从理念到结果的转变,即为做好一项研究的关键。
当需要如下要求的深度学习的库时,就可以考虑使用Keras:

  • 考虑到简单快速的原型法(通过总体模块性、精简性以及可扩展性);
  • 同时支持卷积网络和递归网络,以及两者之间的组合;
  • 支持任意连接方案(包括多输入多输出训练);
  • 可在CPU 和 GPU 上无缝运行。

Keras目前支持 Python 2.7-3.5。

开发语言:Python
GitHub项目地址:https://github.com/fchollet/keras

2. CNTK

图片 4

它是计算网络工具包Computational Network Toolkit的缩写,CNTK 是一个微软的开源人工智能工具。不论是在单个 CPU、单个 GPU、多个 GPU 或是拥有多个 GPU 的多台机器上它都有优异的表现。微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。

7. CNTK

CNTK(Computational Network Toolkit )是一个统一的深度学习工具包,该工具包通过一个有向图将神经网络描述为一系列计算步骤。在有向图中,叶节点表示输入值或网络参数,其他节点表示该节点输入之上的矩阵运算。
CNTK 使得实现和组合如前馈型神经网络DNN、卷积神经网络(CNN)和循环神经网络(RNNs/LSTMs)等流行模式变得非常容易。同时它实现了跨多GPU 和服务器自动分化和并行化的随机梯度下降(SGD,误差反向传播)学习。
下图将CNTK的处理速度(每秒处理的帧数)和其他四个知名的工具包做了比较了。配置采用的是四层全连接的神经网络(参见基准测试脚本)和一个大小是8192 的高效mini batch。在相同的硬件和相应的最新公共软件版本(2015.12.3前的版本)的基础上得到如下结果:

图片 5

CNTK自2015年四月就已开源。

开发语言:C++
GitHub项目地址:https://github.com/Microsoft/CNTK

3. Deeplearning4j

图片 6

Deeplearning4j 是一个 Java 虚拟机(JVM)的开源深度学习库。它运行在分布式环境并且集成在Hadoop 和 Apache Spark 中。这使它可以配置深度神经网络,并且它与 Java、Scala 和 其他 JVM 语言兼容。

这个项目是由一个叫做 Skymind 的商业公司管理的,它为这个项目提供支持、培训和一个企业的发行版。

8. Convnetjs

ConvNetJS是利用Javascript实现的神经网络,同时还具有非常不错的基于浏览器的Demo。它最重要的用途是帮助深度学习初学者更快、更直观的理解算法。
它目前支持:

  • 常见的神经网络模块(全连接层,非线性);
  • 分类(SVM/ SOFTMAX)和回归(L2)的成本函数;
  • 指定和训练图像处理的卷积网络;
  • 基于Deep Q Learning的实验强化学习模型。

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有