聚精會(huì)神,緊盯電腦屏幕上的一支機(jī)械臂,捧著手機(jī):移動(dòng)、下降、抓住,抬起!
別誤會(huì),這位小姐姐并不是在遠(yuǎn)程抓娃娃,而是在為機(jī)器人創(chuàng)造學(xué)習(xí)資料。
在她和她的同道中人教育下,你將看到會(huì)端鍋、會(huì)堆積木、會(huì)把螺絲螺帽組裝在一起、甚至還會(huì)分揀物品的機(jī)器人。
從“抓娃娃”,到機(jī)器人學(xué)會(huì)種種技能,這兩件看起來(lái)毫無(wú)關(guān)系的事情之間,斯坦福大學(xué)計(jì)算機(jī)視覺(jué)與學(xué)習(xí)實(shí)驗(yàn)室的一個(gè)團(tuán)隊(duì)正在用兩項(xiàng)研究搭建橋梁。而帶領(lǐng)這個(gè)團(tuán)隊(duì)的,正是最近從Google回到斯坦福教學(xué)崗位的李飛飛和她的丈夫?Silvio Savarese。
我們先來(lái)看第一項(xiàng)研究,也就是這個(gè)“抓娃娃”的系統(tǒng)。
前面看到的“抓娃娃”平臺(tái),名叫RoboTurk?,F(xiàn)在,人類已經(jīng)用它已經(jīng)為機(jī)器人生產(chǎn)了137.5小時(shí)的教學(xué)視頻,演示了3224次抓取、組裝物品的動(dòng)作。其中,有1071次成功的抓取,1147次成功的組裝。
聽(tīng)起來(lái)很多?其實(shí)做起來(lái)并不難,生產(chǎn)這么多的教學(xué)資料,總共只用了22小時(shí)。
李飛飛團(tuán)隊(duì)說(shuō),這是因?yàn)樗麄兊腞oboTurk,本來(lái)就是個(gè)快速眾包制造大規(guī)模機(jī)器人控制數(shù)據(jù)集的利器。
RoboTurk到底怎么用呢?
這個(gè)平臺(tái)的一端,是要訓(xùn)練機(jī)器人的科學(xué)家們。他們根據(jù)自己的研究目的,用物理模擬器來(lái)創(chuàng)建任務(wù),部署到云端,就可以在世界各地征集人類、創(chuàng)造數(shù)據(jù)集了。
李飛飛的團(tuán)隊(duì)甚至在設(shè)計(jì)、測(cè)試這個(gè)平臺(tái)的時(shí)候就已經(jīng)幫你親測(cè)過(guò)了:他們把機(jī)器人模擬器放在北京的服務(wù)器上,然后在太平洋對(duì)岸的加利福尼亞的實(shí)驗(yàn)室里,通過(guò)RoboTurk來(lái)控制它們。
平臺(tái)的另一端,是為機(jī)器人創(chuàng)造教學(xué)資料的人類們。
這些人類,需要一只iPhone(6s及以后的機(jī)型)和一臺(tái)裝了瀏覽器、能上網(wǎng)的電腦。
打開(kāi)手機(jī)上的RoboTurk App,輸入網(wǎng)頁(yè)上顯示的ID,就可以用手機(jī)控制云端環(huán)境里相應(yīng)的機(jī)器人了,在電腦上的瀏覽器里看到實(shí)時(shí)反饋的視頻。
這些演示過(guò)程,都會(huì)存儲(chǔ)在云端,供科學(xué)家們用來(lái)訓(xùn)練強(qiáng)化學(xué)習(xí)算法,訓(xùn)練成功后,就可以部署這些算法,讓它們?nèi)タ刂茩C(jī)器人了。
這個(gè)團(tuán)隊(duì)自己,就用MoJoCo模擬器創(chuàng)建了兩個(gè)環(huán)境:
一個(gè)訓(xùn)練機(jī)器人學(xué)分揀(picking),把桌上的物體抓起放到旁邊不同的小盒子里;另一個(gè)讓機(jī)器人學(xué)組裝(assembly),把螺帽放到正確的螺栓上。
看完這些介紹和例子,可不要對(duì)RoboTurk有什么誤會(huì)。它并不是只能控制MoJoCo模擬出來(lái)的機(jī)器人,其他模擬器、環(huán)境,也同樣可以用,甚至……
真正的實(shí)體機(jī)器人,也完全沒(méi)問(wèn)題。
這些大費(fèi)周章的抓娃娃式訓(xùn)練,究竟是為了什么呢?當(dāng)然是為了讓機(jī)器人更快學(xué)會(huì)更多新技能。
想讓機(jī)器人學(xué)會(huì)抓取、組裝物品,模仿人類是種不錯(cuò)的方法,這種方法叫“模仿學(xué)習(xí)”(Imitation learning),在最近機(jī)器人研究中越來(lái)越常見(jiàn)。
但是,這種方法有一種天生的局限:它和AI學(xué)會(huì)給圖像分類一樣,也需要很多標(biāo)注好的數(shù)據(jù)。
AI研究的不少子領(lǐng)域都有很充足的數(shù)據(jù):圖像識(shí)別領(lǐng)域有ImageNet,目標(biāo)檢測(cè)有COCO,機(jī)器問(wèn)答有SQuAD。這幾個(gè)領(lǐng)域的發(fā)展,都離不開(kāi)這些數(shù)據(jù)集的滋潤(rùn)。
而機(jī)器人控制……卻沒(méi)有類似的大規(guī)模數(shù)據(jù)集,實(shí)驗(yàn)室要想研究模仿學(xué)習(xí),只能自己零零星星地去收集數(shù)據(jù)。RoboTurk平臺(tái),就是為了讓科學(xué)家們更快收集數(shù)據(jù)而生。
發(fā)布平臺(tái)的同時(shí),李飛飛夫婦的團(tuán)隊(duì)還發(fā)布了一個(gè)RoboTurk數(shù)據(jù)集,就是我們前面提到的137.5小時(shí)的教學(xué)視頻。
雖然規(guī)模稍小,但也稱得上機(jī)器人界ImageNet的雛形了。
有了“機(jī)器人界的ImageNet”之后,想要快速訓(xùn)練出厲害的機(jī)器人,算法本身也得學(xué)得快才行。
所以,還是飛飛實(shí)驗(yàn)室,又開(kāi)源了分布式強(qiáng)化學(xué)習(xí)訓(xùn)練框架SURREAL,用來(lái)加速學(xué)習(xí)過(guò)程。
訓(xùn)練成果很豐盛,機(jī)械臂用兩個(gè)手指,就可以執(zhí)行各種操作:
第一,撿起一個(gè)方塊,這是最基礎(chǔ)的操作。
動(dòng)了位置,機(jī)械臂也能速速跟過(guò)去。
第二,增加一點(diǎn)難度,疊羅漢。
它學(xué)會(huì)了,用手里的紅方塊,來(lái)調(diào)整底座綠方塊的位置,然后更加穩(wěn)妥地把紅方塊放上去。
第三,把不同質(zhì)地的多個(gè)重物,分別放入所屬的格子。
紅色易拉罐,藍(lán)色紙盒,白色利樂(lè)包,黃褐色的 (可能是) 面包。對(duì)號(hào)入座,不會(huì)放錯(cuò)。
下面,是雙手技能的展示時(shí)間。
兩只機(jī)械臂要各自完成不同的動(dòng)作,互相配合,并不簡(jiǎn)單。
第一項(xiàng)任務(wù),插入,插入 (上圖) 。
第二項(xiàng)任務(wù),按形狀插入。
目前,這還不是雙手技能,但也可以進(jìn)化成雙手技能。
正方形的插孔,對(duì)應(yīng)正方形的柱子;圓形插孔對(duì)應(yīng)圓柱。
只有物理性質(zhì)匹配,才能獲得更加長(zhǎng)久的幸福。
除此之外,生活也少不了柴米油鹽。至少,先把鍋端起來(lái)。
熟練的操作,當(dāng)然不是與生俱來(lái)。
就像嬰兒學(xué)步,日復(fù)一日,愈發(fā)矯健。
回過(guò)頭去,看看訓(xùn)練之初的機(jī)器人,雙手幾乎沒(méi)有一絲協(xié)調(diào)性。
五個(gè)多小時(shí)后,插入操作已經(jīng)毫無(wú)壓力,孺子可教。
團(tuán)隊(duì)還發(fā)現(xiàn),用SURREAL框架搭配上文的RoboTurk數(shù)據(jù)集服用,讓人類教練來(lái)“手把手”訓(xùn)練機(jī)器人,療效要比不經(jīng)人類調(diào)教的AI好得多:
果然,沒(méi)有看過(guò)人類演示的AI (左) ,雖然能找到鍋的兩個(gè)把手,但還是提不起來(lái)。
有了人類教練的指點(diǎn) (右) ,端起鍋來(lái)就不難了。
那么看一下,這個(gè)能夠高效訓(xùn)練技能的框架SURREAL,長(zhǎng)什么樣子:
SURREAL框架,把一個(gè)分布式RL算法,分解成四個(gè)部分?(圖中由左向右) :
一是演員 (Actors) ,負(fù)責(zé)生成經(jīng)驗(yàn);
二是緩沖池 (Buffer) ,負(fù)責(zé)儲(chǔ)存經(jīng)驗(yàn);
三是學(xué)習(xí)者 (Learner) ,根據(jù)經(jīng)驗(yàn)來(lái)更新參數(shù);
四是參數(shù)服務(wù)器 (Parameter Server) ,負(fù)責(zé)儲(chǔ)存參數(shù)。
演員部分,是多個(gè)演員是并行?(Parallel) 的,16個(gè),32個(gè),64個(gè)……都可以。
這樣一來(lái),AI可用的數(shù)據(jù)量,能夠猛烈增長(zhǎng)。
把數(shù)據(jù)生成和學(xué)習(xí)過(guò)程分開(kāi),不需要全局同步?(Global Synchronization) 了,可擴(kuò)展性?(Scalability) 也就增強(qiáng)了。
另外,框架支持在線 (On-Policy) 和離線 (Off-Policy) 兩種策略更新方式。
團(tuán)隊(duì)說(shuō),系統(tǒng)可以直接部署在云端或者PC端 (如谷歌云、AWS、Azure) ,輕而易舉,只需4層:
第一層,從配置器 (Provisioner) 開(kāi)始,保障各個(gè)云平臺(tái)的可復(fù)現(xiàn)性。
第二層,編配 (Orchestrator) ,用一個(gè)完善的云API來(lái)分配CPU/GPU資源,復(fù)制網(wǎng)絡(luò)。
第三層,協(xié)議 (Protocal) 實(shí)現(xiàn)了高效的通信指令。
第四層,就是算法,用PyTorch實(shí)現(xiàn)的。
這兩項(xiàng)研究背后,都是李飛飛夫婦的計(jì)算機(jī)視覺(jué)與學(xué)習(xí)實(shí)驗(yàn)室(SVL Lab)。眾包平臺(tái)RoboTurk,由他們的博士生Ajay Mandlekar主導(dǎo);
而SURREAL項(xiàng)目,共同一作是兩位博士生Linxi Fan和Yuke Zhu。
關(guān)于Ajay同學(xué),網(wǎng)絡(luò)上資料并不多。不過(guò),Linxi Fan和Yuke Zhu兩位同學(xué)就足夠大家學(xué)(mo)習(xí)(bai)了。
他們現(xiàn)在分別已經(jīng)讀到了博士的第三年和第四年,都積累了非常豐富的實(shí)習(xí)經(jīng)歷。
我們先來(lái)看看Linxi Fan同學(xué):
讀博第三年的他,2017年暑假在Google實(shí)習(xí),跟著李飛飛、李佳和研究院Mei Han等人,研究神經(jīng)架構(gòu)和超參數(shù)的元學(xué)習(xí)。
之前,他還在參與過(guò)斯坦福NLP組、OpenAI、Yoshua Bengio帶領(lǐng)的MILA、百度AI實(shí)驗(yàn)室、王弢和吳恩達(dá)帶領(lǐng)的斯坦福自動(dòng)駕駛項(xiàng)目等等。
在他的主頁(yè),你會(huì)看到更多勤奮的履歷:
http://jimfan.me/
而Yuke Zhu,2017年暑假在DeepMind實(shí)習(xí),之前的實(shí)習(xí)路程經(jīng)過(guò)了艾倫人工智能研究院(AI2)、Snap、Twitter等等公司。
他們的實(shí)驗(yàn)室,除了上面兩個(gè)項(xiàng)目之外,還有訓(xùn)練機(jī)器人在人群之中穿梭的JACKRABBOT,想訓(xùn)練AI從視頻中識(shí)別人類行為的大規(guī)模數(shù)據(jù)集ACTIVITYNET等等研究。這些研究背后,是這樣一群人類:
最后,量子位當(dāng)然會(huì)為愛(ài)學(xué)習(xí)的朋友們送上這些研究的傳送門,請(qǐng)收好~
眾包平臺(tái)RoboTurk:
主頁(yè)?https://crowdncloud.ai/
論文 RoboTurk: A Crowdsourcing Platform for Robotic Skill Learning through Imitation
http://vision.stanford.edu/pdf/mandlekar2018corl.pdf
加速訓(xùn)練的SURREAL:
主頁(yè)?https://surreal.stanford.edu/
論文 SURREAL: Open-Source Reinforcement Learning Framework and Robot Manipulation Benchmark
https://surreal.stanford.edu/img/surreal-corl2018.pdf
這兩項(xiàng)研究的論文,都發(fā)表在馬上要在蘇黎世進(jìn)行的CoRL 2018大會(huì)上。
這個(gè)大會(huì)的全稱是機(jī)器人學(xué)習(xí)大會(huì)(Conference on Robot Learning),由UC Berkrley、Google、微軟、CMU、MIT等頂尖研究機(jī)構(gòu)發(fā)起,Google、DeepMind、瑞士科研基金會(huì)(SNF)、Facebook、博世等贊助,自誕生起就被學(xué)界寄予厚望,今年是第二屆。
在這里,你可以看到更多有趣的機(jī)器人研究項(xiàng)目:
http://www.robot-learning.org/home/program#schedule
Enjoy~
—?完?—