MIT 人工智慧團隊新目標:
讓 AI 幫人類做家事,以後可以爽爽在家躺了?
Posted on2018/06/01這位 AI 老兄,還會挑個比較舒適的位子來坐呢。
【我們為什麼挑選這篇文章】把 AI 應用在哪裡會最有感?當然就是每個人的家裡。MIT 設法要讓 AI 幫人類做家事,不但生出「家庭模擬器」,還要讓 AI 自學做家事,他們要怎麼利用這個模擬器?讓 AI 做家事真的有可能嗎?來看看吧。(責任編輯:康陳剛)
作者/量子位 方栗子
本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處
先提一個可能直擊靈魂的問題:你家洗碗槽裡的碗,放幾天了?
顯然,你和她都不想先去洗,那樣就是低了頭。
讓服務機器人出面化解這場僵持,可能還只是想想而已。不過,訓練 AI 在虛擬世界裡做家事,已經有人在做了。他們還說,教 AI 做虛擬家務,是為了今後能 讓機器人全權代理人類的家務工作 。
以麻省理工(MIT)和多倫多大學的研究人員為主的一支 AI 團隊,建立起了名為 VirturalHome 的家庭環境模擬器,化為人形的 AI 可以在裡面學習大量的生活技能。
事無鉅細模擬器
VirtualHome 由三個部分組成。
廣告
一是 家事知識庫 ,裡面包含了人類在家庭生活裡會經歷的各種活動。
教 AI 做事情不容易,比如讓它看電視,如果不告訴它坐到沙發上、拿起遙控器,它自己並不會去做這些準備動作;所以,不論一項技能多麼日常,都需要把它盡可能拆解成細小的步驟,比如走進廚房,拿起杯子之類。
於是知識庫裡的每一個任務,都要包含分解動作的文字描述,以及用來執行的腳本。
四個人物有男有女、有老有少任選。
二是 3D 模擬器 ,裡面有 6 個公寓,以及 4 個人物可以選擇。虛擬環境中,案例、語意標籤註解、深度、姿勢以及光源,應有盡有。
在這裡面,角色可以執行程序給定的任務,生成各種家務活動的影片。
三是 腳本生成模型 ,根據自然語言描述或者視頻內容,生成相應任務的執行程序。在模擬器並不十分廣闊的天地裡,研究人員要訓練神經網絡的各項家事技能。
論文裡說,這項研究的目標,就是 讓 AI 在自然語言和影片的指引之下,自己寫出程式來做好家務。
一步很難登天,那麼,三步怎麼樣?
一、數據怎麼搞
要訓練出一隻可靠的家務 AI,首先就是蒐集各種家務活動的數據,這要分為兩個部分。
第一部分,讓一群臨時工(AMT worker)來提供任務的口頭描述。每個人要想出一項日常家庭活動,給出高級名稱,比如「做咖啡」,然後 描述它的分解步驟 。
活動按起始場景分類就有 8 種,客廳、廚房、餐廳、臥室、兒童房、浴室、玄關、書房,每個場景都包含了 350 個物體。
第二部分,臨時工們會用圖形編程語言, 把這些描述翻譯成程式 ,當然也需要詳細的步驟(每一步都是一個 block),而且要比描述的還要全面——要讓(目前還不存在的)機器人能夠貫徹落實。
數據集就這樣建好了,裡面充滿了大大小小的任務所對應的程式。
二、動畫化
把數據集裡的程式變成動畫,首先要看房間裡的哪個物體是要操作的對象,同時生成合理的動作。這裡,系統需要把一個任務的所有步驟都看過一遍,然後規劃一條合理的路徑。
比如,執行一項「打開電腦然後敲鍵盤」的任務,比較理想的流程是,開機之後就在離目標電腦最近的鍵盤上操作就可以了,不用再確定哪一個才是目標鍵盤。
這就是 VirtulHome 生成的影片啦。
原子動作動畫化
每個任務都是由大量 原子動作(Atomic Actions) 組成的,把它們全部動畫化是個不小的工程。
這裡用到了 12 種最常見的動作:走/跑、抓取、按鍵開/關、(物理)打開/關閉、放置、望向、坐下/站起,以及觸摸。每種動作的執行方式不唯一,比如開冰箱和開抽屜,姿勢就不一樣了。
團隊用 Unity 引擎裡的 NavMesh 來導航;用 RootMotion FinalIK 反向動力學包,把每個動作動畫化。另外,跟人物發生交互的物體,也要發生相應的動作。
程序動畫化
要讓程序裡的任務顯現成動畫,就要先在程序中的物體、和模擬器場景中的物體之間建立映射。然後為程序裡的每一步, 計算人物和目標物體的相對位置 ,以及計算其他與動畫化相關的數字。
記錄動畫
模擬器的每個房間裡,有 6 到 9 台攝影機,每個公寓平均下來 26 枚。
這些攝影機不需要一直開啟,系統根據人物所在的位置來決定啟用哪些攝影機。記錄下來的影片,下一步可以餵給神經網絡, 訓練它生成自己的程式 。
三、用影片和自然語言生成程式
給 AI 一段影片,或者一段自然語言,讓它自動生成相應的家事執行程式,做一隻有覺悟的 AI。
LSTM
團隊調整了 seq2seq 模型,來適應這個任務,然後用強化學習來訓練它。
這裡的模型,是由兩隻 RNN 組成的,一隻給輸入序列編碼,另一隻負責解碼。神經網絡每次可以生成一項家事中的一個步驟。
研究人員用 word2vec 給文本編碼;處理影片的話,他們用到了 DilatedNet 和 Temporal Relation Netork,並把每條影片拆成許多個 2 秒長的片段,然後用模型來預測中間幀的樣子。
接下來,學習和推斷的部分分成兩步。
用交叉熵損失(Cross Entropy Loss)對解碼器做預訓練。
強化學習登場,智能體要學習一下策略 (Policy) ,用來生成程序裡面的步驟。
AI 在模擬器裡很幸福
數據集的質量如何?動畫化的效果怎樣?系統生成的程式又能不能指向希望的任務呢?
測試過程請見 論文 。不過在那之前,先看看這個人。
看電視的任務做得很流暢,他還會找個舒服的姿勢坐下來,很悠然。團隊也覺得,從生成的影片來看,各種任務的完成度還是不錯的。
下一步,就要給 AI 餵真實拍攝的視頻了,畢竟模擬器裡發生的一切,和物理世界還是不一樣的。
是太幸福了吧?
畢竟,模擬器裡的家庭環境一成不變,東西都擺在它該在的地方,也沒有小朋友跑來跑去。在機器人接手任務之前,AI 可能還需要在更加難以預測的模擬環境裡,訓練很長時間。
另外,就算環境變化不是問題,真實的家務操作也並不像撿個裝備那麼簡單,容錯率非常低。
比如,端一杯咖啡不可以只有 90% 的準確度,95% 也不太行。因為,百 分之一的差錯,會造成百分之百的災難 。
CVPR 歡迎您
不久以後,研究團隊就要懷著激動的心情,登陸 CVPR(IEEE 國際電腦視覺與模式識別會議),在世人面前宣告,他們為了這個宏遠的理想,踏出了多麼堅實的一小步。
代碼還沒放上 Github,不過可以先看看 論文 啊。
(本文經 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈MIT 怎样教 AI 做虚拟家务?让它写个程序指挥自己啊 〉;首圖來源:Youtube。)
延伸閱讀
【MIT 出品】比你媽還懂你的超猛「讀心術」耳機,再也無法口是心非了 眼前的魚不是魚,連魚都分不清的 MIT 機器魚可以用來幹嘛? 原來自駕車怕濃霧?MIT 研發新成像系統,讓車輛再也不怕「看不清」MIT 研發解魔術方塊機器人,我眨個眼居然就已經解完了?
沒有留言:
張貼留言