天天看點

開發者必備:基于Linux生态的十大AI開源架構盤點

前不久,雷鋒網曾盤點了一系列機器學習相關的開源平台,包括谷歌的tensorflow、微軟的cntk以及百度的paddlepaddle等等(詳情見文末“相關閱讀”)。這些平台各具特點,其中某些已經在業内得到了廣泛認可和應用。

與此前不同,本文将從開發者的角度出發,特别是針對開發者中為數衆多的linux系統和mac系統使用者,奉上一篇針對泛linux生态的頂級人工智能開源工具盤點(當然,有些工具也并非隻相容linux)。

開發者必備:基于Linux生态的十大AI開源架構盤點

deeplearning4j(deep

learning for

java)是java和scala環境下的一個開源分布式的深度學習項目,由總部位于美國舊金山的商業智能和企業軟體公司skymind牽頭開發,并得到了騰訊的投資。正如它的命名,deeplearning4j的運作需要java虛拟機jvm的支援。

deeplearning4j團隊在官網表示,他們希望通過一些深度學習算法的開發,将商業帶入智能化資料的時代。也正是為了實作這一理想,惠及更多的使用者,是以選擇了移植性更好的java環境來實作這些算法。目前,deeplearning4j的這些算法已經在谷歌、facebook和微軟等平台得到了廣泛應用。

值得一提的是,為了便于開發者自由定制,deeplearning4j已經開放了盡可能多的算法調節接口,并對接口參數做出了詳盡解釋。同時,deeplearning4j團隊還開發了針對矩陣運算的nd4j和nd4s庫(n-dimensional

arrays for java/scala),同樣需要jvm的支援。

deeplearning4j遵循apache 2.0開源協定,提供了基于aws雲服務的gpu運算支援,以及微軟伺服器架構的支援。

開發者必備:基于Linux生态的十大AI開源架構盤點

caffe的全稱是

“convolution architecture for feature

extraction”,意為“用于特征提取的卷積架構”,主要開發者來自伯克利大學的視覺與學習中心(berkeley vision and

learning center,bvlc),基于bsd 2-clause開源許可協定釋出。

k40

gpu的運算能力下,caffe每天可以處理超過60m的圖檔資料),子產品定制友善(在cpu或gpu之間的轉換隻需要簡單修改一下參數設定),擴充能力強大(目前有超過一千名開發者基于caffe開發了分支版本),以及豐富的社群支援(caffe已經被授權給各種研究機構、初創公司和工業集團),是以特别适合于神經網絡模組化和圖像處理任務。

開發者必備:基于Linux生态的十大AI開源架構盤點

h2o(即水的化學式)是一個開源、快速、可擴充的分布式機器學習架構,同時提供了大量的算法實作。它支援深度學習、梯度推進(gradient boosting)、随機森林(random forest)、廣義線性模型(即邏輯回歸,彈性網絡)等各種機器學習算法。

h2o架構的核心代碼由java編寫,資料和模型通過分布式的key/value存儲在各個叢集節點的記憶體中,算法使用map/reduce架構實作,并使用了java中的fork/join機制來實作多線程。

h2o是一個更關注企業使用者的人工智能分析工具,它聚焦于為掌握大量資料的企業使用者提供快速精準的預測分析模型,從海量資料中提取有助于商業決策的資訊。

根據h2o官方的資料,目前已經有超過7萬名資料科學家和8萬家組織機構成為了h2o平台的忠實擁趸。

開發者必備:基于Linux生态的十大AI開源架構盤點

mllib是apache開源項目spark針對一些常用的機器學習算法的實作庫,同時也包括了相關的測試程式和資料生成器。

按照官網的描述,mllib的主要特點是易用(天生相容spark架構的api接口和python、java、scala等多種語言)、高性能(依靠spark的資料管理能力,運作疊代和邏輯回歸算法時比hadoop架構快100倍)和易于部署(可以直接在現有的hadoop資料叢集上運作)。

mllib目前支援分類、回歸、推薦、聚類、生存分析等多種機器學習算法。

開發者必備:基于Linux生态的十大AI開源架構盤點

apache mahout同樣也是一個apache開源項目,與mllib相對應,mahout是應用在hadoop平台下的機器學習開源架構。

mahout有如下三個主要特點:

1) 提供簡單、可擴充的程式設計環境和架構; 2) 同時為scala + apache spark、h2o以及apache flik平台提供打包好的算法實作; 3) 支援r語言的文法規則進行矩陣計算。
開發者必備:基于Linux生态的十大AI開源架構盤點

