【烽巢網(wǎng)6月1日消息】先提一個(gè)可能直擊靈魂的問(wèn)題:
你家水池里的碗,放了幾天了?
顯然,你和TA都不想先去洗,那樣就是低了頭。
讓服務(wù)機(jī)器人出面化解這場(chǎng)僵持,可能還只是想想而已。
不過(guò),訓(xùn)練AI在虛擬世界里做家務(wù),已經(jīng)有人在做了。
他們還說(shuō),教AI做虛擬家務(wù),是為了今后能讓機(jī)器人全權(quán)代理人類(lèi)的家務(wù)工作。
女仆機(jī)器人嘿嘿嘿
以麻省理工 (MIT) 和多倫多大學(xué)的研究人員為主的一支AI團(tuán)隊(duì),建立起了名為VirturalHome的家庭環(huán)境模擬器,化為人形的智能體可以在里面學(xué)習(xí)大量的生活技能。
事無(wú)巨細(xì)模擬器
VirtualHome由三個(gè)部分組成。
一是家務(wù)知識(shí)庫(kù),里面包含了人類(lèi)在家庭生活里會(huì)經(jīng)歷的各種活動(dòng)。
教AI做事情不容易,比如讓它看電視,如果不告訴它坐到沙發(fā)上、拿起遙控器,它自己并不會(huì)去做這些準(zhǔn)備動(dòng)作。
所以,不論一項(xiàng)技能多么日常,都需要把它盡可能拆解成細(xì)小的步驟,比如走進(jìn)廚房,拿起杯子之類(lèi)。
于是,知識(shí)庫(kù)里的每一個(gè)任務(wù),都要包含分解動(dòng)作的文字描述,以及用來(lái)執(zhí)行的腳本。
二是3D模擬器,里面有6個(gè)公寓,以及4個(gè)人物可以選擇。虛擬環(huán)境中,示例、語(yǔ)義標(biāo)簽注解、深度、姿勢(shì)以及光流,應(yīng)有盡有。
在這里面,角色可以執(zhí)行程序給定的任務(wù),可以生成各種家務(wù)活動(dòng)的視頻。
三是腳本生成模型,根據(jù)自然語(yǔ)言描述或者視頻內(nèi)容,生成相應(yīng)任務(wù)的執(zhí)行程序。
在模擬器并不十分廣闊的天地里,研究人員要訓(xùn)練神經(jīng)網(wǎng)絡(luò)的各項(xiàng)家務(wù)技能。
論文里說(shuō),這項(xiàng)研究的目標(biāo),就是讓AI在自然語(yǔ)言和視頻的指引之下,自己寫(xiě)出程序來(lái)做好家務(wù)。
一步很難登天,那么,三步怎么樣?
1 數(shù)據(jù)怎么搞
要訓(xùn)練出一只可靠的家務(wù)AI,首先就是搜集各種家務(wù)活動(dòng)的數(shù)據(jù),這要分為兩個(gè)部分——
第一部分,讓一群臨時(shí)工 (AMT worker) 來(lái)提供任務(wù)的口頭描述。每個(gè)人要想出一項(xiàng)日常家庭活動(dòng),給出高級(jí)名稱(chēng),比如“做咖啡”,然后描述它的分解步驟。
活動(dòng)按起始場(chǎng)景分類(lèi),于是就有8種,客廳、廚房、餐廳、臥室、兒童房、浴室、玄關(guān)、書(shū)房。每個(gè)場(chǎng)景都包含了350個(gè)物體。
第二部分,臨時(shí)工們會(huì)用圖形編程語(yǔ)言,把這些描述翻譯成程序,當(dāng)然也需要詳細(xì)的步驟 (每一步都是一個(gè)block) ,而且要比描述的還要全面——要讓 (目前還不存在的) 機(jī)器人能夠貫徹落實(shí)。
數(shù)據(jù)集就這樣建好了,里面充滿了大大小小的任務(wù)所對(duì)應(yīng)的程序。
2 動(dòng)畫(huà)化
把數(shù)據(jù)集里的程序變成動(dòng)畫(huà),首先要看房間里的哪個(gè)物體才是要操作的對(duì)象,同時(shí)生成合理的動(dòng)作。這里,系統(tǒng)需要把一個(gè)任務(wù)的所有步驟都看過(guò)一遍,然后規(guī)劃一條合理的路徑。
比如,執(zhí)行一項(xiàng)“打開(kāi)電腦然后敲鍵盤(pán)”的任務(wù),比較理想的流程是,開(kāi)機(jī)之后就在離目標(biāo)電腦最近的鍵盤(pán)上操作就可以了,不用再確定哪一個(gè)才是目標(biāo)鍵盤(pán)。
原子動(dòng)作動(dòng)畫(huà)化
每個(gè)任務(wù)都是由大量原子動(dòng)作(Atomic Actions) 組成的,把它們?nèi)縿?dòng)畫(huà)化是個(gè)不小的工程。
這里用到了12種最常見(jiàn)的動(dòng)作:走/跑、抓取、按鍵開(kāi)/關(guān)、(物理) 打開(kāi)/關(guān)閉、放置、望向、坐下/站起,以及觸摸。每種動(dòng)作的執(zhí)行方式不唯一,比如開(kāi)冰箱和開(kāi)抽屜,姿勢(shì)就不一樣了。
團(tuán)隊(duì)用Unity引擎里的NavMesh來(lái)導(dǎo)航;用RootMotion FinalIK反向動(dòng)力學(xué)包,把每個(gè)動(dòng)作動(dòng)畫(huà)化。
另外,跟人物發(fā)生交互的物體,也要發(fā)生相應(yīng)的動(dòng)作。
程序動(dòng)畫(huà)化
要讓程序里的任務(wù)顯現(xiàn)成動(dòng)畫(huà),就要先在程序中的物體、和模擬器場(chǎng)景中的物體之間建立映射。
然后,是為程序里的每一步,計(jì)算人物和目標(biāo)物體的相對(duì)位置,以及計(jì)算其他與動(dòng)畫(huà)化相關(guān)的數(shù)字。
記錄動(dòng)畫(huà)
模擬器的每個(gè)房間里,有6-9枚攝像頭,每個(gè)公寓平均下來(lái)26枚。
并非每時(shí)每刻,都需要所有攝像頭,系統(tǒng)根據(jù)人物所在的位置來(lái)決定啟用哪些攝像頭。
記錄下來(lái)的視頻,下一步可以喂給神經(jīng)網(wǎng)絡(luò),訓(xùn)練它生成自己的程序。
3 用視頻和自然語(yǔ)言生成程序
給AI一段視頻,或者一段自然語(yǔ)言,讓它自動(dòng)生成相應(yīng)的家務(wù)執(zhí)行程序,做一只有覺(jué)悟的AI。
△LSTM
團(tuán)隊(duì)調(diào)整了seq2seq模型,來(lái)適應(yīng)這個(gè)任務(wù),然后用強(qiáng)化學(xué)習(xí)來(lái)訓(xùn)練它。
這里的模型,是由兩只RNN組成的,一只給輸入序列編碼,另一只負(fù)責(zé)解碼。神經(jīng)網(wǎng)絡(luò)每次可以生成一項(xiàng)家務(wù)中的一個(gè)步驟。
給文本編碼,用的是word2vec。
處理視頻的話,就把每條視頻拆成許多個(gè)2秒長(zhǎng)的片段,然后用模型來(lái)預(yù)測(cè)中間幀的樣子。這里用到了DilatedNet,還用到了Temporal Relation Netork。
學(xué)習(xí)和推斷
這個(gè)過(guò)程分為兩步。
第一步,用交叉熵?fù)p失(Cross Entropy Loss) 對(duì)解碼器做預(yù)訓(xùn)練。
第二步,強(qiáng)化學(xué)習(xí)登場(chǎng),智能體要學(xué)習(xí)一下策略(Policy) ,用來(lái)生成程序里面的步驟。
模擬器里很幸福
數(shù)據(jù)集的質(zhì)量如何?動(dòng)畫(huà)化的效果怎樣?系統(tǒng)生成的程序又能不能指向希望的任務(wù)呢?
測(cè)試過(guò)程請(qǐng)見(jiàn)論文。不過(guò)在那之前,先看看這個(gè)人。
看電視的任務(wù)做得很流暢,他還會(huì)找個(gè)舒服的姿勢(shì)坐下來(lái),很悠然。
團(tuán)隊(duì)也覺(jué)得,從生成的視頻來(lái)看,各種任務(wù)的完成度還是不錯(cuò)的。
下一步,就要給AI喂真實(shí)拍攝的視頻了,畢竟模擬器里發(fā)生的一切,和物理世界還是不一樣的。
是太幸福了吧?
畢竟,模擬器里的家庭環(huán)境一成不變,東西都擺在它該在的地方,也沒(méi)有小朋友跑來(lái)跑去。
在機(jī)器人接手任務(wù)之前,AI可能還需要在更加難以預(yù)測(cè)的模擬環(huán)境里,訓(xùn)練很長(zhǎng)時(shí)間。
另外,就算環(huán)境變化不是問(wèn)題,真實(shí)的家務(wù)操作也并不像撿個(gè)裝備那么簡(jiǎn)單,且容錯(cuò)率非常低。
比如,端一杯咖啡不可以只有90%的準(zhǔn)確度,95%也不太行。因?yàn)椋俜种坏牟铄e(cuò),會(huì)造成百分之百的災(zāi)難。
不過(guò),作為一個(gè)日常手抖的操作渣,我端咖啡也沒(méi)那么安全,從某種程度上說(shuō),還是很有潛力成為機(jī)器人女仆的重度用戶。
【烽巢辣評(píng)】暢想一下機(jī)器人在人類(lèi)日常生活中完全靈活運(yùn)用,亂扔的臟襪子,一水池臟碗,狼藉不堪的衣柜等等,教機(jī)器人AI,讓他完全記錄人類(lèi)的生活運(yùn)動(dòng)。盡管現(xiàn)在實(shí)現(xiàn)教機(jī)器人AI有許多復(fù)雜的困難,但小編仍抱有期待!
請(qǐng)登錄以參與評(píng)論
現(xiàn)在登錄