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