手机频道:为您提供一个绿色下载空间! 首页| 软件下载| 文章教程| 应用提交| 最新更新
当前位置:首页 > 手机资讯 > 攻略 > Grounded玩具城堡下面的实验室怎么进去,grounded玩具庭院

Grounded玩具城堡下面的实验室怎么进去,grounded玩具庭院

来源:天空软件网 更新:2023-09-13

用手机看

扫描二维码随时看1.在手机上浏览
2.分享给你的微信好友或朋友圈

吴琦:AI研究一路走到“黑”,从VQA到VLN

作者 | 吴琦

编辑 | 陈大鑫

AI 科技评论按:本文作者为阿德莱德大学助理教授吴琦,去年,他在为 AI 科技评论投递的独家稿件中介绍了 vision-and-language 任务的最新进展。

今年,他再一次来详细介绍有关从VQA到VLN的一切:

正文如下:

Vision-and-Language (视觉与语言)无疑是近几年CV和NLP领域都颇受关注的一个方向,当然,也颇受争议。

有的人认为它是多模态领域最值得关注的方向,是迈向视觉推理甚至是通用人工智能(Artificial general intelligence)的必经之路。

有的人则认为它是纸上谈兵,不“实”用,大部分工作围绕定义新任务和数据展开。

其实于我而言,vision-and-language最大的魅力在于,它不像传统计算机视觉任务(比如image classification,object detection,segmentation)那样是作用在一个有限的,提前定义好 的 label set上, 它所要处理的问题往往是“不可预知的”,往往是在训练集中未见过的形式与组合。

而对于各种新任务与数据,我也并不排斥。如果任务和数据定义的好,能够探索问题的边界在哪里,定位到领域内真正应该解决的问题,我认为这个贡献应比让Acc,IoU或MAP涨一两个点带来的贡献要大。

我自己从2015年开始接触vision-and-language,从image captioning做起,算是这个方向最早的一批,后来又在VQA,Referring Expression,Visual Dialog方向上做了不少工作,随着对这个方向的认知逐渐加深,也逐渐坚定了从事这个方向研究的信心,于是一路走到“黑”,一做就是6年。

去年也在Australia Institute for Machine Learning下面成立了V3A Lab (Vision-Ask-Answer-Act),打算继续在视觉-语言-动作的方向上深耕。

关于vision-and-language是做什么的,我这里就不再赘述,2018年曾写过一篇《万字漫谈vision-and-language》,里面详细介绍了这个领域相关的任务以及一些关键性的工作。

2019年写了《一文纵览vision-and-language领域最新研究与进展》,介绍了一些vision-and-language的新任务以及自己对这个方向的一些思考。


VLN之来龙去脉篇

第一篇VLN的工作是发表于2018年CVPR【1】,是由当时ACRV的博士生Peter Anderson和当时正在ACRV做postdoc的我合作提出的。还记得idea来自于2017年的一次小组讨论,当时vision-language (VL)里面的主流任务就是image captioning和VQA。

由于ACRV比较偏robotic vision,所以大家讨论的话题就围绕在如何将VL放在robotics的环境下来用,也就是现在很流行的embodied-vision,只是当时还没有这个概念。

我们首先想到的任务就是导航(navigation),因为导航是robotics里面比较主流的一方向。我们还给这个项目起了一个名字叫 ‘bring me a spoon’,因为我们认为命令一个5岁左右的孩子去拿一个勺子是一个很简单的任务,而通过语言指令去指导机器人去拿一个勺子是非常困难的。

但当时我们还有一个争论,就是这个导航任务应该放在室内,还是应该放在室外来做,室内的好处是语言指令可以做到细粒度,场景环境多变,参照物体种类丰富,同时也有很多已有的室内环境3D模型来帮我们搭建simulator。室外的好处是有google street view,现成的simulator,也有很多现成的指令。但室外环境的一个问题就是,参照物大部分都是汽车和人或者建筑,区分度不大,同时因为有GPS的存在,显得用语言指令导航有点鸡肋,所以当时很快就放弃了做室外VLN的想法。不过后来还是看到了像TouchDown这种做室外VLN的优秀工作。

还是回到室内VLN的任务上来。我们很快就锁定了用Matterport 3D 来作为我们的室内环境,并选取了90个不同的室内建筑,包括住宅,办公室等。

但是当时关于标注什么样的语言指令(instruction),我们也有一些争议,我主张应该标注类似于‘bring me a spoon’这种更接近人类口语化以及实用场景的指令,同时又需要一定的prior knowledge来完成。

而Peter觉得这样的标注对于第一个VLN任务来说有点难,performance没法保证,他主张先做一个room-to-room的任务,就是只导航到目的地房间,并且给出比较详细的instruction,能更好的反应出vision和language的结合。

