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