機器人會模仿:機器人藉由觀察人類的行為來學習

作者 Noah Kravitz

機器人按照程式碼設定好的指令來完成任務?太老套了。
機器人觀察人類的動作來學習做事的方法?這是才未來。

史丹佛大學的 Animesh Garg 與 Marynel Vázquez 在3月底舉行的 GPU 科技大會上,就《Generalizable Autonomy for Robotic Mobility and Manipulation》(機器人移動與操控的可普遍化自動性)為主題,分享了兩人的研究心得。

從根本上說,可普遍化自動性(generalizable autonomy)是機器人觀察並學習人類行為,以用於執行各種任務和情況的方式。

有哪些情況呢?像是觀看 YouTube 上的影片來學習烹飪,還有找出穿越擁擠房間的方法。

料理通才

史丹佛大學視覺與學習實驗室(CVGL)的博士後研究員 Garg 喜歡做飯,也喜歡機器人,但他對於充斥著機器人的未來不是那麼感興趣,這些機器人每具只會煮一道菜而已。

現在愈來愈多的機器人擅長處理單一任務,Garg 卻在努力實現他所謂的「通用型機器人的夢想」。

通往夢想之路或許取決於「神經任務程式設計」(NTP)上,這是一種新的元學習(meta-learning)方法。NTP 利用層次結構並學習使用模組化機器人 API 來編寫程式碼,僅使用單一測試範例來執行其它看不見的任務。

舉例來說,機器人廚師會將烹飪影片視為輸入項,使用分層神經網路程式將影片資料分解成 Garg 所謂按照視覺線索及時間序列的任務結構化表示內容。

機器人並非只是學習烹調肉丸義大利麵的某一道美味食譜,還明白構成該任務的所有次要程序或組件。這位初露頭角的機械人廚師之後便可將燒開水、煎肉丸和煨煮醬料這些技巧,用在其它情況。

解決任務整體,而非只是任務的例子,正是 Garg 所謂的元學習的核心。在 NTP 身上已經看到了令人鼓舞的成果,其結構化的分層方法在處理看不見的任務方面,使得單純撰寫程式碼的動作變得黯然失色,在執行看見的任務上表現同樣出色。在這項計畫的 GitHub 提供了完整的技術詳細資訊。

覺得太擠嗎?跟著機器人

我們都有遇過這個情況。你試著穿過擁擠的房間,突然發現自己跟從另一個方向走來的陌生人面面相覷。

你往右移動想要擋下它們,他們卻又以同樣的方式移動,擋住你的去路。你們都出自本能朝著另一個方向,卻又再次被擋下來!

你們中的一個人說出「要來跳支舞嗎?」的笑話來打破這個僵局,最後你們互相轉過身以繼續前進。

瞭解人們在擁擠空間裡的移動方式和原因,是一件大難題。指導機器人理解這些規則又相當不易。Vázquez 為此推出了 CVGL 的社交導航機器人 Jackrabbot。

2015年 Jackrabbot 首先現身在人行道上,以不到時速五英里的步行速度進行小量送貨工作。正如 Vázquez 所說的,指導 Jackrabbot(以常現身校園裡的兔子名稱來命名)來解決預測人群中人體行動方向的難題。

教導機器人在非結構化空間裡移動,像是我們所身處的真實世界,是一個多面向的問題。「安全至上。」Vázquez 說。基於這個原則,難題很快就變成預測和一次回應很多人的動作。

他們為了滿足安全至上的原則,開始採用深度學習技術,開發出一個生成對抗網絡(GAN),將 JackRabbot 上攝影機拍攝到的即時資料與 GAN 即時生成的影像進行比較。

這些影像代表機器人應看見一個可以安全通過的區域,例如沒有關上門的走廊、到處亂擺的家具或有人站在走道上。要是現實情況符合理想情況,JackRabbot 便會繼續前進,不然就會停下來。

研究團隊開始轉向處理多目標任務,又稱為「追蹤難以捉摸的物體」。除了在人群中優雅地移動,還會立即評估「我的路徑上沒有任何東西嗎?」,以追蹤不同人各異的移動方向,並且預測他們接下來會朝著哪裡移動。

團隊在此使用長短期記憶法建立了一個遞歸神經網路,來負責處理多個隨時間測量的線索,像是外觀、速度、互動性及相似性。

在一篇已經發表的研究報告裡深入研究了技術本質,但實質上 CVGL 設計了一種新穎的方法來學習人們在擁擠的空間裡觀察到的常識行為,再利用這種理解來預測每個人下一步的「人類軌跡」。

下次你發現自己在一個滿是陌生人的房間裡,出現那些「要跳支舞嗎?」的囧境時,記得長時間追蹤多個線索,預測每個人的運動軌跡。

不然還有一個簡單的方法,跟著 JackRabbot 走。或者更好的是,跟著新推出的 JackRabbot 2.0(搭載兩顆 NVIDIA GPU),它會知道該怎麼辦。

圖片提供:史丹佛大學視覺與學習實驗室