正当我们纠结该标哪种类型的任务的时候,Facebook给了我们一个research award,刚好可以拿来标定数据,所以我们决定先做room2room,再做 ‘bring me a spoon’ (也就有了我们后来发表在CVPR2020的REVERIE,这个我们后面会介绍)。

于是我们就开始搭建simulator,用AMT标定数据,有了第一个VLN的simulator叫Matterport 3D simulator以及第一个VLN的任务和数据,room2room (R2R)。这个任务的定义是:给定一个natural language instruction,放置在simulator中初始位置的一个agent,需要通过理解instruction,并观察视觉环境,按照instruction给定的路线,移动到目的地。

图 1: 第一个VLN数据,Room2Room

我们最终收集到7189条路径,每条路径由3个不同的人给出instruction,也就是21567条instructions,在AMT上前后400人参与标注,总标注时间达到1600小时 (可见想提出一个新的,有意义的任务和数据,并不是一件轻松的事情)。

这个工作当时还有一个小插曲,我们这个项目开始于2017年7月,从讨论以及simulator的构建,到数据收集完毕的时候已经10月下旬了,为了赶CVPR deadline,留给我们训练模型,跑实验,写paper的时间大概只有两周时间。当时还刚好赶上ACRV一年一度的年会,所有人拉到海豚岛度假一周。我和Peter一商量,决定扛着服务器过去,在岛上完成模型的搭建和训练,于是就看到别的同事带着泳衣和钓竿,Peter扛着机箱我抬着显示器上船的画面。所幸在deadline 前几个小时实验全部完成,paper也顺利写完,才有了CVPR2018的第一篇VLN的工作。

自此之后,VLN成了继image captioning,VQA,Visual Dialog,在VL领域里的又一重要任务。

我们也第一次将VL引入到了robotic action领域。

下面这张图是VLN的一个roadmap任务和数据方面,继R2R之后,又有了户外VLN,也就是touchdown,也有了基于dialog的VLN,比如CVDN,也有了更加细粒度的标注比如Babytalk,Fine-grained R2R以及最近的RxR,当然还有我们前面提到的,VLN的进阶版本,由我们提出的REVERIE。

而方法方面,也是百家争鸣,有Berkeley的speaker-follower模型,可以作为黄金backbone的Environment Dropout模型,还有获得了CVPR2019 best student paper的王鑫的self-supervised IL+RL模型,以及接下来会介绍的我们提出的基于graph,knowledge distillation的相关模型。

图2: VLN Roadmap


VLN之任务数据篇

Room-to-room 作为VLN的第一个任务和数据,从2018年发表到现在不到3年的时间,以其为蓝本的扩展型任务和数据就已经有四五个。

1)户外VLN Touchdown

正如我们在上面提到的,我们在最开始做VLN是曾纠结过是做室内还是室外,当时决定先focus在室内场景上。但是很快,在CVPR2019上,我们就看到了VLN的室外版本Touchdown【2】,是康奈尔大学NLP大牛Yoav Artzi组的工作。

图3: 户外VLN之Touchdown 数据

这个数据从instruction的长度,复杂度以及形式上看,和我们的R2R都是比较相似的,基本都是由‘方向’指令和’参照物‘组成,中间会穿插关于属性,空间信息的描述,不同的是,这个任务是放在室外,在google streetview的数据框架下来完成,所以参照物大部分是building以及街道上常见的物体。这个数据另外的一个巧妙的构思是,由于室外落脚点的范围大大增加,他们在instruction的最后,给出了一个非常详细的落脚点,比如这幅图中的’stars of the first flag‘,使得落脚点缩小在了一定的范围之内。针对这个数据,起初我认为R2R上的方法应该在这里也会普遍适用,但是经过一些实验之后发现,效果并不理想。

我认为主要的挑战还是来自于室外场景的视觉识别能力比较差,建筑,汽车,路口等参照物的视觉差别不大,如果语言描述不够准确,目前的VL方法很难将其视觉-语言信息匹配起来。不过相信接下来Pre-training+Transformer的组合,或许能解决这个挑战,比如是否可以利用google提供的大规模的Navigation instruction + Google Street View去做预训练,先学习到很强的视觉-指令匹配的特征表达,然后再研究下一步downstream model去如何解决这个任务。

不过,这个数据的另外一个问题是,simulator和starting code极其难用,这可能也是劝退很多人的一个原因。每次投稿关于VLN的文章,遇到reviewer问为什么不在Touchdown上测试一下,就会很头大。不过后来在Google的授权下,他们提出了新的Retouchdown版本,数据和simulator都友好了许多,还是值得持续关注。

