Facebook研究開放三個(gè)新框架,讓深度學(xué)習(xí)更容易
你知道嗎?微軟、谷歌、Facebook、亞馬遜、Uber等科技巨頭的研究部門已經(jīng)成為人工智能(AI)領(lǐng)域開源框架最活躍的貢獻(xiàn)者之一。
他們的貢獻(xiàn)結(jié)合了已在內(nèi)部解決方案中進(jìn)行了大規(guī)模測試的堆棧,以及來自他們的研究實(shí)驗(yàn)室的一些非常先進(jìn)的思想。雖然世界上最大的技術(shù)公司能積極為開源深度學(xué)習(xí)做出貢獻(xiàn)是令人興奮的,但這讓數(shù)據(jù)科學(xué)家很難跟上該領(lǐng)域的新發(fā)展。今天,本文要講一講上個(gè)月Facebook人工智能研究(FAIR)開源的三個(gè)新版本。

快速增長的趨勢下,這會(huì)產(chǎn)生什么影響?
FAIR一直是深度學(xué)習(xí)領(lǐng)域研究和開源框架的定期貢獻(xiàn)者。從PyTorch到ONNX, FAIR團(tuán)隊(duì)為實(shí)現(xiàn)深度學(xué)習(xí)應(yīng)用程序的簡化做出了不可思議的貢獻(xiàn)。在過去幾周里,F(xiàn)AIR增加了三個(gè)新的系列開源框架。
Polygames
Polygames是一個(gè)開源的研究框架,通過自我游戲的方式來訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)。Polygames基于著名的“零學(xué)習(xí)”概念,即允許代理無需進(jìn)行任何預(yù)先設(shè)定的訓(xùn)練,而是通過與環(huán)境交互來掌握環(huán)境。
乍看之下,Polygames似乎與Alpha Zero或ELF OpenGo等其他游戲?qū)W習(xí)框架類似,但FAIR堆棧也有自己的貢獻(xiàn)。對(duì)于初學(xué)者來說,Polygames支持更廣泛的戰(zhàn)略游戲列表,如Hex、Havannah、Minishogi、Connect6、Minesweeper、Mastermind、EinStein wurfelt nicht!、Nogo和Othello。他們?yōu)檠芯咳藛T提供了更廣泛的環(huán)境來測試深度學(xué)習(xí)網(wǎng)絡(luò)。
此外,Polygames還以一個(gè)巧妙的架構(gòu)擴(kuò)展了傳統(tǒng)的零學(xué)習(xí)概念,該架構(gòu)結(jié)合了深度神經(jīng)網(wǎng)絡(luò)和蒙特卡羅樹搜索方法。這種架構(gòu)允許網(wǎng)絡(luò)泛化到更多的任務(wù)和環(huán)境。Polygames框架的一個(gè)意想不到的好處是代理中神經(jīng)可塑性的創(chuàng)建。Polygames的模型是漸進(jìn)式的——框架帶有一個(gè)用于添加新層和通道或增加內(nèi)核寬度的腳本——它們能夠進(jìn)行熱啟動(dòng)訓(xùn)練,允許神經(jīng)網(wǎng)絡(luò)隨訓(xùn)練成長。
從編程模型的角度來看,Polygames提供了一個(gè)包含游戲的庫,以及一個(gè)實(shí)現(xiàn)游戲的單文件API。開發(fā)人員的經(jīng)驗(yàn)是基于PyTorch的,因此易于上手。
FAIR團(tuán)隊(duì)在Polygames上取得了一些里程碑式的成績,包括在Hex19游戲中擊敗人類優(yōu)秀玩家。該游戲由詩人、數(shù)學(xué)家皮特·海因(Piet Hein)、 約翰·納什(John Nash)和經(jīng)濟(jì)學(xué)家于20世紀(jì)40年代開發(fā),它挑戰(zhàn)了一些傳統(tǒng)的人類游戲思維過程。規(guī)則很簡單。黑色和白色依次填充一個(gè)空單元格。如果把北方和南方連接起來,黑人就贏了;如果把西方和東方連接起來,白人就贏了。餡餅規(guī)則使游戲更加公平:在第二次移動(dòng)時(shí),第二個(gè)玩家可以決定交換顏色。
這款游戲之所以困難,是因?yàn)樽鳛橐豢钸B接游戲,它的獎(jiǎng)勵(lì)是基于全局而非局部的標(biāo)準(zhǔn)。
在一系列的實(shí)驗(yàn)中,Polygames在Hex游戲中擊敗了人類中的優(yōu)秀玩家。結(jié)果如下圖所示,在圖中,人類玩家操縱白色棋子。第一個(gè)圖像表示Hex的開局。在游戲的第二階段,人類(白色)似乎贏了——兩個(gè)堅(jiān)實(shí)的組分別連接到東和西,并互相互靠近連接。然而,Polygames能夠扭轉(zhuǎn)這種局面,創(chuàng)造了一個(gè)相當(dāng)復(fù)雜的中心位置。隨著Polygames使用兩個(gè)可能的路徑之一,它找到了一個(gè)成功的組合并展開了這個(gè)位置。