opennn的全稱為“open neural networks library”,即開源神經網絡庫,其核心代碼由c++編寫,從名字就可以看出,其主要面向深度學習領域,助力于使用者建構各種不同的神經網絡模型。

據官方描述,opennn可用于實作監督學習場景中任何層次的非線性模型,同時還支援各種具有通用近似屬性的神經網絡設計。

除了模型的多層支援外,opennn最主要優勢還在于強大的性能表現。具體來說就是,opennn能夠通過c++語言實作的核心代碼高效地調節内容使用,通過openmp庫很好地平衡多線程cpu調用,以及通過cuda工具對gpu進行加速。

開發者必備:基于Linux生态的十大AI開源架構盤點

oryx 2是oryx項目的2.0版,前身名為 myrrix,後來被大資料公司 cloudera 收購,才改名為 oryx。

oryx 2.0關注于大規模機器學習/預測分析基礎架構的實時表現,它基于apache spark和apache kafka架構開發,并重新設計了lambda架構,使得層次之間的複用性更強。

2.0版相比之前實作了更多算法,包括als協同過濾、随機森林、以及k-means++等。

開發者必備:基于Linux生态的十大AI開源架構盤點

opencyc是cycorp公司推出的一個基于cyc的開源版本,而cyc是目前全球最龐大、最完備的通用型知識庫與常識推理引擎。

opencyc包含數十萬個精心組織的cyc詞條。cycorp公司不但免費提供opencyc,同時也鼓勵開發者基于opencyc開發針對于特定應用領域的分支版本。

目前,opencyc已經被成功應用在大資料模組化、語言資料整合、智能文本了解、特定領域的專家系統模組化和人工智能遊戲。

開發者必備:基于Linux生态的十大AI開源架構盤點

systemml是一個利用機器學習算法進行大資料分析的開源ai平台,其主要特點是支援r語言和python的文法,專注于大資料分析領域,以及專門為高階數學計算設計。

按照官網的介紹,apache systemml基于apache spark架構運作,其最大的特點就是能夠自動、逐行地評估資料,并根據評估結果确定使用者的代碼應該直接運作在驅動器上還是運作在apache spark叢集上。

除了apache spark之外,systemml還支援apache hadoop、jupyter和apache zeppelin等多個平台。目前,systemml技術已經成功應用在交通、航空和金融等多個領域。

開發者必備:基于Linux生态的十大AI開源架構盤點

nupic是一個與衆不同的開源機器智能平台,它基于一種大腦皮層理論,即“層級實時存儲算法”(heirarchical

temporary

memory,htm)。nupic聚焦于分析實時資料流,可以通過學習資料之間基于時間的狀态變化,對未知資料進行預測,并揭示其中的非正常特性。

nupic關鍵的功能特性包括:

1) 持續的線上學習:nupic模型可以持續根據快速變化的資料流進行實時調整; 2) 時間和空間分析:像人腦一樣,nupic可以同時模拟時間和空間的變化; 3) 實時的資料流分析:智能化的資料分析不會随着資料量的增加而改變; 4) 預測和模組化:通過通用性的大腦皮層算法,對資料進行預測、模組化和學習; 5) 強大的異常檢測能力:實時檢測資料流的擾動,不依靠僵化的門檻值設定和過時的算法; 6) 層級實時存儲算法:支援全新的htm計算架構。

由于2016僅僅是人工智能走向主流的元年,未來随着技術的進一步發展和革新,勢必會出現更多、更豐富的開發工具。這裡值得注意的一點是:工具的意義不僅在于解決了日常研發中遇到的各種問題,更在于降低了開發的難度,引導了更多人投入到人工智能的研發之中。雷鋒網(公衆号:雷鋒網)

相關閱讀:

<a href="http://www.leiphone.com/news/201701/ivnsxpiukf8uatmy.html" target="_blank">bat 在下一盤大棋?深度盤點國内四大機器學習開源平台</a>

<a href="http://www.leiphone.com/news/201701/lutmxs35u8znf7p6.html" target="_blank">盤點四大民間機器學習開源架構:theano、caffe、torch 和 scikit-learn</a>

<a href="http://www.leiphone.com/news/201612/rfvygnqf4wjogjqr.html" target="_blank">谷歌、微軟、openai 等巨頭的七大機器學習開源項目 看這篇就夠了</a>

本文作者:恒亮