2)Dialog VLN

和从VQA到Visual Dialog一样,VLN的另外一个延伸就是Visual-dialog navigation,即基于对话的视觉导航任务。

这个任务的动机是:机器人在完成人类给出的导航指令时,很难一次性的根据一个复杂的指令来完成,中间可能会遇到困难,遇到ambiguous的场景和指令,那么这个时候就需要和人进行二次或多次的交互,获取更多的信息,来完成接下来的动作。

而这种交互,可以是语言(即dialog)的形式,也可以是多模态的,即语言+图像来作为额外的hint。于是,围绕这个方向,也催生出几个不同的VLN数据。Cooperative Vision-and-Dialog Navigation (CVDN)【3】算是我认为最接近这个初衷的任务和数据。给定一个任务(在CVDN中是找到一个特定的房间),navigator agent需要去执行命令,但是每走一步,就会提出一个关于下一步如何走的问题,然后另外一个oracle agent会根据ground-truth的方向来给出相应的语言指令,来指导navigator完成任务。

我个人觉得这个任务最大的挑战就是evaluation,目前paper中提供的evaluation是给定所有的ground-truth对话,然后来计算navigator导航的准确率,但我觉得这个就完全违背了‘对话’的初衷。

这个任务真正吸引人的地方是如何让navigator问出合适的,能帮其获取更多信息的问题,而这一点,在目前的方法和evaluation中,都没有很好的体现。有兴趣的同学,可以去看看GuessWhat?!这个数据,虽然不是在navigation的环境下,但是考察的AI对话能力是类似的,或许有一些可以借鉴的思路。

图4: Cooperative Vision-and-Dialog Navigation (CVDN)

另外两个关于Dialog VLN的任务,一个叫VLNA【4】,一个叫HANNA【5】,都是基于R2R的数据。其中VLNA是会在中途当navigator提出需要帮助时,由另外一个agent给出一个非常直接的关于转多少度,往哪个方向走的指令。HANNA是会给一条新的instruction以及路径交点的图片作为参考。

说实话,我觉得这两个任务的脑洞都有点大,与其这样的‘控制’,不如直接去拿controller控制方向了。VLN的一个基本前提就是无法获取这类详细信息,我个人认为这两个任务有些‘本末倒置’,所以一直都不建议自己的学生follow。

3)REVERIE

在‘VLN的来龙去脉’中我提到过,VLN的任务来源于我们当时讨论的一个idea 叫‘bring me a spoon’,就是通过语言指令去命令机器人完成某一项具体的任务,导航到某一房间只是其中的一环。所以在room-to-room之后,我们就快马加鞭的去设计一个真正符合我们初衷的数据,于是就有了REVERIE:Remote Embodied Visual referring Expression in Real Indoor Environments 【6】。

下图给出了该任务的一个示例,机器人被随机放置在一个位置,然后给予一个与远处物体相关的指令,如‘Bring me the bottom picture that is next to the top of stairs on level one’,机器人需要根据该指令和感知的视觉图像,找到该指令所指定的目标物体。

值得注意的是,目标物体在起点是无法被观测到的,这意味着机器人必须具有常识和推理能力以到达目标可能出现的位置。并且在当前阶段,我们仅要求机器人找到目标物体(如给出目标物体在视觉感知图像中的边框,或者在一系列候选物体中选出目标物体),并不需要agent真的将目标物体带回来,因为当前场景还是不可交互的。

图5: REVERIE 数据

与其他的基于视觉和语言的任务不同,REVERIE衡量任务完成情况主要根据是否找到了目标物体,而R2R则是根据是否到达了目的地点,EQA根据是否回答了问题。因此,REVERIE更加清晰地反映了机器人需要理解语言、逻辑推理、图像物体定位等能力的必要性。此外,REVERIE中简洁的语言指令充分模拟了真实世界中人类使用家政机器人的场景。

这些简洁的指令也使得REVERIE任务与使用详细繁杂导航指令R2R任务区分开来,并将推进高层次视觉-语言推理的研究和机器人的广泛应用。相对Referring Expression任务来讲,REVERIE任务更加复杂,抛开REVERIE任务需要首先导航到正确位置,即便机器人到达了正确的地点,它仍需要环顾四周,从全景图像的所有物体中找到与语言描述一致的目标物体,而Referring Expression只需要在一张图像中找出文字语言所描述的物体。

为了提供物体级别的信息,我们扩展了R2R simulator,使其可以提供物体在不同观测点的边框。REVERIE数据集总共21,702条人工标注的自然语言指令,平均长度18个单词,涉及了86个建筑的10,318个位置的全景图像,涵盖了4,140个目标物体。

