開發者必備:基于Linux生態的十大AI開源框架盤點,前不久,曾盤點了一系列機器學習相關的開源平臺,包括谷歌的 TensorFlow、微軟的 CNTK 以及百度的 PaddlePaddle 等等(詳情見文末“相關閱讀”)。這些平臺各具特點,其中某些已經在業內得到了廣泛認可和應用。
與此前不同,本文將從開發者的角度出發,特別是針對開發者中為數眾多的 Linux 系統和 Mac 系統用戶,奉上一篇針對泛 Linux 生態的頂級人工智能開源工具盤點(當然,有些工具也并非只兼容 Linux)。
1. Deeplearning4j:為 Java 用戶量身定制
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 運算支持,以及微軟服務器框架的支持。
官網:http://deeplearning4j.org/
2. Caffe:廣受歡迎的深度學習框架
Caffe 的全稱是 “Convolution Architecture For Feature Extraction”,意為“用于特征提取的卷積架構”,主要開發者來自伯克利大學的視覺與學習中心(Berkeley Vision and Learning Center,BVLC),基于 BSD 2-Clause 開源許可協議發布。
Caffe 是業內著名的深度學習框架,根據官網介紹,其主要特點是:運算速度快(官方顯示在單片 NVIDIA K40 GPU 的運算能力下,Caffe 每天可以處理超過 60M 的圖片數據),模塊定制方便(在 CPU 或 GPU 之間的轉換只需要簡單修改一下參數設定),擴展能力強大(目前有超過一千名開發者基于 Caffe 開發了分支版本),以及豐富的社區支持(Caffe 已經被授權給各種研究機構、初創公司和工業集團),因此特別適合于神經網絡建模和圖像處理任務。
官網:http://caffe.berkeleyvision.org/
3. H2O:企業級機器學習框架
H2O(即水的化學式)是一個開源、快速、可擴展的分布式機器學習框架,同時提供了大量的算法實現。它支持深度學習、梯度推進(Gradient Boosting)、隨機森林(Random Forest)、廣義線性模型(即邏輯回歸,彈性網絡)等各種機器學習算法。
H2O 框架的核心代碼由 Java 編寫,數據和模型通過分布式的 key/value 存儲在各個集群節點的內存中,算法使用 Map/Reduce 框架實現,并使用了 Java 中的 Fork/Join 機制來實現多線程。
H2O 是一個更關注企業用戶的人工智能分析工具,它聚焦于為掌握大量數據的企業用戶提供快速精準的預測分析模型,從海量數據中提取有助于商業決策的信息。
根據 H2O 官方的數據,目前已經有超過 7 萬名數據科學家和 8 萬家組織機構成為了 H2O 平臺的忠實擁躉。
官網:http://www.h2o.ai/
4. MLlib:基于 Spark 框架的機器學習算法實現庫
MLlib 是 Apache 開源項目 Spark 針對一些常用的機器學習算法的實現庫,同時也包括了相關的測試程序和數據生成器。
按照官網的描述,MLlib 的主要特點是易用(天生兼容 Spark 框架的 API 接口和 Python、Java、Scala 等多種語言)、高性能(依靠 Spark 的數據管理能力,運行迭代和邏輯回歸算法時比 Hadoop 框架快 100 倍)和易于部署(可以直接在現有的 Hadoop 數據集群上運行)。
MLlib 目前支持分類、回歸、推薦、聚類、生存分析等多種機器學習算法。
官網:https://spark.apache.org/mllib/
5. Apache Mahout:Hadoop 廣泛采用的機器學習開源框架
Apache Mahout 同樣也是一個 Apache 開源項目,與 MLlib 相對應,Mahout 是應用在 Hadoop 平臺下的機器學習開源框架。
Mahout 有如下三個主要特點:
1) 提供簡單、可擴展的編程環境和框架;
2) 同時為 Scala + Apache Spark、H2O 以及 Apache Flik 平臺提供打包好的算法實現;
3) 支持R語言的語法規則進行矩陣計算。
官網:http://mahout.apache.org/
6. OpenNN:專注神經網絡的實現庫
OpenNN 的全稱為“Open Neural Networks Library”,即開源神經網絡庫,其核心代碼由 C++ 編寫,從名字就可以看出,其主要面向深度學習領域,助力于用戶構建各種不同的神經網絡模型。
據官方描述,OpenNN 可用于實現監督學習場景中任何層次的非線性模型,同時還支持各種具有通用近似屬性的神經網絡設計。
除了模型的多層支持外,OpenNN 最主要優勢還在于強大的性能表現。具體來說就是,OpenNN 能夠通過 C++ 語言實現的核心代碼高效地調節內容使用,通過 OpenMP 庫很好地平衡多線程 CPU 調用,以及通過 CUDA 工具對 GPU 進行加速。
官網:http://www.opennn.net/
7. Oryx 2:重新設計了 Lambda 架構
Oryx 2 是 Oryx 項目的 2.0 版,前身名為 Myrrix,后來被大數據公司 Cloudera 收購,才改名為 Oryx。
Oryx 2.0 關注于大規模機器學習/預測分析基礎框架的實時表現,它基于 Apache Spark 和 Apache Kafka 框架開發,并重新設計了 Lambda 架構,使得層次之間的復用性更強。
2. 0 版相比之前實現了更多算法,包括 ALS 協同過濾、隨機森林、以及K-means++等。
官網:http://oryx.io/
8. OpenCyc:全球最龐大、最完備的通用型知識庫與常識推理引擎
OpenCyc 是 Cycorp 公司推出的一個基于 Cyc 的開源版本,而 Cyc 是目前全球最龐大、最完備的通用型知識庫與常識推理引擎。
OpenCyc 包含數十萬個精心組織的 Cyc 詞條。Cycorp 公司不但免費提供 OpenCyc,同時也鼓勵開發者基于 OpenCyc 開發針對于特定應用領域的分支版本。
目前,OpenCyc 已經被成功應用在大數據建模、語言數據整合、智能文本理解、特定領域的專家系統建模和人工智能游戲。
官網:http://www.cyc.com/platform/opencyc/
9. Apache SystemML:專注于大數據分析的開源機器學習平臺
SystemML 是一個利用機器學習算法進行大數據分析的開源 AI 平臺,其主要特點是支持R語言和 Python 的語法,專注于大數據分析領域,以及專門為高階數學計算設計。
按照官網的介紹,Apache SystemML 基于 Apache Spark 框架運行,其最大的特點就是能夠自動、逐行地評估數據,并根據評估結果確定用戶的代碼應該直接運行在驅動器上還是運行在 Apache Spark 集群上。
除了 Apache Spark 之外,SystemML 還支持 Apache Hadoop、Jupyter 和 Apache Zeppelin 等多個平臺。目前,SystemML 技術已經成功應用在交通、航空和金融等多個領域。
官網:http://systemml.apache.org/
10. NuPIC:基于層級實時存儲算法的機器智能平臺
NuPIC 是一個與眾不同的開源機器智能平臺,它基于一種大腦皮層理論,即“層級實時存儲算法”(Heirarchical Temporary Memory,HTM)。NuPIC 聚焦于分析實時數據流,可以通過學習數據之間基于時間的狀態變化,對未知數據進行預測,并揭示其中的非常規特性。
NuPIC 關鍵的功能特性包括:
1) 持續的在線學習:NuPIC 模型可以持續根據快速變化的數據流進行實時調整;
2) 時間和空間分析:像人腦一樣,NuPIC 可以同時模擬時間和空間的變化;
3) 實時的數據流分析:智能化的數據分析不會隨著數據量的增加而改變;
4) 預測和建模:通過通用性的大腦皮層算法,對數據進行預測、建模和學習;
5) 強大的異常檢測能力:實時檢測數據流的擾動,不依靠僵化的閾值設置和過時的算法;
6) 層級實時存儲算法:支持全新的 HTM 計算架構。
官網:http://numenta.org/
由于 2016 僅僅是人工智能走向主流的元年,未來隨著技術的進一步發展和革新,勢必會出現更多、更豐富的開發工具。這里值得注意的一點是:工具的意義不僅在于解決了日常研發中遇到的各種問題,更在于降低了開發的難度,引導了更多人投入到人工智能的研發之中。
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/xinwen/20170113/87079.html
文章列表