本文將從開發(fā)者的角度出發(fā)谎倔,特別是針對開發(fā)者中為數(shù)眾多的Linux系統(tǒng)和Mac系統(tǒng)用戶,奉上一篇針對泛Linux生態(tài)的頂級人工智能開源工具盤點(當(dāng)然蘸拔,有些工具也并非只兼容Linux)巨缘。
1. Deeplearning4j:為Java用戶量身定制
Deeplearning4j(Deep Learning For Java)是Java和Scala環(huán)境下的一個開源分布式的深度學(xué)習(xí)項目欣鳖,由總部位于美國舊金山的商業(yè)智能和企業(yè)軟件公司Skymind牽頭開發(fā),并得到了騰訊的投資不傅。正如它的命名旅掂,Deeplearning4j的運行需要Java虛擬機(jī)JVM的支持。
Deeplearning4j團(tuán)隊在官網(wǎng)表示访娶,他們希望通過一些深度學(xué)習(xí)算法的開發(fā)商虐,將商業(yè)帶入智能化數(shù)據(jù)的時代。也正是為了實現(xiàn)這一理想崖疤,惠及更多的用戶秘车,因此選擇了移植性更好的Java環(huán)境來實現(xiàn)這些算法。目前劫哼,Deeplearning4j的這些算法已經(jīng)在谷歌叮趴、Facebook和微軟等平臺得到了廣泛應(yīng)用。
值得一提的是权烧,為了便于開發(fā)者自由定制眯亦,Deeplearning4j已經(jīng)開放了盡可能多的算法調(diào)節(jié)接口,并對接口參數(shù)做出了詳盡解釋豪嚎。同時搔驼,Deeplearning4j團(tuán)隊還開發(fā)了針對矩陣運算的ND4J和ND4S庫(N-Dimensional Arrays for Java/Scala)谈火,同樣需要JVM的支持侈询。
Deeplearning4j遵循Apache 2.0開源協(xié)議,提供了基于AWS云服務(wù)的GPU運算支持糯耍,以及微軟服務(wù)器框架的支持扔字。
官網(wǎng):Open-source, Distributed Deep Learning for the JVM
2. Caffe:廣受歡迎的深度學(xué)習(xí)框架
Caffe的全稱是 “Convolution Architecture For Feature Extraction”,意為“用于特征提取的卷積架構(gòu)”温技,主要開發(fā)者來自伯克利大學(xué)的視覺與學(xué)習(xí)中心(Berkeley Vision and Learning Center革为,BVLC),基于BSD 2-Clause開源許可協(xié)議發(fā)布舵鳞。
Caffe是業(yè)內(nèi)著名的深度學(xué)習(xí)框架震檩,根據(jù)官網(wǎng)介紹,其主要特點是:運算速度快(官方顯示在單片NVIDIA K40 GPU的運算能力下蜓堕,Caffe每天可以處理超過60M的圖片數(shù)據(jù))抛虏,模塊定制方便(在CPU或GPU之間的轉(zhuǎn)換只需要簡單修改一下參數(shù)設(shè)定),擴(kuò)展能力強(qiáng)大(目前有超過一千名開發(fā)者基于Caffe開發(fā)了分支版本 )套才,以及豐富的社區(qū)支持(Caffe已經(jīng)被授權(quán)給各種研究機(jī)構(gòu)迂猴、初創(chuàng)公司和工業(yè)集團(tuán)),因此特別適合于神經(jīng)網(wǎng)絡(luò)建模和圖像處理任務(wù)背伴。
官網(wǎng):Caffe | Deep Learning Framework
3. H2O:企業(yè)級機(jī)器學(xué)習(xí)框架
H2O(即水的化學(xué)式)是一個開源沸毁、快速峰髓、可擴(kuò)展的分布式機(jī)器學(xué)習(xí)框架,同時提供了大量的算法實現(xiàn)息尺。它支持深度學(xué)習(xí)携兵、梯度推進(jìn)(Gradient Boosting)、隨機(jī)森林(Random Forest)搂誉、廣義線性模型(即邏輯回歸眉孩,彈性網(wǎng)絡(luò))等各種機(jī)器學(xué)習(xí)算法。
H2O框架的核心代碼由Java編寫勒葱,數(shù)據(jù)和模型通過分布式的key/value存儲在各個集群節(jié)點的內(nèi)存中浪汪,算法使用Map/Reduce框架實現(xiàn),并使用了Java中的Fork/Join機(jī)制來實現(xiàn)多線程凛虽。
H2O是一個更關(guān)注企業(yè)用戶的人工智能分析工具死遭,它聚焦于為掌握大量數(shù)據(jù)的企業(yè)用戶提供快速精準(zhǔn)的預(yù)測分析模型,從海量數(shù)據(jù)中提取有助于商業(yè)決策的信息凯旋。
根據(jù)H2O官方的數(shù)據(jù)呀潭,目前已經(jīng)有超過7萬名數(shù)據(jù)科學(xué)家和8萬家組織機(jī)構(gòu)成為了H2O平臺的忠實擁躉。
官網(wǎng):H2O.ai
4. MLlib:基于Spark框架的機(jī)器學(xué)習(xí)算法實現(xiàn)庫
MLlib是Apache開源項目Spark針對一些常用的機(jī)器學(xué)習(xí)算法的實現(xiàn)庫至非,同時也包括了相關(guān)的測試程序和數(shù)據(jù)生成器钠署。
按照官網(wǎng)的描述,MLlib的主要特點是易用(天生兼容Spark框架的API接口和Python荒椭、Java谐鼎、Scala等多種語言)、高性能(依靠Spark的數(shù)據(jù)管理能力趣惠,運行迭代和邏輯回歸算法時比Hadoop框架快100倍)和易于部署(可以直接在現(xiàn)有的Hadoop數(shù)據(jù)集群上運行)狸棍。
MLlib目前支持分類、回歸味悄、推薦草戈、聚類、生存分析等多種機(jī)器學(xué)習(xí)算法侍瑟。
官網(wǎng):MLlib | Apache Spark
5. Apache Mahout:Hadoop廣泛采用的機(jī)器學(xué)習(xí)開源框架
Apache Mahout同樣也是一個Apache開源項目唐片,與MLlib相對應(yīng),Mahout是應(yīng)用在Hadoop平臺下的機(jī)器學(xué)習(xí)開源框架涨颜。
Mahout有如下三個主要特點:
1) 提供簡單费韭、可擴(kuò)展的編程環(huán)境和框架;
2) 同時為Scala + Apache Spark咐低、H2O以及Apache Flik平臺提供打包好的算法實現(xiàn)揽思;
3) 支持R語言的語法規(guī)則進(jìn)行矩陣計算。
官網(wǎng):Scalable machine learning and data mining
6. OpenNN:專注神經(jīng)網(wǎng)絡(luò)的實現(xiàn)庫
OpenNN的全稱為“Open Neural Networks Library”见擦,即開源神經(jīng)網(wǎng)絡(luò)庫钉汗,其核心代碼由C++編寫羹令,從名字就可以看出,其主要面向深度學(xué)習(xí)領(lǐng)域损痰,助力于用戶構(gòu)建各種不同的神經(jīng)網(wǎng)絡(luò)模型福侈。
據(jù)官方描述,OpenNN可用于實現(xiàn)監(jiān)督學(xué)習(xí)場景中任何層次的非線性模型卢未,同時還支持各種具有通用近似屬性的神經(jīng)網(wǎng)絡(luò)設(shè)計肪凛。
除了模型的多層支持外,OpenNN最主要優(yōu)勢還在于強(qiáng)大的性能表現(xiàn)辽社。具體來說就是伟墙,OpenNN能夠通過C++語言實現(xiàn)的核心代碼高效地調(diào)節(jié)內(nèi)容使用,通過OpenMP庫很好地平衡多線程CPU調(diào)用滴铅,以及通過CUDA工具對GPU進(jìn)行加速戳葵。
官網(wǎng):Open Neural Networks Library
7. Oryx 2:重新設(shè)計了Lambda架構(gòu)
Oryx 2是Oryx項目的2.0版,前身名為 Myrrix汉匙,后來被大數(shù)據(jù)公司 Cloudera 收購拱烁,才改名為 Oryx。
Oryx 2.0關(guān)注于大規(guī)模機(jī)器學(xué)習(xí)/預(yù)測分析基礎(chǔ)框架的實時表現(xiàn)噩翠,它基于Apache Spark和Apache Kafka框架開發(fā)戏自,并重新設(shè)計了Lambda架構(gòu),使得層次之間的復(fù)用性更強(qiáng)伤锚。
2.0版相比之前實現(xiàn)了更多算法擅笔,包括ALS協(xié)同過濾、隨機(jī)森林见芹、以及K-means++等剂娄。
官網(wǎng):Oryx - Overview
8. OpenCyc:全球最龐大、最完備的通用型知識庫與常識推理引擎
OpenCyc是Cycorp公司推出的一個基于Cyc的開源版本玄呛,而Cyc是目前全球最龐大、最完備的通用型知識庫與常識推理引擎和二。
OpenCyc包含數(shù)十萬個精心組織的Cyc詞條徘铝。Cycorp公司不但免費提供OpenCyc,同時也鼓勵開發(fā)者基于OpenCyc開發(fā)針對于特定應(yīng)用領(lǐng)域的分支版本惯吕。
目前惕它,OpenCyc已經(jīng)被成功應(yīng)用在大數(shù)據(jù)建模、語言數(shù)據(jù)整合废登、智能文本理解淹魄、特定領(lǐng)域的專家系統(tǒng)建模和人工智能游戲。
官網(wǎng):OpenCyc - Cycorp
9. Apache SystemML:專注于大數(shù)據(jù)分析的開源機(jī)器學(xué)習(xí)平臺
SystemML是一個利用機(jī)器學(xué)習(xí)算法進(jìn)行大數(shù)據(jù)分析的開源AI平臺堡距,其主要特點是支持R語言和Python的語法甲锡,專注于大數(shù)據(jù)分析領(lǐng)域兆蕉,以及專門為高階數(shù)學(xué)計算設(shè)計。
按照官網(wǎng)的介紹缤沦,Apache SystemML基于Apache Spark框架運行虎韵,其最大的特點就是能夠自動、逐行地評估數(shù)據(jù)缸废,并根據(jù)評估結(jié)果確定用戶的代碼應(yīng)該直接運行在驅(qū)動器上還是運行在Apache Spark集群上包蓝。
除了Apache Spark之外,SystemML還支持Apache Hadoop企量、Jupyter和Apache Zeppelin等多個平臺测萎。目前,SystemML技術(shù)已經(jīng)成功應(yīng)用在交通届巩、航空和金融等多個領(lǐng)域绳泉。
官網(wǎng):Apache SystemML - Declarative Large-Scale Machine Learning
10. NuPIC:基于層級實時存儲算法的機(jī)器智能平臺
NuPIC是一個與眾不同的開源機(jī)器智能平臺,它基于一種大腦皮層理論姆泻,即“層級實時存儲算法”(Heirarchical Temporary Memory零酪,HTM)。NuPIC聚焦于分析實時數(shù)據(jù)流拇勃,可以通過學(xué)習(xí)數(shù)據(jù)之間基于時間的狀態(tài)變化四苇,對未知數(shù)據(jù)進(jìn)行預(yù)測,并揭示其中的非常規(guī)特性方咆。
NuPIC關(guān)鍵的功能特性包括:
1) 持續(xù)的在線學(xué)習(xí):NuPIC模型可以持續(xù)根據(jù)快速變化的數(shù)據(jù)流進(jìn)行實時調(diào)整月腋;
2) 時間和空間分析:像人腦一樣,NuPIC可以同時模擬時間和空間的變化瓣赂;
3) 實時的數(shù)據(jù)流分析:智能化的數(shù)據(jù)分析不會隨著數(shù)據(jù)量的增加而改變榆骚;
4) 預(yù)測和建模:通過通用性的大腦皮層算法,對數(shù)據(jù)進(jìn)行預(yù)測煌集、建模和學(xué)習(xí)妓肢;
5) 強(qiáng)大的異常檢測能力:實時檢測數(shù)據(jù)流的擾動,不依靠僵化的閾值設(shè)置和過時的算法苫纤;
6) 層級實時存儲算法:支持全新的HTM計算架構(gòu)碉钠。
官網(wǎng):Numenta Platform for Intelligent Computing
由于2016僅僅是人工智能走向主流的元年,未來隨著技術(shù)的進(jìn)一步發(fā)展和革新卷拘,勢必會出現(xiàn)更多喊废、更豐富的開發(fā)工具。這里值得注意的一點是:工具的意義不僅在于解決了日常研發(fā)中遇到的各種問題栗弟,更在于降低了開發(fā)的難度污筷,引導(dǎo)了更多人投入到人工智能的研發(fā)之中。