【烽巢网6月1日消息】先提一个可能直击灵魂的问题:
你家水池里的碗,放了几天了?
显然,你和TA都不想先去洗,那样就是低了头。
让服务机器人出面化解这场僵持,可能还只是想想而已。
不过,训练AI在虚拟世界里做家务,已经有人在做了。
他们还说,教AI做虚拟家务,是为了今后能让机器人全权代理人类的家务工作。
女仆机器人嘿嘿嘿
以麻省理工 (MIT) 和多伦多大学的研究人员为主的一支AI团队,建立起了名为VirturalHome的家庭环境模拟器,化为人形的智能体可以在里面学习大量的生活技能。
事无巨细模拟器
VirtualHome由三个部分组成。
一是家务知识库,里面包含了人类在家庭生活里会经历的各种活动。
教AI做事情不容易,比如让它看电视,如果不告诉它坐到沙发上、拿起遥控器,它自己并不会去做这些准备动作。
所以,不论一项技能多么日常,都需要把它尽可能拆解成细小的步骤,比如走进厨房,拿起杯子之类。
于是,知识库里的每一个任务,都要包含分解动作的文字描述,以及用来执行的脚本。
二是3D模拟器,里面有6个公寓,以及4个人物可以选择。虚拟环境中,示例、语义标签注解、深度、姿势以及光流,应有尽有。
在这里面,角色可以执行程序给定的任务,可以生成各种家务活动的视频。
三是脚本生成模型,根据自然语言描述或者视频内容,生成相应任务的执行程序。
在模拟器并不十分广阔的天地里,研究人员要训练神经网络的各项家务技能。
论文里说,这项研究的目标,就是让AI在自然语言和视频的指引之下,自己写出程序来做好家务。
一步很难登天,那么,三步怎么样?
1 数据怎么搞
要训练出一只可靠的家务AI,首先就是搜集各种家务活动的数据,这要分为两个部分——
第一部分,让一群临时工 (AMT worker) 来提供任务的口头描述。每个人要想出一项日常家庭活动,给出高级名称,比如“做咖啡”,然后描述它的分解步骤。
活动按起始场景分类,于是就有8种,客厅、厨房、餐厅、卧室、儿童房、浴室、玄关、书房。每个场景都包含了350个物体。
第二部分,临时工们会用图形编程语言,把这些描述翻译成程序,当然也需要详细的步骤 (每一步都是一个block) ,而且要比描述的还要全面——要让 (目前还不存在的) 机器人能够贯彻落实。
数据集就这样建好了,里面充满了大大小小的任务所对应的程序。
2 动画化
把数据集里的程序变成动画,首先要看房间里的哪个物体才是要操作的对象,同时生成合理的动作。这里,系统需要把一个任务的所有步骤都看过一遍,然后规划一条合理的路径。
比如,执行一项“打开电脑然后敲键盘”的任务,比较理想的流程是,开机之后就在离目标电脑最近的键盘上操作就可以了,不用再确定哪一个才是目标键盘。
原子动作动画化
每个任务都是由大量原子动作(Atomic Actions) 组成的,把它们全部动画化是个不小的工程。
这里用到了12种最常见的动作:走/跑、抓取、按键开/关、(物理) 打开/关闭、放置、望向、坐下/站起,以及触摸。每种动作的执行方式不唯一,比如开冰箱和开抽屉,姿势就不一样了。
团队用Unity引擎里的NavMesh来导航;用RootMotion FinalIK反向动力学包,把每个动作动画化。
另外,跟人物发生交互的物体,也要发生相应的动作。
程序动画化
要让程序里的任务显现成动画,就要先在程序中的物体、和模拟器场景中的物体之间建立映射。
然后,是为程序里的每一步,计算人物和目标物体的相对位置,以及计算其他与动画化相关的数字。
记录动画
模拟器的每个房间里,有6-9枚摄像头,每个公寓平均下来26枚。
并非每时每刻,都需要所有摄像头,系统根据人物所在的位置来决定启用哪些摄像头。
记录下来的视频,下一步可以喂给神经网络,训练它生成自己的程序。
3 用视频和自然语言生成程序
给AI一段视频,或者一段自然语言,让它自动生成相应的家务执行程序,做一只有觉悟的AI。
△LSTM
团队调整了seq2seq模型,来适应这个任务,然后用强化学习来训练它。
这里的模型,是由两只RNN组成的,一只给输入序列编码,另一只负责解码。神经网络每次可以生成一项家务中的一个步骤。
给文本编码,用的是word2vec。
处理视频的话,就把每条视频拆成许多个2秒长的片段,然后用模型来预测中间帧的样子。这里用到了DilatedNet,还用到了Temporal Relation Netork。
学习和推断
这个过程分为两步。
第一步,用交叉熵损失(Cross Entropy Loss) 对解码器做预训练。
第二步,强化学习登场,智能体要学习一下策略(Policy) ,用来生成程序里面的步骤。
模拟器里很幸福
数据集的质量如何?动画化的效果怎样?系统生成的程序又能不能指向希望的任务呢?
测试过程请见论文。不过在那之前,先看看这个人。
看电视的任务做得很流畅,他还会找个舒服的姿势坐下来,很悠然。
团队也觉得,从生成的视频来看,各种任务的完成度还是不错的。
下一步,就要给AI喂真实拍摄的视频了,毕竟模拟器里发生的一切,和物理世界还是不一样的。
是太幸福了吧?
毕竟,模拟器里的家庭环境一成不变,东西都摆在它该在的地方,也没有小朋友跑来跑去。
在机器人接手任务之前,AI可能还需要在更加难以预测的模拟环境里,训练很长时间。
另外,就算环境变化不是问题,真实的家务操作也并不像捡个装备那么简单,且容错率非常低。
比如,端一杯咖啡不可以只有90%的准确度,95%也不太行。因为,百分之一的差错,会造成百分之百的灾难。
不过,作为一个日常手抖的操作渣,我端咖啡也没那么安全,从某种程度上说,还是很有潜力成为机器人女仆的重度用户。
【烽巢辣评】畅想一下机器人在人类日常生活中完全灵活运用,乱扔的脏袜子,一水池脏碗,狼藉不堪的衣柜等等,教机器人AI,让他完全记录人类的生活运动。尽管现在实现教机器人AI有许多复杂的困难,但小编仍抱有期待!