淺談機(jī)器人編程新技能,神經(jīng)任務(wù)編程N(yùn)TP原理
在溫哥華舉行的IROS大會(huì)上,計(jì)算機(jī)視覺(jué)專(zhuān)家、斯坦福AI Lab&Vision Lab主任李飛飛做了“A Quest for Visual Intelligence”的演講,這也是李飛飛首次參加IROS這一機(jī)器人為主題的大會(huì)。值得注意的是,近日在Arxiv發(fā)現(xiàn)了一篇講述新型機(jī)器人學(xué)習(xí)框架的論文《Neural Task Programming: Learning to Generalize Across Hierarchical Tasks》,該論文的主要作者來(lái)自于斯坦福,其指導(dǎo)教師正是李飛飛及其丈夫Silvio Savarese。這也標(biāo)志著人工智能和機(jī)器人兩個(gè)社區(qū)在視覺(jué)與感知方面的重合度越來(lái)越大,之后的合作也會(huì)越來(lái)越緊密。
我們提出了一種名為神經(jīng)任務(wù)編程(NTP)的新型機(jī)器人學(xué)習(xí)框架,該方法可以通過(guò)較少的示范和神經(jīng)程序引導(dǎo)進(jìn)行學(xué)習(xí)。NTP可將輸入的規(guī)范性任務(wù)(例如任務(wù)的視頻演示)遞歸地將其分解成更精細(xì)的子任務(wù)規(guī)范, 這些規(guī)范被傳遞到分級(jí)神經(jīng)程序,通過(guò)可調(diào)用的底層子程序是與環(huán)境進(jìn)行交互。同時(shí),我們?cè)谌齻€(gè)機(jī)器人操縱任務(wù)中驗(yàn)證了我們的方法,在試驗(yàn)中,NTP展示了在顯示分層結(jié)構(gòu)和組合結(jié)構(gòu)的順序任務(wù)的強(qiáng)泛化能力化。 實(shí)驗(yàn)結(jié)果表明,NTP在學(xué)習(xí)長(zhǎng)度不定、可變拓?fù)浜筒粩嘧兓奈粗蝿?wù)的學(xué)習(xí)和拓展有較好的效果。
背景自越來(lái)越強(qiáng)調(diào)“人機(jī)協(xié)作”的今天,機(jī)器人通常在某些特定環(huán)境中與人進(jìn)行長(zhǎng)時(shí)間的交互,如物體分類(lèi)、裝配、和清理等。但是以往的機(jī)器人通常需要在固定的場(chǎng)景下才能與人交互,如何讓機(jī)器人能適應(yīng)復(fù)雜的操作任務(wù)、新的任務(wù)目標(biāo)和周?chē)h(huán)境,則是機(jī)器人技術(shù)中的一個(gè)重大挑戰(zhàn)。
設(shè)想一個(gè)倉(cāng)庫(kù)中的物體分類(lèi)任務(wù),這通常包括分類(lèi)、檢索、打包等具體任務(wù),每個(gè)任務(wù)又可以分解為若干個(gè)動(dòng)作,如抓取、移動(dòng)、放下等,這些動(dòng)作構(gòu)成了如抓取和放置等子任務(wù),如果在考慮到不同的對(duì)象、排序、子任務(wù)的排列組合,當(dāng)中的變化將會(huì)非常復(fù)雜,例如,將四類(lèi)物品分類(lèi)放到四個(gè)容器中,這當(dāng)中的組合會(huì)有256中之多。本文中,我們希望解決復(fù)雜任務(wù)規(guī)劃的兩個(gè)主要挑戰(zhàn),即a)從新的概念化到新的任務(wù)目標(biāo)的學(xué)習(xí)策略,以及b)與長(zhǎng)期環(huán)境交互的基本原生代碼模塊的組合。
神經(jīng)任務(wù)編程(NTP)原理NTP的關(guān)鍵基本思想在是跨任務(wù)學(xué)習(xí)和與共享域中的可重用表示。NTP對(duì)一個(gè)描述任務(wù)過(guò)程和最終目標(biāo)時(shí)間序列的任務(wù)規(guī)范進(jìn)行解釋?zhuān)⑵浞謱硬呗詫?shí)例轉(zhuǎn)化為一個(gè)神經(jīng)程序。NTP從輸入規(guī)范中解碼生成任務(wù)目標(biāo),并將其分解為子任務(wù)并與周邊環(huán)境進(jìn)行交互和反饋直至搭成目標(biāo),每個(gè)程序調(diào)用環(huán)境觀察和任務(wù)規(guī)范(輸入),并輸出下一個(gè)子程序和相應(yīng)的子任務(wù)規(guī)范。
如上圖所示,在給定輸入、任務(wù)規(guī)范和當(dāng)前環(huán)境的情況下,NTP模型預(yù)測(cè)需要運(yùn)行什么樣的子程序,并作為下一級(jí)子任務(wù)的輸入,并判斷當(dāng)前程序是否結(jié)束,否則將繼續(xù)循環(huán)執(zhí)行任務(wù) 。
測(cè)試
該研究團(tuán)隊(duì)通過(guò)對(duì)模擬和實(shí)際機(jī)器人實(shí)驗(yàn)中的單臂操作任務(wù)模擬對(duì)NTP進(jìn)行評(píng)估。任務(wù)包括:堆疊方塊,目標(biāo)分類(lèi)和清理桌子。
該研究的兩個(gè)目標(biāo):I. 在同一個(gè)域中學(xué)習(xí)多項(xiàng)任務(wù);以及 II. 通過(guò)單一例子形成在測(cè)試中的泛化能力。
如圖所示,機(jī)器手可從模擬的Demo環(huán)境(包括圖像、視頻、VR輸入)中進(jìn)行學(xué)習(xí)并完成積木的堆疊;
NTP編程:通過(guò)分級(jí)的任務(wù)條件輸出策略歸納程序,調(diào)用Robot API進(jìn)行操作。
上圖展示了在堆疊方塊任務(wù)中 NTP 的樣本執(zhí)行軌跡圖。任務(wù)是按指定要求堆疊字母塊,頂層程序作為輸入?yún)⑴c整個(gè)演示,預(yù)測(cè)下一個(gè)運(yùn)行的子程序,并為特定輸入作為指定任務(wù)的一部分,底層 API 調(diào)用機(jī)器人作出相應(yīng)的動(dòng)作(如Move_to(Blue)、Grasp(Blue)等)。當(dāng)程序結(jié)束符(EOP)為 True,當(dāng)前程序停止并返回其調(diào)用程序。
如果環(huán)境發(fā)生變化(如人為破壞已完成的任務(wù)),機(jī)器人會(huì)探測(cè)到環(huán)境的變化并重復(fù)任務(wù)。
任務(wù)結(jié)構(gòu)的變化包括:改變完成條件(任務(wù)語(yǔ)義),可變子任務(wù)排列(任務(wù)拓?fù)洌┖透蟮娜蝿?wù)量(任務(wù)的長(zhǎng)度)。隨著任務(wù)數(shù)量的增加,NTP可以為新的任務(wù)師范及目標(biāo)生成更好的結(jié)果。