我个人认为REVERIE是目前与现实需求最接近的一个数据,也是最有挑战的一个数据,目前的SOTA的准确率,也仅在20左右,离human-performance 还有非常大的差距。相信这个任务和数据还有比较大的探索空间。

4)细粒度标注

在R2R中,给定一个很长的语言指令(instruction),都会有一条对应的行走路径,但是这条路径是作为一个整体和语言指令来对应的,我们并不清楚这条路径中的哪一段到哪一段是和指令中的具体哪一部分(sub-instruction)来对应的。比如,一个完整的指令是:‘Enter through the glass door. Go up the wooden plank stairs on the right. Enter the doorway next to the bear head and wait there.’。

可见这个指令当中其实是有好几个片段的,比如‘Enter through the glass door’ 就是一个单独的指令,应该对应一段较短的路径, 而 ‘Go up the wooden plank stairs on the right’ 是另外一个。

在我们原始的R2R当中,并没有额外的标注来给出这些划分,以及其对应的路径。提供这些路径会很有意义,比如,可以用来作为额外的监督信号,提升机器人的短程导航能力,可以用来作为标定新的dialog VLN的基础,也可以作为新的evaluation metric,除了评价最终是否到达终点,还可以评价中间过程的导航的准确性。

图6: Fine-grained VLN instructions

于是在EMNLP 2020上我们就额外标注了这些细粒度的对应关系,并提出了Sub-Instruction Aware Vision-and-Language Navigation【7】。ACL2020上的Babywalk【8】也讨论了类似的问题,认为通过对更短的指令的baby-steps学习,能够使模型具备更好的导航能力,尤其是在更加长的指令的情况下。最近Peter的新工作RxR提供了更加细粒度的标注,无论是从语言还是视觉方面。


VLN之方法创新篇

从方法层面来看,VLN也可谓是百花齐放,发展的思(套)路其实也基本是沿着VL的主流模型的发展而来。比如最早还是CNN-RNN,Seq-2-Seq那一套,然后是各种各样的attention,以及RL的引入,后来随着GNN的发展,使用图模型也成为VLN中的一类方法,再到目前基本被transformer和VLBert类型的方法垄断。

1)经典方法

当时R2R数据发表的时候,我们选取了最简单的seq-2-seq 模型来作为baseline,简单来说就是将输入的language看成一个sequence,输出的action也看成是一个sequence,然后用LSTM去decode。这个方法比较简单直接,但是作为最初的baseline,也算是沿袭了经典的vision-language 模型的套路。

另外一个比较经典的模型就是speaker-follower,这个模型当时也拿到了第一次R2R比赛的冠军,它的思路其实来源于referring expression中的speaker-listener,就是把image captioning和referring expression comprehension放在一个框架下训练,互相促进。那么在VLN的语境下,就是有一个speaker model去通过观察路径来生成对应的instruction,同时再通过理解这些instruction去完成导航,通过这种训练方式,既提高了模型对视觉,语言输入的认知,又增加了数据去训练更好的导航模型。所以这个模型后来大家普遍只去使用speaker部分去生成更多的训练数据,当作了一种data augmentation的方法。

另外一个非常经典的方法是拿了CVPR 2019 best student paper的,来自Xin Wang和William的RCM【9】模型。这个模型将Reinforcement learning (RL) 和 Imitation learning (IL) 结合在一起去训练VLN模型,尤其在unseen environment上效果明显。RL+IL的框架也成了后来VLN模型里的标配。我们在ECCV2020上也提出一个方法【10】,就是通过分别在IL和RL branch上设计不同的loss和reward,进一步提升了结果。

Environment dropout【11】也是经典方法之一。这个方法的出发点其实还是上面提到的speaker-follower当中的speaker。我们知道speaker model可以用来做数据增广,但是增广的数据和原始数据的分布非常类似,并没有增加什么数据多样性,所以并不会对模型的泛化能力有太多帮助。

而在Environment dropout的方法中,会使用一个特殊的envdrop layer对环境的视觉特征做处理,随机的去移除掉该环境当中的某一类物体,以此来增加环境本身的多样性,并进一步的增加增广的数据的多样性,增强模型的泛化能力。这个数据增广的方法,也成了后来VLN模型的一个标配。

接下来重点介绍一下我们去年提出的几个方法,希望对大家有所启发。

2)Soft Expert Reward Learning

VLN最大的挑战之一就是要求 agent 在没见过的环境中作出 “恰当” 的动作。这要求 agent 能学习人类的行为,理解和探索场景,而不仅仅是简单的记住场景。

