建立一个AI task Embodied Question Answering (EmbodiedQA),实现以下功能:
- 构建一个agent
- 提出一个问题(e.g. What color is the car?)
- 在3D虚拟环境中导航收集视觉信息以回答问题(vision, language, navigation, answering)
要实现这些,这个task需要具备以下能力:
- 语言理解——问题是在问什么?
- 计算机视觉——‘car’ 长什么样?
- 敏锐的洞察力——agent是随机诞生的,它并不一定一开始就看到“答案”所在的区域,因此它需要理解问题、寻找区域、转化目标
- 常识推理——如同人寻找汽车要到户外去一样,agent需要具备类似这样的常识推理。(agent并没有被提供地图一类的东西,而是独自诞生、独自寻找)
- 语言基础——传统视觉语言模型的缺点是缺乏语言基础,它们往往难以把文本和图像像素联系起来。EmbodiedQA不依赖于数据机,还是以目标驱动策略,agent把问题分成一系列动作而非像素。(‘garage’ means to navigate towards the exterior of the house where the ‘car’ is usually parked).
- Credit Assignment——为了回答一个问题,agent需要分解任务并执行很多动作,怎样达到目的呢?这就需要Credit Assignment。
Credit Assignment,有翻译成“信用分配”,还是有些模糊,有人翻译成“功劳分配”,有些“能者多劳”的感觉,通俗地解释是:认为表现好的组件就多给它一些权重,这样对实现目标更有利。
模型训练:
trained from raw sensory input (pixels and words) to goal-driven multi-room navigation to visual question answering.
所做工作:
- 提出了一个AI task(EmbodiedQA),where an agent is spawned in an environment and must intelligently navigate from egocentric vision to gather the necessary information to answer questions about the environment.
- 建立了一个hierarchical navigation module 将 navigation 分解成一系列 actions,并构造了一个 controller 管理它们(When the agent decides it has seen the required visual information, it stops navigating and outputs an answer.)。
-
模仿学习(Imitation learning)、增强学习(Reinforcement Learning),test generalization to unseen environments.
-
设计了一个的3D世界模拟真实场景House3D。
-
构建了一个dataset of visual questions and answers grounded in House3D.
-
将 House3D 和 Amazon Mechanical Turk (AMT) 结合, allowing humans to remotely operate the agent in real time
- 人类学习新东西有一个重要的方法就模仿学习,通过观察别人的动作从而完成学习。因此,模仿学习Imitation Learning就是这样一个应运而生的方向:希望机器人也能够通过观察模仿来实现学习。模仿学习的终极目标就是One Shot Imitation Learning (一眼模仿学习),能够让机器人仅需要少量的示范就能够学习。
以打砖块游戏为例,玩家需要左右移动屏幕底部的木板,将球接住并弹回到屏幕上半部分,当球触碰到一个砖块,砖块就会消失,玩家的得分就会上升 - 也就得到了reward。
如果想要让神经网络学着玩这个游戏。网络输入将会是屏幕图片,网络输出将会是三个动作:左移,右移,发射(球)。我们可以将其视为一个分类问题 - 每一帧画面,我们都必须做出决定:左移,右移还是发射。
尽管听起来比较简单,但我们需要大量的训练数据。当然,我们可以通过记录职业玩家的玩法来获得训练数据,但那不是机器真正该有的学习方式。
我们不需要谁成千上万次地来告诉机器每一帧的动作该怎么决定,我们所需要的仅仅是让机器在做了正确的决定后获得适当的反馈(reward), 然后让机器自己去领悟其余的东西。
这就是强化学习尽力在完成的任务。强化学习的地位处于监督学习和无监督学习之间。尽管监督学习给每条训练数据都标注了类别,而无监督学习什么类别也没标注,但是强化学习却给了稀疏的并且时间上有延迟的标注 - 奖励反馈(reward)。全靠这些奖励反馈,强化学习中的agent才能学习如何在环境中行动。
尽管这种思想比较符合咱们的直觉,但是实践中还是面临着许多挑战。还是拿打砖块游戏举例,当机器打掉了一块转,然后得分增加了,这常常与得分以前的最后几个动作没啥关系,而是与很多步以前的动作(比如你调整底部挡板的位置的动作)有更大的关系。
这个问题叫credit assignment problem(信用分配问题) - 要确定某次得分与之前哪些动作有较为直接的关系,是一个比较难的问题。
一旦机器找到了一种获得奖励反馈的策略以后,是应该一直坚持它还是尝试一些别的路子来获得更大的奖励反馈呢?
这个问题叫explore-exploit dilemma(探索-开发困境) - 要一直采用已知的可行策略还是探索一些新的可能会更好的策略呢?
强化学习是动物学习过程中所采用的一种重要模型:爸妈的表扬,学校的成绩,工作中的薪水 - 这些都是奖励反馈的实例。
信用分配问题和探索-开发困境也都是我们每天都面临着的问题,这也是为什么要探索强化学习的原因;在这个探索过程中,游戏为我们提供了一个很棒的找到新方法的沙盒世界。(引自 https://blog.youkuaiyun.com/xg123321123/article/details/77504032)
EQA和之前的一些工作的对比:
VQA – 视觉问答中没有主动的动作,模型的输入只是单一图像配合文本类型的问题,模型在封闭答案集上分类选出最适合的答案,也有一些视觉问答任务是基于的生成式模型,根据图像和文本生成一段文本回答。
Video QA – 任务同VQA相似,将VQA中的单张图片的输入替换成视频(处理时往往采样为多帧的图像)即可。
Visual Dialog – 通过给模型输入单张图片和文本句子,使得模型根据给定的图片与用户进行对话的生成。
EQA – 本篇论文的工作,给定agent一个文本问题,需要agent自行规划探索路径进行主动的在虚拟环境中进行搜索关键位置,找到符合问题的场景后,利用探索的路径过程中得到的图像信息,并最终给出答案。
总的来说,EQA比VQA更具有挑战性,因为agent在主动探索的时候,探索路径的随机性更大,较VQA更难收敛;但是其优点是可以去找到更有利于agent生成正确答案的图像信息,也能让agent在学习的过程中学习到一定的推理信息。
实验结论分析:
1)所有的baseline的探索效果都非常差,主要表现在agent停止时,其距离目标的位置比出现在环境时还要远;
2)记忆模块可以帮助提高性能。一开始出现在环境时基本都是距离终点差不多远,而具有记忆模块的系统可以在最终的时候距离目标终点更近;
3)ACT的系统效果最好。利用Q-问题编码结合作者提出的系统可以在停机的时候距离目标位置最近,而Q问题编码+强化学习+作者的系统,达到了最好的回答效果;
4) 利用RL的模型,会让agent更多的进入目标物所在的房间,但是距离目标物的距离不能保证达到最小,这主要是因为RL具有更大的探索可能性,但是这样个缺点并没有影响agent回答问题的精度;
5)最短路径+VQA的系统没有达到非常好的效果,主要是因为agent根据最短路径走以后,到达终点时,其不一定正好面朝着目标物或可能视野有一定的限制,这导致了agent在回答问题时可能存在障碍。
总的来说,FAIR提出的这个新任务虽然目前回答的问题还比较简单(主要是某一个房间里具有什么目标,某些目标的颜色是什么等),但是EQA需要agent具有更多的操作和表现(需要有视觉、语言两种模态信息的处理,同时需要对路径进行规划,对环境进行探索,并最终得到答案的得分),涉及到多模态信息的融合、处理,虽然是一个初探性的任务和工作,但确实是一个极具挑战性和有趣的任务。另外,利用这样的虚拟环境,让agent具有真正去交互的环境,随着训练的深入,可以帮助agent自发性的学习到一些常识性的知识(例如厨具多在厨房里,车子多在车库里,浴缸多在洗手间中),这对后续的通用人工智能的研究和发展未尝不是一个崭新的尝试!