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