上文提到过,目前的主流方法都会采用IL+RL的形式。IL说白了就是依赖于将 expert 行为视为强监督信号,即行为克隆 (Behaviour Cloning, BC),可以使 agent 在见过的情况下表现更好;但是 agent 在没有见过的环境中会遇到问题,因为每一步小错误的累积,终而酿成大错。

RL(强化学习)可以有一定程度的弥补,但是强化学习奖励中的 reward shaping 也有待改进:比如在一种环境或者任务下设计的 reward 函数可能无法很好地用于其他场景;又如在许多实际和复杂的任务中,其实很难将具体的 reward 量化为类似游戏分数的数值。而且人工指定的 reward 通常是针对特定功能定义的,所以不可避免地会导致缺乏对环境的全面考虑。奖励功能的设计需要仔细的手工调整,目前针对特定环境设计的 reward 还存在泛化问题,这都可能会影响模型预测动作时的性能。

我们在ECCV2020上的一篇文章【12】,利用soft expert reward learning的方法, 可以直接从 expert 演示中学习 reward 函数,以克服 reward engineering 问题,同时本文也针对了 VLN 任务的泛化问题进行解决。

具体而言,我们提出了一个软专家蒸馏模块 (SED) 鼓励 agent 尽可能像 expert 一样行事,但是以 soft 的方式,而不是直接的硬 copy expert 的行为。

图7: Soft expert reward learning

如上图说是,我们希望训练一个 distillation network 预测随机初始化但固定参数 random network 的输出,以此来学习 expert demonstration 的分布。如果一个模型给出的动作预测能够更符合expert distribution,那个这个预测动作得到的reward就更大,反之则越小,所以这里看成是以一种更soft的方式去判断预测动作是否更符合专家(人类)动作,以提高模型的泛化能力。

从直观上来讲:给定一定数量的输入数据点,网络需要拟合这些数据点在随机投影空间中的结构。这样我们就可以发现,在有更多训练数据的地方,distillation network 会更好的 fit random network;而训练数据分布稀疏的地方,distillation 网络就不能很好拟合 random network。

我们将 expert demonstration 作为这样的训练点,进而就可以通过预测误差来判断 agent 有没有表现出类似 expert的举动。这样就可以得到一个很强的密度函数,它可以表示 agent 在特定环境 (state) 下与 expert 执行类似动作的可能性。较高的预测距离将导致较低的SED奖励,这说明拟合的不够好,因为 expert 分布比较稀疏,反之亦然。我们发现这个模块增加了的泛化能力,在unseen environment上表现出色。

3)Entity Relationship Graph

Attention(注意力机制)一直是vision-and-language里面的万金油模型,所以在过去有关VLN的工作中,研究者们普遍使用简单的语言-视觉跨模态注意力机制 (cross-modal attention) 来学习和利用二者间的对应关系,即:在每一个时间点,关注与当下的全景图 (panorama) 最相关的指令,并选择与该指令最相关的单视图 (single-view) 方向作为下一步导航的方向。

然而,我们认为这种方法并不能高效地学习语言或视觉信息,同时忽略了场景中能够辅助定位的物体。

比如,在指令‘With the sofa on your left, turn right into the bathroom and stop’中包含了三种关键的语境信息:场景Scene,物体Object和方向Direction。这三种信息并非独立,而是相辅相成地明确了导航的任务:

Agent首先需要到达沙发Sofa (物体) 的右侧,然后右转turn right (方向) 至浴室bathroom (场景) 里,最后才停止导航stop (方向) 。同时,语言中的这三种信息与三种视觉信息是有对应关系的,即场景特征 (scene features) ,区域特征 (regional features) ,和方向信息/机器人动作 (directional/action encoding,我们将方向/动作归纳为一种视觉信息) 。

我们可以想到,学习这些复杂的信息很难,并且学习的关键是了解语言和视觉二者内部 (intra-) 和之间 (inter-) 的关系。

图8: 命名为视觉与语言对象关系图

图(Graph)网络在各个领域和问题上均有广泛的应用,它常被作为模拟不同对象间关系的方法。于是我们在NeruIPS2020上提出利用图网络来进行语言和视觉的学习,命名为视觉与语言对象关系图 (Language and Visual Entity Relationship Graph) 【13】。该关系图包含两个子图,分别为语言子图和视觉子图,两个子图分别学习指令中不同部分文本间的关系和不同视觉信息之间的关系,同时二者进行交互,以学习并利用跨模态信息的关联来指导导航。

在每一个决策时刻,此方法对于每一个可探索的方向 (navigable direction) 都会构造一个独立的对象关系图以推测该方向的动作逻辑/评分 (action logit) ,评分最高的方向将会被选择作为导航方向。其中, 语言子图,即语言注意力图,由双层注意力机制构成。

