人工智能培训

搜索

一只脱离了低级趣味的AI,会写个程序指挥自己做家务|CVPR 2018 ...

[复制链接]
383082654 发表于 2018-6-3 06:45:28 | 显示全部楼层 |阅读模式
383082654 2018-6-3 06:45:28 393 0 显示全部楼层
方栗子 发自 凹非寺
量子位 出品 | 公众号 QbitAI
先提一个可能直击灵魂的问题:
你家水池里的碗,放了几天了?
xZ6Xnad2AzqyQXFA.jpg

显然,你和TA都不想先去洗,那样就是低了头。
让服务机器人出面化解这场僵持,可能还只是想想而已。
不过,训练AI在虚拟世界里做家务,已经有人在做了。
他们还说,教AI做虚拟家务,是为了今后能让机器人全权代理人类的家务工作。
wRpGZdFFfzLLYylH.jpg △ 女仆机器人嘿嘿嘿

以麻省理工 (MIT) 和多伦多大学的研究人员为主的一支AI团队,建立起了名为VirturalHome的家庭环境模拟器,化为人形的智能体可以在里面学习大量的生活技能。
事无巨细模拟器

VirtualHome由三个部分组成。
一是家务知识库,里面包含了人类在家庭生活里会经历的各种活动。
教AI做事情不容易,比如让它看电视,如果不告诉它坐到沙发上、拿起遥控器,它自己并不会去做这些准备动作。
所以,不论一项技能多么日常,都需要把它尽可能拆解成细小的步骤,比如走进厨房,拿起杯子之类。
于是,知识库里的每一个任务,都要包含分解动作的文字描述,以及用来执行的脚本。
mZLF6e3Ff7L7037Q.jpg

二是3D模拟器,里面有6个公寓,以及4个人物可以选择。虚拟环境中,示例、语义标签注解、深度、姿势以及光流,应有尽有。
在这里面,角色可以执行程序给定的任务,可以生成各种家务活动的视频。
三是脚本生成模型,根据自然语言描述或者视频内容,生成相应任务的执行程序。
在模拟器并不十分广阔的天地里,研究人员要训练神经网络的各项家务技能。
v9E67cEECzcC02Bv.jpg

论文里说,这项研究的目标,就是让AI在自然语言和视频的指引之下,自己写出程序来做好家务。
一步很难登天,那么,三步怎么样?
1 数据怎么搞

要训练出一只可靠的家务AI,首先就是搜集各种家务活动的数据,这要分为两个部分——
第一部分,让一群临时工 (AMT worker) 来提供任务的口头描述。每个人要想出一项日常家庭活动,给出高级名称,比如“做咖啡”,然后描述它的分解步骤。
usQE8Dn8AaKVCIqU.jpg

活动按起始场景分类,于是就有8种,客厅、厨房、餐厅、卧室、儿童房、浴室、玄关、书房。每个场景都包含了350个物体。
第二部分,临时工们会用图形编程语言,把这些描述翻译成程序,当然也需要详细的步骤 (每一步都是一个block) ,而且要比描述的还要全面——要让 (目前还不存在的) 机器人能够贯彻落实。
数据集就这样建好了,里面充满了大大小小的任务所对应的程序。
2 动画化

把数据集里的程序变成动画,首先要看房间里的哪个物体才是要操作的对象,同时生成合理的动作。这里,系统需要把一个任务的所有步骤都看过一遍,然后规划一条合理的路径。
比如,执行一项“打开电脑然后敲键盘”的任务,比较理想的流程是,开机之后就在离目标电脑最近的键盘上操作就可以了,不用再确定哪一个才是目标键盘。
原子动作动画化
每个任务都是由大量原子动作 (Atomic Actions) 组成的,把它们全部动画化是个不小的工程。
这里用到了12种最常见的动作:走/跑、抓取、按键开/关、(物理) 打开/关闭、放置、望向、坐下/站起,以及触摸。每种动作的执行方式不唯一,比如开冰箱开抽屉,姿势就不一样了。
s60zM3oQf5O3pqMy.jpg

团队用Unity引擎里的NavMesh来导航;用RootMotion FinalIK反向动力学包,把每个动作动画化。
另外,跟人物发生交互的物体,也要发生相应的动作。
程序动画化
要让程序里的任务显现成动画,就要先在程序中的物体、和模拟器场景中的物体之间建立映射
然后,是为程序里的每一步,计算人物和目标物体的相对位置,以及计算其他与动画化相关的数字。
记录动画
模拟器的每个房间里,有6-9枚摄像头,每个公寓平均下来26枚。
并非每时每刻,都需要所有摄像头,系统根据人物所在的位置来决定启用哪些摄像头。
记录下来的视频,下一步可以喂给神经网络,训练它生成自己的程序
3 用视频和自然语言生成程序

给AI一段视频,或者一段自然语言,让它自动生成相应的家务执行程序,做一只有觉悟的AI。
AQ7eYeV8wECTv6yq.jpg △ LSTM

团队调整了seq2seq模型,来适应这个任务,然后用强化学习来训练它。
这里的模型,是由两只RNN组成的,一只给输入序列编码,另一只负责解码。神经网络每次可以生成一项家务中的一个步骤。
给文本编码,用的是word2vec
处理视频的话,就把每条视频拆成许多个2秒长的片段,然后用模型来预测中间帧的样子。这里用到了DilatedNet,还用到了Temporal Relation Netork
学习和推断
这个过程分为两步。
第一步,用交叉熵损失 (Cross Entropy Loss) 对解码器做预训练。
第二步,强化学习登场,智能体要学习一下策略 (Policy) ,用来生成程序里面的步骤。
模拟器里很幸福

数据集的质量如何?动画化的效果怎样?系统生成的程序又能不能指向希望的任务呢?
测试过程请见论文。不过在那之前,先看看这个人。
L4uCY8FFx6CX3a0z.jpg

看电视的任务做得很流畅,他还会找个舒服的姿势坐下来,很悠然。
团队也觉得,从生成的视频来看,各种任务的完成度还是不错的。
下一步,就要给AI喂真实拍摄的视频了,毕竟模拟器里发生的一切,和物理世界还是不一样的。
是太幸福了吧?

毕竟,模拟器里的家庭环境一成不变,东西都摆在它该在的地方,也没有小朋友跑来跑去。
在机器人接手任务之前,AI可能还需要在更加难以预测的模拟环境里,训练很长时间。
另外,就算环境变化不是问题,真实的家务操作也并不像捡个装备那么简单,且容错率非常低。
J7665OwW77b5Wo7f.jpg

比如,端一杯咖啡不可以只有90%的准确度,95%也不太行。因为,百分之一的差错,会造成百分之百的灾难。
不过,作为一个日常手抖的操作渣,我端咖啡也没那么安全,从某种程度上说,还是很有潜力成为机器人女仆的重度用户。
CVPR欢迎您

不久以后,研究团队就要怀着激动的心情,登陆CVPR,在世人面前宣告,他们为了这个宏远的理想,踏出了多么坚实的一小步。
VVUs20V8hkS2kkKs.jpg

代码还没放出来,不过可以先看看论文啊。
传送门:
VirtualHome: Simulating Household Activities via Programs
http://virtual-home.org/paper/virtualhome.pdf
Ys394JbbHgAUYlmm.jpg


诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表 发新帖

383082654当前离线
新手上路

查看:393 | 回复:0

快速回复 返回顶部 返回列表