Polygames已經(jīng)在GitHub上開源了
PyTorch3D
PyTorch3D是一個(gè)用于在3D環(huán)境中訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)的框架。盡管有大量的視覺智能系統(tǒng)需要在現(xiàn)實(shí)環(huán)境中運(yùn)行,但在3D環(huán)境中訓(xùn)練這類智能體的工具和框架仍然受到高度限制。PyTorch3D是一個(gè)高度模塊化和優(yōu)化的庫,具有獨(dú)特的功能,旨在讓使用PyTorch的3D深度學(xué)習(xí)更容易。PyTorch3D為快速可微的3D數(shù)據(jù)提供了一組常用的3D操作符和損失函數(shù),以及一個(gè)模塊化可微繪制API,使研究人員能夠立即將這些函數(shù)導(dǎo)入當(dāng)前比較先進(jìn)的深度學(xué)習(xí)系統(tǒng)。
PyTorch3D利用了最近在3D深度學(xué)習(xí)方面的幾個(gè)比較新的里程碑,如FAIR的MeshR-CNN,它實(shí)現(xiàn)了復(fù)雜室內(nèi)空間圖像的完整3D對(duì)象重建。該框架還使用Detectron2,這是一個(gè)高度優(yōu)化的2D識(shí)別庫,可以成功將對(duì)象理解推向第三維。PyTorch3D處理旋轉(zhuǎn)和3D轉(zhuǎn)換的功能也是創(chuàng)建C3DPO的核心,C3DPO是一種使用較少注釋的訓(xùn)練數(shù)據(jù)學(xué)習(xí)圖像和3D形狀之間關(guān)聯(lián)的新方法。
PyTorch3D的一些關(guān)鍵貢獻(xiàn)包括:
- 用于存儲(chǔ)和操作三角形網(wǎng)格的數(shù)據(jù)結(jié)構(gòu):PyTorch3D將3D表示存儲(chǔ)在稱為網(wǎng)格 (Meshes) 的數(shù)據(jù)結(jié)構(gòu)中。這種數(shù)據(jù)結(jié)構(gòu)使得研究人員很容易快速地將底層的網(wǎng)格數(shù)據(jù)轉(zhuǎn)換成不同的視圖,以匹配最有效表示數(shù)據(jù)的操作符。
- 三角網(wǎng)格上的高效操作:PyTorch3D包含一系列操作,用于優(yōu)化幾個(gè)常用操作符和3D數(shù)據(jù)的損失函數(shù),支持異構(gòu)批量輸入。這意味著研究人員和工程師可以在PyTorch3D中導(dǎo)入操作符,以便更快地進(jìn)行實(shí)驗(yàn),而不必在每個(gè)新項(xiàng)目開始時(shí)重新創(chuàng)建或使用操作符。
- 可微分網(wǎng)格渲染器:PyTorch3D包括一個(gè)模塊化的可微分渲染器。渲染器由可組合的單元組成,使得用戶能輕松擴(kuò)展渲染器來支持自定義照明或陰影效果。

PyTorch3D請(qǐng)參見GitHub
HiPlot
探索高維數(shù)據(jù)是深度學(xué)習(xí)應(yīng)用的挑戰(zhàn)之一。HiPlot是一個(gè)交互式可視化工具,它幫助人工智能研究人員發(fā)現(xiàn)高維數(shù)據(jù)中的相關(guān)性和模式,并使用平行圖和其他圖形方式來表示信息。HiPlot使用一種稱為平行圖的技術(shù),這是一種可視化和過濾高維數(shù)據(jù)的方便做法。
從功能的角度來看,HiPlot與其他可視化工具相比有以下幾個(gè)優(yōu)勢:
- 交互性:在HiPlot中,平行圖是交互式的,這使得在不同的場景中可視化很容易。例如,你可以專注于沿著一個(gè)或多個(gè)軸獲取范圍或值,根據(jù)另一個(gè)軸設(shè)置配色方案,重新排序或刪除軸,或提取特定的數(shù)據(jù)選擇。
- 簡潔性:使用Hiplot只需要幾行代碼。通過帶有“Hiplot”命令的服務(wù)器,就可以通過一個(gè)給定的URL訪問它,并使用它來可視化、管理和共享實(shí)驗(yàn)。
- 基于種群的訓(xùn)練可視化:HiPlot提供了一種簡單的方法來可視化XY圖中基于種群的訓(xùn)練實(shí)驗(yàn),該圖中,不同數(shù)據(jù)點(diǎn)之間是有邊緣的。這種可視化在深度學(xué)習(xí)實(shí)驗(yàn)中非常普遍。

Hiplot請(qǐng)參見GitHub
在深度學(xué)習(xí)的幾個(gè)領(lǐng)域,F(xiàn)acebook的FAIR團(tuán)隊(duì)還在繼續(xù)創(chuàng)新,并積極為開源社區(qū)做出貢獻(xiàn)。PyTorch3D、Polygames和HiPlot是FAIR的比較新的貢獻(xiàn),旨在實(shí)現(xiàn)深度學(xué)習(xí)應(yīng)用程序的簡化。
期待未來會(huì)有更多的進(jìn)展!
