首先,图网络中的每一个节点先利用agent的状态 (state) 进行对语言的关注。我们称关注结果为特定语义 (specialized contexts) ,即每一个节点分别提取有关场景、物体、方向的文本信息。

其次,图网络中的每一条边借助任意一对特定语义进行关于语言的第二层关注,由此模拟两种不同特定语义之间的关联,例如场景-方向间的文本关联。我们称此关注结果为关联语义 (relational contexts) 。

语言注意力图所产生的特定语义和关联语义将对理解视觉和方位信息给予关键的指导。另一个图叫视觉子图,即语言调控的视觉图,其对视觉信息的处理同样包含两个步骤。

首先,三种视觉信息,场景特征 (scene features) ,区域特征 (regional features) ,和方向信息 (directional encoding) 会分别从观察中提取,并初始化为视觉图中的三个节点。在初始化过程中,每一个节点的信息都经由先前得到的特定语义调控,从而使得初始化的各种视觉特征与指令里的关键文本相对应。借此,两个子图之间建立了第一个链接,即关于特定语言和特定视觉信息的链接。

为了模拟和学习不同视觉信息之间的关系,我们允许视觉图在每一条边上进行关于任意两种视觉特征的信息传递 (message passing) 。每一条信息的传递均由先前得到的关联语义调控,从而使信息中不同视觉特征的交互结果与指令里描述关系的文本相对应。借此,两个子图之间建立了第二个链接,即关于关联性语言和视觉信息的链接。在一轮信息传递完成后,每一个节点将会更新自己的信息,即将自身的初始信息与其所接收的信息相加。

最后,对于每一个可探索的方向,三个更新后的视觉节点将被级联,然后投影成一个决策分数。在所有可探索方向中,决策分数最高的方向将被选取为在该时刻的导航方向。和上文中的方法一样,我们这里还是采用了模仿学习 (Imitation Learning) 和强化学习 (Reinforcement Learning) 的混合策略,以在高效学习的同时,确保模型在非训练数据上的泛化能力。

4)Recurrent VLN BERT

随着最强模型Transformer和general pre-training的遍地开花,以及各种各样的vision-language BERT的出现,VLN也成了Transformer的又一战场。

PREVALENT【14】是第一个将pre-training引入到VLN中的工作 (PRESS也曾使用预训练模型来提取feature,但是并没有针对VLN的任务进行Pre-train)。其模型结构是一个非常标准的transformer,利用其self-attention机制分别去encode视觉和语言信息,然后利用cross-attention去做特征的融合,然后利用BERT中常见的MLM任务以及一个和VLN相关的Action Prediction去训练模型。这个模型的好处是确实足够通用,在VLN的多项任务上,包括R2R,CVDN,HANNA都取得了state-of-the-art的结果,但是确实训练起来需要大量的数据以及计算资源和时间。

于是我们就想,是否能够重新的设计一下transformer模型,使它更加的符合VLN任务的特性,同时能够直接去继承之前在非VLN数据上训练好的VLBERT模型参数,使得结果有所保证。

这就意味着要解决两个问题:VLN与其他vision-and-language的本质区别是 VLN可以被看作是一个partially observable Markov decision process(即部分可观察的马尔可夫决策过程),这其中的未来观测是取决于agent的当前状态和动作。同时,在每个导航步骤中,视觉观察仅对应于部分指令,这就需要agent能够跟踪导航进展并正确的相关的子命令来获得有用的信息以供决策。

另外一个难点是,直接将VLBERT pre-training模型应用过来会有巨大的计算要求,因为每次导航会是一个很长的过程,不断的在冗长的视觉与语言序列上执行self-attention会在模型训练时消耗大量的资源,正如PREVALENT那样(我猜测,这也是为什么PREVALENT中的预训练样本都比较短,都是单步)。

在这次CVPR2021上,我们就新提出一个Recurrent BERT【15】去解决上面的这两个问题。不同于通常需要数千个GPU小时并使用大规模数据集进行预训练的方法,我们这项工作的目的是使VLN的学习能够充分受益于预训练的VLBERT。那么基于先前提出的VLBERT模型,我们在其原始体系结构(如图)中实现了一个Recurrent(循环)功能,以建模和利用与历史相关的状态表示,这使得我们无需显式定义memory buffer或应用任何外部循环模块,比如LSTM。为了减少内存消耗,我们还控制self-attention仅将语言tokens视为key和value,而不将其视为导航期间的query,这与LXMERT中的跨模式编码器很相似。这种设计极大地减少了内存使用,因此可以在单个GPU上训练整个模型而又不会降低性能。此外,与最初的VLBERT一样,我们提出的模型具有多任务学习的潜力,它能够解决导航任务中的其他视觉和语言问题。

