Facebook创建Habitat,一个极具世界真实感的模拟系统

新智元报道

来源:TC

编辑:元子

训练一个智能体在复杂的3D世界中导航,在计算上是昂贵和耗时的。Facebook的工程师们通过一种末尾淘汰制的方法,将最慢的智能体淘汰,获得了巨大的性能提升。

Habitat:在3D环境中导航成功率99.9%

“嵌入式人工智能”意味着机器学习系统可以与周围环境智能互动,例如,使用对话上下文响应语音命令,也可以让机器人知道它进入了错误的房间。

要创建这样的“具体化”系统,我们需要使用真实世界的合理摹本来训练它们,没见过走廊的人工智能不可能知道墙壁和门是什么的。考虑到现实生活中机器人的移动速度太慢,我们不能指望他们在这里学到教训。而Habitat可以提供一套模拟的真实世界环境,具有足够的真实感,让人工智能能够导航现实世界。

而在机器人和AI训练中比较常见的模拟器也可以实现同样的功能。我们可以同时运行很多个实例,例如可以同时跑几千个实例。每个包含智能体的实例都试图解决一个问题,并向分派任务给它的中央系统汇报最终结果。但不幸的是,与简单的虚拟环境相比,逼真的3D环境需要大量的计算,这减慢了学习速度。

由Dhruv Batra教授和佐治亚理工学院博士生Erik Wijmans领导的Facebook的研究人员找到了一种方法来加速这一过程的数量级或更多。结果是一个人工智能系统可以在一个3D环境中从一个起点导航到目标,成功率99.9%,很少出错。

简单的导航是“嵌入式AI”或机器人的基础。Batra说:“从A点到达B点如果系统有地图,这很容易;没有的话就是一个开放的问题。导航失败意味着建立在其之上的任何堆栈都将崩溃。”

他们发现,问题在于培训系统花了太多的时间来等待滞后的智能体。“这不一定是他们学得很慢,”Wijmans解释说,“但如果你是在模拟一居室公寓的导航,那么要做到这一点要比在10居室的豪宅导航容易得多。”中央系统的设计是等待所有被调度的智能体完成它们的虚拟任务并返回报告。如果单个智能体花费的时间是其他智能体的10倍,这意味着在系统等待更新信息并发送新批数据时,会浪费大量时间。

Facebook团队的创新之处在于,在这些不幸的落后者完成任务之前,聪明地将其剔除。经过一段时间的模拟之后,收集的所有数据都会被添加到集合中。Wijmans说:“所有这些智能体都在奔波,他们都在做自己的事,而且他们彼沟通。一个人会告诉其他人,‘好吧,我快完成了,’他们都会汇报他们的进度。任何落后于其他人的人都会减少在进行大规模同步之前所做的工作量。”在这种情况下,就可以看到每个工作人员同时停止并同时共享。

如果机器学习的智能感到“难受”,我肯定会在这一点上发生,并且该智能体确实会受到系统的“惩罚”,因为它不会像其他智能体那样获得虚拟的“强化”。效率低下算法重要性被降级,但是他们的贡献仍然很有价值。Wijmans解释说:“无论是成功还是失败,我们都利用智能体积累的所有经验,无论是成功还是失败,我们仍然可以从中学到东西。”

这意味着没有浪费的周期,一些智能体在等待其他智能体完成工作。按时完成任务需要更多的经验,这意味着下一批稍好一点的智能体完成的时间要早得多,这是一个自我强化的周期,可以带来可观的收益。

在他们进行的实验中,研究人员发现,这个叫做分散分布式近端策略优化(DD-PPO)的系统,看起来几乎可以理想地扩展,性能几乎线性地增长,计算能力也随之增加。也就是说,将计算能力提高10倍会得到接近10倍的结果。另一方面,标准的算法导致了非常有限的收益,10x或100x的计算能力只能带来一个小的结果提升,因为这些复杂的模拟器在束缚自己。

这些有效的方法使得Facebook的研究人员可以在指定的时间内,在虚拟环境中生成能够解决点对点导航任务的智能体,可靠性为99.9%。他们甚至表现出了对错误的鲁棒性,找到了一种方法来快速识别出他们走错了路,然后返回另一条路。

研究人员推测,这些智能体已经学会了“利用结构规律”,在某些情况下,这句话意味着人工智能找到了作弊的方法。但Wijmans澄清说,他们使用的环境更有可能有一些实际的布局规则。“这些是我们数字化的真实房屋,他们正在学习西式房屋的布局,”他说。正如你不会期望厨房直接进入卧室一样,人工智能已经学会了识别其他模式并做出其他“假设”。下一个目标是找到一种方法,让这些智能体用更少的资源完成它们的任务。每个智能体都有一个虚拟摄像机,它可以提供普通的和深度的图像,但也有一个可靠的坐标系统来告诉它去了哪里,以及一个始终指向目标的指南针。要是总是这么容易就好了!但在这次实验之前,即使有这些资源,即使有更多的训练时间,成功率也相当低。

Habitat本身不断更新,增添了一些互动性和可定制性

“在这些改进之前,Habitat是一个静态的系统空间,”Wijmans解释说。“智能体可以移动并撞到墙壁,但它不能打开抽屉或打翻桌子。我们这样做是因为我们想要快速、大规模的模拟——但是如果你想解决像‘从我的桌子上拿起我的笔记本’这样的任务,最好那台笔记本确实能够被实际拿起。”

因此,Habitat现在允许用户向房间添加对象,对这些对象施加力,检查碰撞等等。毕竟,在现实生活中,除了在无摩擦的3D结构中滑行之外,还有更多的东西。

这些改进应该会使Habitat成为一个更健壮的实验平台,而且也将使在该平台中进行训练的智能体能够直接将他们的学习成果转移到现实世界中——该团队已经开始了这方面的工作,并将很快发表一篇论文。