谷歌、微软、OpenAI等巨头七大机器学习开源项目 看这篇就够了
在人工智能行業(yè),2015-2016 出現(xiàn)了一個不同尋常的趨勢:許多重量級機器學習項目紛紛走向開源,與全世界的開發(fā)者共享。加入這開源大潮的,不僅有學界師生,更有國內(nèi)外的互聯(lián)網(wǎng)巨頭們:國內(nèi)有百度和騰訊,國外的有谷歌、微軟、IBM、Facebook、OpenAI 等等。本文總結(jié)了國外各家互聯(lián)網(wǎng)巨頭的七大開源機器學習項目:
| Google:TensorFlow
TensorFlow 發(fā)布于 2015 年 11 月,是谷歌基于 DistBelief 研發(fā)的第二代機器學習系統(tǒng)。它是一個能處理多種語言理解和認知任務(wù)的開源軟件庫。它最初由谷歌大腦(Google Brain)的研究人員開發(fā)出來,用于機器學習和深度神經(jīng)網(wǎng)絡(luò)方面的研究。但它的通用性使其也可廣泛用于其他計算領(lǐng)域。在谷歌,TensorFlow 已用來支持 Gmail、谷歌相冊、語音識別、搜索等旗下多款商業(yè)化應(yīng)用。許多開發(fā)者把它看作是 Theano 的替代品:這兩者都采用了計算圖( computational graph)。
現(xiàn)在, TensorFlow 發(fā)布已超過一周年,它已成為 GitHub 上最受歡迎的機器學習開源項目。并且,谷歌已為它加入了官方 Windows 支持。
優(yōu)點:
- 谷歌表示,TensorFlow 的優(yōu)點在于:通用,靈活,可移動,容易上手并且完全開源。對于部分任務(wù),它的運行速度能達到上代 DistBelief 的兩倍。
- TensorFlow 不僅僅是深度學習工具,它還支持強化學習以及其他算法。
- 它既可用來做研究,又適用于產(chǎn)品開發(fā)。
- 但 TensorFlow 最大的優(yōu)點,應(yīng)該是用的人多——它是 AI 開發(fā)者社區(qū)參與度和普及程度最高的開源項目之一。Cambrio 的 CEO Daniel Kuster 表示:“寫出能讓機器編譯、執(zhí)行的代碼或許不難,但讓同行們接受就十分不容易了。越多人用,越多的人分擔(難題)。”
缺點:
計算資源分配機制使系統(tǒng)更復雜:為使用戶精確控制 GPU 節(jié)點的使用情況,TensorFlow 犧牲了簡潔。另外,啟動時它會試圖占用全部的可用顯存。
評價:
微軟機器學習研究員彭河森表示, TensorFlow 是非常優(yōu)秀的跨界平臺:它吸取了已有平臺的長處,既能讓用戶觸碰底層數(shù)據(jù),又具有現(xiàn)成的神經(jīng)網(wǎng)絡(luò)模塊,可以讓用戶非常快速的實現(xiàn)建模。
| Google:DeepMind Lab
這家精通 AI 訓練的公司,以在圍棋上五局四勝擊敗李世石的 ALphaGo 揚名于世。這成為 2016 年的 AI 里程碑事件。被谷歌收購后,更使后者的江湖地位得到鞏固。
本月初,DeepMind 宣布把 AI 訓練平臺 Labyrinth 開源,并改名為 DeepMind Lab。
沒錯,這就是之前的那個“迷宮游戲”:
它是針對基于代理的 AI 研究而開發(fā)的 3D 訓練平臺。DeepMind 表示,它為學習代理提供了一系列頗具挑戰(zhàn)的三維探索和解謎任務(wù)。該項目旨在為 AI 研究、尤其是深度強化學習提供試驗田。
所有場景使用科幻劇風格進行渲染。它采用了第一人稱視察方式:通過代理的視角。代理的軀體是一個漂浮的圓球,通過啟動背后的推進器前進。“游戲”中,代理可以在 3D 空間中移動,轉(zhuǎn)動“頭部”觀察周圍環(huán)境。
DeepMind Lab 具有高度可定制、可擴展性。新的等級可以通過現(xiàn)成的編輯工具制作。另外,DeepMind Lab 包括了綱領(lǐng)性等級創(chuàng)建的交互界面。不同等級可以從多方面來定制:游戲邏輯、撿落物品、旁觀、等級重啟,獎勵機制,游戲內(nèi)信息等等。
DeepMind 聯(lián)合創(chuàng)始人 Shane Legg 表示,DeepMind Lab 比其他的 AI 訓練環(huán)境要出色,因為其游戲環(huán)境非常復雜。此前,通過改良傳統(tǒng)深度增強學習方法,Deepmind 使代理以高于 A3C(DeepMind 另一個現(xiàn)役代理) 十倍的速度學習,并平均在每個迷宮層達到人類專家水平的 87% 。
DeepMind Lab 的源代碼公布于 GitHub,它目前需要依賴于外部軟件庫。由于發(fā)布時間尚短,開發(fā)者社區(qū)對于 DeepMind Lab 的反饋很少。
| OpenAI:Universe
本月,正是這家馬斯克投資的初創(chuàng)公司一周歲生日。在月初的 NIPS 大會上,它宣布對旗下 AI 訓練平臺 “Universe”(宇宙)開源。這是一個與 DeepMind Lab 十分類似的平臺,兩者宣布開源的時間點也十分接近,這引發(fā)了公眾對兩者間競爭關(guān)系的猜想。
與 DeepMind Lab 相似,Universe 的目標也是給開發(fā)者們訓練、測試 AI 代理提供平臺。但對于它們之間的不同點,官方給出了解釋:
- Universe 是一個在全世界的游戲、網(wǎng)頁和其他應(yīng)用中,評估、訓練智能代理的軟件平臺。
- 代理使用了和人類一樣地感官輸入和控制方式:看到的是像素,控制的是鼠標鍵盤。這使得任何需要電腦來完成的任務(wù),都可以訓練 AI 去做,并且與人類玩家較量。
這十分有野心。對于第一點,OpenAI 給出了進一步說明:Universe 包含上千種不同訓練環(huán)境,包括 Flash 游戲,網(wǎng)頁任務(wù),蛇蛇大作戰(zhàn)和俠盜獵車手5 這樣的游戲。開發(fā)團隊在博客中說:“我們的目標是開發(fā)出一個單個 AI 代理,能靈活地把它過去的經(jīng)驗應(yīng)用于 Universe 場景中,來迅速掌握陌生、困難的環(huán)境。這會是走向通用智能的關(guān)鍵一步。”
OpenAI 認為深度學習系統(tǒng)過于專業(yè)化:“AlphaGo 能在圍棋上輕松贏你,但是你無法教會它其他棋牌游戲,然后讓它跟你玩。”于是,Universe 使得 AI 能夠處理多種類型的任務(wù),讓它發(fā)展出“關(guān)于世界的知識和解決問題的戰(zhàn)術(shù),并能有效應(yīng)用于新任務(wù)。”
而OpenAI 已經(jīng)拿到了 EA,微軟工作室,Valve 和其他公司的許可,以使用銀河飛將3,傳送門和環(huán)世界 (Rimworld) 等游戲。OpenAI 還在積極聯(lián)系其他公司、開發(fā)者和用戶,尋找更多游戲的許可,用不同 Universe 任務(wù)訓練代理,并把新游戲整合入系統(tǒng)。
對于為什么 OpenAI 和 DeepMind 會一前一后選擇開源,外媒 Engadget 認為,目前 AI 已經(jīng)發(fā)展到新階段——需要更多的學習數(shù)據(jù),所以通常情況下“較封閉”的科技公司會選擇對外合作。當然,2015-2016 的這波開源大潮中,AI 行業(yè)各成員展示出的與公眾分享研究成果的精神,也值得肯定。
| Facebook:FastText
與上面兩者不同,今年八月 Facebook 推出的 FastText 是一個文本分析工具,旨在為“文本表示和分類”創(chuàng)建可擴展的解決方案。它專為超大型數(shù)據(jù)庫的文本處理而設(shè)計,而該領(lǐng)域的另一個主要解決方案——深度神經(jīng)網(wǎng)絡(luò),處理海量數(shù)據(jù)時容易出現(xiàn)許多問題。Facebook AI 研究部門 “FAIR” 指出,深度神經(jīng)網(wǎng)絡(luò)通常訓練、測試起來速度很慢。
FastText 能夠在幾秒鐘、或是幾分鐘之內(nèi)完成大型數(shù)據(jù)庫的訓練。而基于深度學習的方法可能會花費幾小時甚至幾天。 FastText 已經(jīng)能夠用于垃圾郵件過濾器等重要應(yīng)用,但是,在將來它還可能為 Siri 和 Google Now 這樣的 AI 提供幫助,使它們更快地處理自然語言。
Facebook 宣稱,這項新技術(shù)“對于超過 10 億個詞匯的訓練不超過十分鐘”,而這只需要“普通”的多核 CPU。另外,它還能在五分鐘內(nèi)對 30 萬個目錄下的 50 萬個句子進行分類。
| Microsoft:CNTK
CNTK 的全稱是 Computational Network Toolkit,意為“計算網(wǎng)絡(luò)工具箱”,它是一個讓開發(fā)者們把分布式深度學習應(yīng)用于他們各自項目的工具。微軟在今年一月將它對外發(fā)布,在十月份又進行了重大升級,使其有更快的速度和更好的擴展性。
微軟表示,CNTK 是一個“統(tǒng)一的深度學習工具箱,它把神經(jīng)網(wǎng)絡(luò)描述為通過有向圖進行的(directed graph)一系列計算步驟”。對于部分業(yè)內(nèi)人士,它是其他深度學習框架、資料庫和工具箱(例如TensorFlow, Theano 和 Torch)的替代物。但其實,CNTK 最開始的用途是語音識別。雖然現(xiàn)在它已成為通用的、獨立于平臺的深度學習系統(tǒng),但相比通用深度學習社區(qū),它在語音識別社區(qū)的知名度更高。
CNTK 支持對常用深度神經(jīng)網(wǎng)絡(luò)架構(gòu)的結(jié)構(gòu)性執(zhí)行,比如卷積神經(jīng)網(wǎng)絡(luò) (CNNs),循環(huán)神經(jīng)網(wǎng)絡(luò) (RNNs )和長短期記憶網(wǎng)絡(luò) (LSTMs)。因此,它應(yīng)用了隨機梯度下降 (SGD) 、反向傳播(SGD)和自動區(qū)分(auto differentiation)。CNTK 的一大優(yōu)點是:它支持多個計算設(shè)備以及多個 GPU 的計算。相比之下, TensorFlow 最近才開始加入對橫跨不同計算設(shè)備的運算支持。
在內(nèi)部測試中微軟首席語音科學家黃學東表示,在開發(fā)者們?yōu)檎Z音、圖像識別任務(wù)創(chuàng)建深度學習模型方面, CNTK 被證明比其他四種主流工具箱都要快。他說:
“與任何已知的方法相比,CNTK 難以置信得快。”
CNTK、Theano、TensorFlow、Torch 7、Caffe 之間的 GPU 運算速度對比。豎軸是幀/每秒,藍色柱代表單個 GPU,橙柱代表一組四個 GPU,綠柱代表兩組四個 GPU。測試時,其他工具箱尚不支持多計算設(shè)備,Theano 不支持多 GPU。
以下是微軟官方宣傳中 CNTK 的三大優(yōu)點:
- 速度和擴展性
CNTK 訓練和評估深度學習算法比其他工具箱都要快,在一系列情況下的可擴展性都非常好——不管是一個 CPU、多個 GPU、還是多個計算機,與此同時保持效率。
- 商用級別的質(zhì)量
CNTK 的復雜算法使它能在海量數(shù)據(jù)庫中穩(wěn)定運行。Skype、微軟小冰、必應(yīng)搜索、Xbox 和業(yè)內(nèi)頂級的數(shù)據(jù)科學家已經(jīng)在使用 CNTK 來開發(fā)商用 AI。
- 兼容性
CNTK 提供了最有表達力、最容易使用的架構(gòu)。它允許你使用所有內(nèi)置訓練算法,或者使用你自己的。
| Amazon:MXNet
MXNet 誕生于學界,并不是亞馬遜開發(fā)的開源平臺,但已成為它的御用系統(tǒng)。
它是一個多語言的機器學習資料庫,旨在降低開發(fā)機器學習算法的門檻,尤其是對于深度神經(jīng)網(wǎng)絡(luò)而言。它支持卷積神經(jīng)網(wǎng)絡(luò)(CNN)以及 LSTMs( long short-term memory networks)。它通過把符號式編程(symbolic programming)和命令式編程(imperative programming)組合起來,以最大化效率和生產(chǎn)力。它的核心是一個 dependency scheduler,能同時進行符號式和命令式任務(wù)。這之上的圖優(yōu)化層(graph optimization layer)使得符號式程序執(zhí)行快速、高效。MXNet 具有輕便和可移動的特點,在設(shè)計之初就考慮到了對多 GPU 、多個計算機以及不同計算平臺的支持。從移動設(shè)備到分布式 GPU 集群,都可用于 MXNet。
國內(nèi)的圖森互聯(lián)和地平臺機器人是 MXNet 的使用者之一。但真正使它聲名大噪的,是 11 月亞馬遜宣布把 MXNet 選其為官方深度學習平臺,用于亞馬遜網(wǎng)路服務(wù)系統(tǒng) AWS,并將在未來成為 MXNet 的主要貢獻者。亞馬遜表示,選擇 MXNet 有以下三點原因:
MXNet 創(chuàng)始者之一的解浚源表示:“MXNet的速度,節(jié)省內(nèi)存,接口靈活性,和分布式效率都是可圈可點。”
| IBM:SystemML
SystemML 始于 2010 年,它的技術(shù)來自于 IBM 開發(fā) Watson 的過程,最初是 IBM 為 BigInsights 數(shù)據(jù)分析平臺而開發(fā)。2015 年,IBM 把它捐贈給 Apache Spark 開源社區(qū),從此 SystemML 又被稱為 Apache SystemML。它與 Apache 的另一個項目“Spark” 有著高度的整合。
SystemML 為使用大數(shù)據(jù)的機器學習提供了一個理想的環(huán)境。它可運行于 Apache Spark 之上,自動給一行行的數(shù)據(jù)標量(scale data),來決定你的代碼是否運行在驅(qū)動或是 Apache Spark 集群之上。
SystemML 是一個機器學習算法的解碼器,幫助開發(fā)者創(chuàng)建用于不同工業(yè)領(lǐng)域預測分析的機器學習模型。開源版本的 SystemML,即 Apache SystemML,旨在幫助數(shù)據(jù)科學家把算法轉(zhuǎn)化到生產(chǎn)環(huán)境,而不需要重新編寫底層代碼。因次,IBM 號稱能把數(shù)據(jù)分析從筆記本電腦擴展到大數(shù)據(jù)中心。
IBM Analytics 副主席 Rob Thomas 表示:“這使專業(yè)領(lǐng)域或?qū)iT行業(yè)的機器學習成為可能,給開發(fā)者帶來一系列的幫助,從底層代碼到定制應(yīng)用。”
它有兩個優(yōu)點:
總結(jié)
以上是生活随笔為你收集整理的谷歌、微软、OpenAI等巨头七大机器学习开源项目 看这篇就够了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能写作
- 下一篇: 白雪 | NLP加持知识图谱在金融事件挖