除了 Python ,另外几种编程语言也很牛
2017-08-01 19:04:06
Angela
  • 访问次数: 261
  • 注册日期: 2017-03-15
  • 最后登录: 2017-12-05
  • 当前积分: 1309

2017-07-31 数据与算法之美


Python 由于本身的易用优势和强大的工具库储备,成为了在人工智能及其它相关科学领域中最常用的语言之一。尤其是在机器学习,已然是各大项目最偏爱的语言。

其实除了 Python ,也不乏有开发者用其他语言写出优秀的机器学习项目。在此,列出其中一些个人认为值得关注的开源机器学习项目。由于篇幅有限,考虑分多期整理。


1、C

Darknet —— 神经网络框架


Darknet 是一个用 C 和 CUDA 编写的开源神经网络框架。它快速,易于安装,并支持 CPU 和 GPU 计算。

CCV  —— 计算机视觉库


CCV 是 C-based/Cached/Core Computer Vision Library 的简称, 它是一个现代的计算机视觉库。


CCV 是一种以应用驱动的算法库,比如对静态物体(如人脸)的快速检测算法、对某些不容易定位物体(如猫)的准确检测算法、艺术文本的检测算法、长期目标的跟踪算法和特征点检测算法。


2、C++

CNTK —— 深度学习工具包


微软出品的开源深度学习工具包,它把神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤。


CNTK 不仅使深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)和长短时记忆单元(LSTM)的实现变得非常容易,还支持多个 GPU 组合、服务器自动分化和并行的随机梯度下降(SGD)学习。

Caffe  —— 深度学习框架


Caffe 是一个清晰而又高效的深度学习框架,模型与相应优化都是以文本形式而非代码形式给出,并给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。同时,它能够运行最棒的模型与海量的数据,也能很方便扩展到新的任务和设置上。


Kaldi —— 语音识别工具包


Kaldi 是用 C ++ 编写的语言识别工具包,旨在供语音识别研究人员使用,且易于修改和扩展。它在设计之初就尽可能地以最通用的形式提供的算法,以保证其可扩展性。


3、Go

CloudForest —— 决策树组合算法


纯 Go 编写的快速、灵活、多线程的决策树,允许一些相关的算法用于具有缺失值的异构数据的分类、回归、特征选择和结构分析。它可以实现更快的训练时间,非常适合现代处理器来学习二进制。


4、Java

CoreNLP —— 自然语言处理工具


coreNLP 是斯坦福大学开发的一套关于自然语言处理的工具,使用简单功能强大。它可以通过输入原始文本,给出单词的基本形式,它们的词性、公司、人员的名称、解释日期、时间和数量等等。它最初针对英语开发,但现在也已支持中文。


H2O —— 机器学习和预测分析框架


H2O 是一个分布式的、基于内存的、可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型。它使用开发者熟悉的界面,可与 Hadoop 和 Spark 等大型数据技术无缝工作。它也提供许多流行算法的实现,例如 GBM、Random Forest、Deep Neural Networks、Word2Vec 等。 




Deeplearning4J —— 分布式神经网络库


Deeplearning4J 是一个使用 Java 和 Scala 编写的分布式神经网络库,集成了 Hadoop 和 Spark ,设计用于运行在分布式 GPU 和 CPU 上的商业环境。它即插即用,方便开发者在 APP 中快速集成深度学习功能

Deeplearning4j 包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。



5、Javascript

Natural —— 自然语言处理工具


node.js 下用的自然语言处理工具,支持词法分析、词干分析、分类、语音、反比文档频数权重评价、WordNet、字符串相似度等处理。


ConvNetJS —— 深度学习库


ConvNetJS 是一个基于 JavaScript 的深度学习库,可以让你在浏览器中训练深度网络。它可以帮助深度学习初学者更快、更直观的理解算法通,过一些简单的 Demo 给用户最直观的解释。



6、PHP

PHP-ML —— 机器学习库


