人工智慧是科技研究中最熱門的方向之一。像 IBM、谷歌、微軟、Facebook 和亞馬遜等公司都在研發上投入大量的資金、或者收購那些在機器學習、神經網路、自然語言和影像處理等領域取得了進展的初創公司。考慮到人們對此感興趣的程度,我們將不會驚訝於史丹佛的專家在人工智慧報告中得出的結論:“越來越強大的人工智慧應用,可能會對我們的社會和經濟產生深遠的積極影響,這將出現在從現在到 2030 年的時間段裡。”
在最近的一篇文章中,我們概述了 45 個十分有趣或有前途的人工智慧專案。在本文中,我們將聚焦於開源的人工智慧工具,詳細的瞭解下最著名的 15 個開源人工智慧專案。
以下這些開源人工智慧應用都處於人工智慧研究的最前沿。
1. Caffe
它是由賈揚清在加州大學伯克利分校的讀博時創造的,Caffe 是一個基於表達體系結構和可擴充套件程式碼的深度學習框架。使它聲名鵲起的是它的速度,這讓它受到研究人員和企業使用者的歡迎。根據其網站所言,它可以在一天之內只用一個 NVIDIA K40 GPU 處理 6000 萬多個影像。它是由伯克利視野和學習中心(BVLC)管理的,並且由 NVIDIA 和亞馬遜等公司資助來支援它的發展。
2. CNTK
它是計算網路工具包的縮寫,CNTK 是一個微軟的開源人工智慧工具。不論是在單個 CPU、單個 GPU、多個 GPU 或是擁有多個 GPU 的多臺機器上它都有優異的表現。微軟主要用它做語音識別的研究,但是它在機器翻譯、影像識別、影像字幕、文字處理、語言理解和語言建模方面都有著良好的應用。
3. Deeplearning4j
Deeplearning4j 是一個 java 虛擬機器(JVM)的開源深度學習庫。它執行在分散式環境並且整合在 Hadoop 和 Apache Spark 中。這使它可以配置深度神經網路,並且它與 Java、Scala 和 其他 JVM 語言相容。
這個專案是由一個叫做 Skymind 的商業公司管理的,它為這個專案提供支援、培訓和一個企業的發行版。
4. DMTK
DMTK 是分散式機器學習工具的縮寫,和 CNTK 一樣,是微軟的開源人工智慧工具。作為設計用於大資料的應用程式,它的目標是更快的訓練人工智慧系統。它包括三個主要元件:DMTK 框架、LightLDA 主題模型演算法和分散式(多義)字嵌入演算法。為了證明它的速度,微軟聲稱在一個八叢集的機器上,它能夠“用 100 萬個主題和 1000 萬個單詞的詞彙表(總共 10 萬億引數)訓練一個主題模型,在一個文件中收集 1000 億個符號,”。這一成績是別的工具無法比擬的。
5. H20
相比起科研,H2O 更注重將 AI 服務於企業使用者,因此 H2O 有著大量的公司客戶,比如第一資本金融公司、思科、Nielsen Catalina、PayPal 和泛美都是它的使用者。它聲稱任何人都可以利用機器學習和預測分析的力量來解決業務難題。它可以用於預測建模、風險和欺詐分析、保險分析、廣告技術、醫療保健和客戶情報。
它有兩種開源版本:標準版 H2O 和 Sparking Water 版,它被整合在 Apache Spark 中。也有付費的企業使用者支援。
6. Mahout
它是 Apache 基金會專案,Mahout 是一個開源機器學習框架。根據它的網站所言,它有著三個主要的特性:一個構建可擴充套件演算法的程式設計環境、像 Spark 和 H2O 一樣的預製演算法工具和一個叫 Samsara 的向量數學實驗環境。使用 Mahout 的公司有 Adobe、埃森哲諮詢公司、Foursquare、英特爾、領英、Twitter、雅虎和其他許多公司。其網站列了出第三方的專業支援。
7. MLlib
由於其速度,Apache Spark 成為一個最流行的大資料處理工具。MLlib 是 Spark 的可擴充套件機器學習庫。它整合了 Hadoop 並可以與 NumPy 和 R 進行互動操作。它包括了許多機器學習演算法如分類、迴歸、決策樹、推薦、叢集、主題建模、功能轉換、模型評價、ML 管道架構、ML 持久、生存分析、頻繁項集和序列模式挖掘、分散式線性代數和統計。
8. NuPIC
由 Numenta 公司管理的 NuPIC 是一個基於分層暫時記憶理論的開源人工智慧專案。從本質上講,HTM 試圖建立一個計算機系統來模仿人類大腦皮層。他們的目標是創造一個 “在許多認知任務上接近或者超越人類認知能力” 的機器。
除了開源許可,Numenta 還提供 NuPic 的商業許可協議,並且它還提供技術專利的許可證。
9. OpenNN
作為一個為開發者和科研人員設計的具有高階理解力的人工智慧,OpenNN 是一個實現神經網路演算法的 c++ 程式設計庫。它的關鍵特性包括深度的架構和快速的效能。其網站上可以查到豐富的文件,包括一個解釋了神經網路的基本知識的入門教程。OpenNN 的付費支援由一家從事預測分析的西班牙公司 Artelnics 提供。
10. OpenCyc
由 Cycorp 公司開發的 OpenCyc 提供了對 Cyc 知識庫的訪問和常識推理引擎。它擁有超過 239,000 個條目,大約 2,093,000 個三元組和大約 69,000 owl:這是一種類似於連結到外部語義庫的名稱空間。它在富領域模型、語義資料整合、文字理解、特殊領域的專家系統和遊戲 AI 中有著良好的應用。該公司還提供另外兩個版本的 Cyc:一個可免費的用於科研但是不開源,和一個提供給企業的但是需要付費。
11. Oryx 2
構建在 Apache Spark 和 Kafka 之上的 Oryx 2 是一個專門針對大規模機器學習的應用程式開發框架。它採用一個獨特的三層 λ 架構。開發者可以使用 Orys 2 建立新的應用程式,另外它還擁有一些預先構建的應用程式可以用於常見的大資料任務比如協同過濾、分類、迴歸和聚類。大資料工具供應商 Cloudera 創造了最初的 Oryx 1 專案並且一直積極參與持續發展。
12. PredictionIO
今年的二月,Salesforce 收購了 PredictionIO,接著在七月,它將該平臺和商標貢獻給 Apache 基金會,Apache 基金會將其列為孵育計劃。所以當 Salesforce 利用 PredictionIO 技術來提升它的機器學習能力時,成效將會同步出現在開源版本中。它可以幫助使用者建立帶有機器學習功能的預測引擎,這可用於部署能夠實時動態查詢的 Web 服務。
13. SystemML
最初由 IBM 開發, SystemML 現在是一個 Apache 大資料專案。它提供了一個高度可伸縮的平臺,可以實現高等數學運算,並且它的演算法用 R 或一種類似 python 的語法寫成。企業已經在使用它來跟蹤汽車維修客戶服務、規劃機場交通和連線社會媒體資料與銀行客戶。它可以在 Spark 或 Hadoop 上執行。
14. TensorFlow
TensorFlow 是一個谷歌的開源人工智慧工具。它提供了一個使用資料流圖進行數值計算的庫。它可以執行在多種不同的有著單或多 CPU 和 GPU 的系統,甚至可以在移動裝置上執行。它擁有深厚的靈活性、真正的可移植性、自動微分功能,並且支援 Python 和 c++。它的網站擁有十分詳細的教程列表來幫助開發者和研究人員沉浸於使用或擴充套件他的功能。
15. Torch
Torch 將自己描述為:“一個優先使用 GPU 的擁有機器學習演算法廣泛支援的科學計算框架”,它的特點是靈活性和速度。此外,它可以很容易的通過軟體包用於機器學習、計算機視覺、訊號處理、並行處理、影像、視訊、音訊和網路等方面。它依賴一個叫做 LuaJIT 的指令碼語言,而 LuaJIT 是基於 Lua 的。