图9: Recurrent BERT

我们将这个recurrent bert放在了R2R和REVERIE上分别进行测试,如下图所示,我们的模型的state初始化是transformer中常见的CLS token。而这个CLS token是可以从其他pre-training的模型继承而来,比如VLBERT中的OSCAR模型或者上面提到的PREVALENT模型,这就使得我们自己不需要进行耗费资源的pre-training(我们确实也没有这个资源)。而这个CLS token将作为关键的state表示,在随着导航的过程当中,不断的更新并传递下去,而模型(transformer)每个step的参数是共享的。所以其机制很类似RNN,只不过传递状态是CLS token,而每一个cell又是一个transformer,所以我们把它叫做recurrent BERT。

图10: Recurrent BERT in VLN

如下表格所示,我们的模型取得了SOTA的结果,在PREVALENT pre-training的加持下,达到了63%的成功率。而我们模型的好处就是灵活,可以受益于各种pre-training,而我们的整个训练过程只用了一块11GB的GPU (实际上我们把batch-size设成16,并只用了9.2GB显存)。所以可见‘穷‘组同样可以玩转BERT,做出高质量的研究。我们这个工作在这次CVPR中拿到了3个strongly accept的高分,是一篇Oral paper。

表1: R2R最新结果

5)KB knowledge

最后一篇想给大家讲讲的工作也是来自于CVPR2021的一篇oral,是我和北航刘偲老师以及她的学生合作的paper,这篇工作主要讨论了如何用common-sense knowledge去解决REVERIE的任务【16】。

我们上面在讲REVERIE的时候,其实就说过,这个特殊的导航任务需要大量的prior knowledge去解决的,因为从语言指令中能够获取的信息很有限。比如,我们的一个指令是:“bring me a cushion”, 我们人是知道cushion通常在sofa上,而sofa又通常在living room,而前往living room通常要到1楼,而living room也通常有电视等关键物品。

这些‘常识’很明显是无法从上面短短的语言指令中去获得,而通过目前有的小规模的VLN数据也很难去学习到这种相对复杂的‘常识’。于是一个自然而然的想法就是如何引入common-sense Knowledge来解决REVERIE,甚至是VLN的问题。在这篇工作中,我们提出了一个Cross-modality Knowledge Reasoning (CKR) model (跨模态知识推理模型)来引入knowledge-base。

图11: 跨模态知识推理模型

如上图11所示,我们的方法还是基于transformer encoder-decoder的一个结构,用Transformer分别去处理语言和视觉信息,不同的是,我们利用视觉信息去预测出物体标签之后,再利用标签去一个pre-defined knowledge base中获取相关的知识,再结合语言信息一起,送入到一个Knowledge-enabled Entity Relationship Reasoning 模型中去进行特征推理。

下图12展示我们的推理过程。

具体而言:我们会从场景图像中先检测出相关的物体,然后将检测到的物体组成一个全连接图,代表物体间的内部关系。另一方面,我们会通过检测到的物体,去knowledge base(我们这里用的是ConceptNet)去提取相关的信息,比如‘枕头常在床上’,‘床常在卧室’这类常识信息。

这些common sense knowledge其实也组成了一个graph,我们将两图合并之后再使用图卷机去对图上节点feature进行更行,从而得到关于‘知识’的特征表达,再结合经过self-attention的图像特征,送到后面的导航决策中,去决定接下来执行的操作。

图12: Knowledge-enabled Entity Relationship Reasoning

从表2中可以看到,我们这个方法在REVERIE上取得了非常好的效果。

表2: REVERIE最新结果


VLN之未来思考篇

接下来跟大家聊聊我在VLN这个方向上关于未来的一些思考。

首先从任务上来讲,目前几个关键的数据如R2R,Touchdown,CVDN还有REVERIE应该已经把这个任务探索的比较全面,如果非要说还缺什么的话我觉得就是如何能够让agent和环境进行一定程度的交互,比如能够拉开抽屉,打开柜子,拉开窗帘等。

这种交互可以使agent处理更加复杂的信息,去探索并寻找视觉‘不可见‘的物体,比如放在抽屉里的钥匙需要拉开抽屉才看得到,打开橱柜才能找到勺子。这就使得VLN这个任务更加依赖于外部知识,并且更加的贴合实际。

当然,设计这样的任务和数据,需要我们设计新的simulator,目前的Matterport 3D simulator并不支持场景交互的功能。另外一个方向是sim2real,就是如何将VLN从simulator转移真实的机器人,真实的场景中去,目前已经见到一些尝试,但是真实场景普遍简单,希望后续能有所突破。