PHP-ML 是 PHP 的机器学习库,同时包含算法、交叉验证、神经网络、预处理、特征提取等多种特性。要求 PHP 版本 > = 7.0 。


PHP-ML 提供的机器学习算法包括:关联规则学习(Apriori 算法)、分类器(SVC、KNN、贝叶斯)、回归(最小二乘线性回归、支持向量回归)、聚类(KMeans、基于密度的聚类算法)、矩阵运算相关(准确率、混肴矩阵、与分类相关的结论如精确度、召回率、F1 值、支持率)、模型运算管道(Pipeline)、神经网络(多层感知机)等。



7、Ruby

Treat ——自然语言处理框架


Treat 是一个自然语言处理和计算语言学的工具包。Treat 项目旨在为 Ruby 构建一个语言和算法均不可知的 NLP 框架,支持文档检索、文本分块、分段和标记化等任务,自然语言解析,词性标注,关键字提取和命名实体识别。





Classifier —— 通用分类器模块


Classifier 是可用贝叶斯算法及其他分类法的通用分类器模块。贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类,具有准确、快速、内存要求适当等特点。




8、Objective C

MLPNeuralNet —— 多层感知器


MLPNeuralNet 是适用于 iOS 和 Mac OS X 的快速多层感知器神经网络库。它使用矢量操作和硬件加速(如果可用)构建在苹果加速框架之上,通过训练有素的神经网络预测新的示例。




9、Swift

Bender —— 机器学习框架


Bender 是 MetalPerformanceShaders 之上的一个抽象层(abstraction layer),可用于操作神经网络,旨在更轻松地在 iOS 上运行预训练的网络。它可以让你轻松使用卷积、池化、全连接和一些规范化等最常见的层,从而轻松地定义和运行神经网络。

目前 Bender 有一个用于 TensorFlow 的适配器(adapter),其可以加载带有变量的图(graph),并将其「翻译」成 Bender 的层(layer)。


Swift AI —— 深度学习库


Swift AI 是一个完全由 Swift 编写的高性能 AI 和机器学习库,包含用于人工智能和科学应用的常用工具集,支持卷积神经网络、循环神经网络、遗传算法库、快速线性代数库、信号处理库等。这些工具采用先进的并行处理技术,专门针对 iOS 和 OS X 硬件进行了优化,目前支持所有的 Apple 平台,并计划推出 Linux 版本支持。





10、Scala

Breeze —— 数值处理库


Breeze 是一个数值处理库,是 ScalaNLP 的核心库,包括线性代数、数值计算和优化,目标是实现通用、干净、强大,且不牺牲性能(高效)的机器学习方法。

ScalaNLP 包含 Breeze 和 Epic(一个高性能的统计解析器和结构化预测库)。



BIDMach —— 机器学习库


BIDMach 是一个速度非常快的机器学习库,支持逻辑回归、K-means、矩阵分解、随机森林、LDA 等。它是BIDMat 的一个姊妹项目,BIDMat 是一个矩阵库。


BIDMach 在一些评测中甚至跑出了比 Spark 还好的结果。



11、.NET


numl —— 机器学习框架


numl 是一个小巧的,包含比较多的机器学习算法类库,支持监督式和非监督式学习。支持很多常见的机器学习算法,包括 Cluster、KMeans、PCA、DecisionTree、KNN、NaiveBayes、NeuralNetwork 等学习算法,功能强大,同时也包括一些数值计算的实现。




Accord.NET —— 机器学习框架

Accord.NET 为 .NET 提供机器学习、统计、人工智能、计算机视觉和图像处理方法。它可以在 Microsoft Windows、Xamarin、Unity3D、Windows Store 应用,Linux 和移动设备上使用。


在与 AForge.NET 项目合并之后,该框架现在提供了一个用于学习/训练机器学习模型的统一 API ,其易于使用和可扩展。




Angela 最后编辑, 2017-08-01 19:05:38