从方法层面来讲,我比较看好如何能将meta-learning应用到VLN中来。VLN中最常见的一个问题就是泛化能力的问题,无论是R2R还是REVERIE,所有的测试环境都是在训练中为曾见过的环境,即Unseen environments。这必然导致训练和测试有一定的gap,所以我们常看到模型validation seen上表现不错,但是unseen上结果不好,我们上面提到的Soft Expert Reward Learning也是想解决这个问题,但是还不够彻底。

在传统的视觉导航(Visual Navigation)上,我们已经看到一些将meta learning引入的方法,比如Yuke zhu就在AI2Thor的工作中引入了MAML。我觉得在VLN上引如meta-learning应该也会解决seen和unseen存在domain gap的问题。

另外一个方向还是引入prior-knowledge,common sense knowledge,这绝对是VLN乃至vision-and-language中至关重要的一环。

某些信息是从数据中很难学习到的,一定需要外部的知识进行辅助。当然现在也有认为pre-train的transformer是可以隐式的学到这些知识的,但是我认为显式的知识表达和推理更具备可解释性和可靠性。还有就是Transformer,Transformer很好很强大,但是很明显直接把它套用的VLN上来并不会有太大的提升,并且会占用很大的计算资源,如何对Transformer进行魔改,使得它能够更好的适用于VLN的任务,并且支持general pre-training,也是一个很值得研究和讨论的问题。

我们的Recurrent BERT算是走出了第一步,其实我们还有另外一个版本的变种,是利用了LSTM做sequential BERT,在VLN的各项任务上都表现很好,甚至优于Recurrent BERT,不过没能被CVPR接收,希望后面能和大家见面。其他方向还包括如何利用pre-exploration去建立semantic map,如何和semantic SLAM结合等等,最近也看到了类似的工作。

最后想和大家分享一些high-level的想法。

最近我一直在思考,目前的vision-language navigation的方式是否是正确的或者唯一的。目前的基本思路是,人给一个指令,机器去完成,也就是让机器去代替人去完成或执行动作,并且前提假设是人对这个房间足够的了解,而机器确一无所知。

这个任务看似‘美好‘,但其实和现实有点脱节。机器的任务很大程度上应该是辅助人,提供帮助,而非替代人,也就是所谓的Human-centred AI。那么根据这个思路换个角度去思考VLN,是否应该是换成机器对整个房间信息了如执掌,而人对新环境非常陌生,希望机器能够带领人或者指导人去完成导航?

比如我到了一所新学校,想去某某某的办公室,又比如到了博物馆,希望机器人带我去看某件藏品,而机器应该能够根据人的query和现实环境和情况结合,给出合适的指令,或者直接带领人去到目的地。同时机器应该能够针对不同的提问者做出不同的响应和路线规划,比如给老人带路应该尽量避免楼梯等等。这其实有点像Google Map的室外导航,但是是放在室内,没有GPS,并且在query相对开放且复杂的情况下。希望这个‘另一维度‘的思考能给大家一些启发。


VLN之广而告之篇

VLN是个新方向,但相信一定不是昙花一现的一个方向,解决这个任务需要结合计算机视觉,自然语言处理,机器人,知识图谱以及人机交互等各个方向,是真正的跨模态,多模态任务。希望大家能够多多关注这个方向以及更广泛的 vision-and-language 方向。

研究方向和而不同,不一定非detection/segmentation不做,也不一定非MIT/Stanford不follow,同辈好友中有拳石兄在Explainable AI上默默耕耘,也有含望哥在Causal reasoning上抛砖引玉,希望我们的“火花”能给大家带来不一样的“烟火”。

最后要给我们V3A Lab 打一波广告。

实验室主页:https://v3alab.github.io

我们Lab主要做vision-language-action 相关的跨模态研究,包括image captioning,VQA,referring expression,text2image synthesis以及最近重点关注的VLN,仅2020一年就在 CVPR,ECCV,NIPS,AAAI,ACMMM,EMNLP, TPAMI等顶会顶刊发表文章20余篇,并且收获两项VQA相关的比赛冠军。

我们team不算大,目前有两个Postdoc,5个PhD,由于疫情原因,我们大部分都还在远程工作,但丝毫没有影响我们的产出。接下来我们还会有几个PhD和Postdoc的位置放出,恳请大家多多关注!




  • <

    猜你感兴趣

    玩家评论

    [!--temp.www_96kaifa_com_cy--]
    Copy 2018 www.sky-xz.com. All Rights Reserved. 藏ICP备20000196号   
    本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。