2021 CVPR 《Structured Scene Memory for Vision-Language Navigation》论文精读笔记
Abstract and Instruction
- SceneMemoryVLN:
- 结构化的外部memory表示,分开捕获视觉信息和几何空间的信息。就是graph结构,用node编码视觉信息,edge编码空间几何信息以及连接信息
- 用图结构存储,能够精确的存储和直接调用过去的memory。这个图也是动态生成的
- 用一个collect-read controller来根据当前的text,动态读取memory中的内容
- 能够获得全局的环境布局,并且把action space设置成map上可达位置的集合,用于全局决策的path生成。避免了陷入局部最优决策
- 针对全局action空间会逐渐夸扩大的问题,提出了基于前言探索的决策策略,就是用了一个trontier node,尝试前一个node行不行,不行就回来,如果行就继续走下去,像是在map上试错
- 目前的vln方法:
- 更强的学习范式
- 更多的监督信息
- 更高效的多模编码
- 更智能的path设计
- 基本上都是在基于seq2seq的框架,就是映射Instruction和observation到actions上
- seq2seq框架的问题:
- 由于使用了recurrent hidden state,因此保存的信息都被混合在了一个hidden里面
- 这阻碍了agent直接访问其过去的观察并了解环境布局
- Decision被局限在一个local的action space,容易陷入局部最优
- 就像Figure 1b,用recurrent hidden state,只能感知到蓝色区域的,并且让决策陷入了一个local action space,就是绿色区域的,而实际的最优决策是p2处走
- 数据集:R2R和R4R
- external memory参考:Alex Graves, Greg Wayne, and Ivo Danihelka. Neural turing machines. arXiv preprint arXiv:1410.5401, 2014
- R4R参考:Vihan Jain, Gabriel Magalhaes, Alexander Ku, Ashish Vaswani, Eugene Ie, and Jason Baldridge. Stay on the path: Instruction fidelity in vision-and-language navigation. In ACL, 2019
Approach
- 环境空间被视作一些离散点集合,点之间的可达性都是给出的
- 符号表示:
- 文本特征:
- 方向特征:
- 视觉特征:
- 文本特征:
- agent有一个navigation state
- 通过instruction的text feature和所有可达viewpoint的visual feature,以及上一个hidden得到
SSM construction
- 有向图
,V里面的node都是对应之前走过的地方,edge表示它们的连边 - 节点embedding,主要是视觉特征,编码位置v处的全景特征
是第k个img的特征 是在位置v处可达位置的数量
- 边embedding:
表示u是当前位置v的可达节点,第k个viewpoint的方向特征,u是v的这个方向的可达节点
- global action space含义
- 每个节点有
个可达点,因此给每个可达点都设置一个子节点,即 ,每个子节点表示一个可达的viewpoint - 图里面所有的sub nodes构成了action space
- 相比之前的VLN agent只能访问当前可达的viewpoint,对应这里的当前节点的sub node
- 能够看到图里面所有sub node的好处就是,能够从当前的action直接跳到好几个时间步之前访问的sub node
- 每个节点有
- graph的更新
- 动态生成graph,初始化是开始节点
- 在时间步t,选择了
的action,转移到了 ,这时候是一个sub node,然后会产生一个新的节点 ,这时候原本的sub node就被移除了 - 同一个时间段,可能有多个sub node指向同一个place,这些sub node属于不同的node,就是从不同的地方都能到达那个place
Fine-Grained Instruction Grounding based Iterative Reasoning
用一个collect-read controller来控制下一步决策,它从Instruction中获得percepti和object这两个相关的信息
Perception-and-Action Aware Textual Grounding
- Instruction有的是描述action的,比如turn left,有的是和landmarks相关的,比如bedroom
- 因此用了两个不同的attention model从文本中学习
- 用当前的hidden state和Instruction,计算当前perception和action相关的文本信息,就是算了score之后加权和
- 提取出信息后,就可以生成perception和action对应当前hidden state的state
- 文本相关信息提取完了,开始提取视觉信息,因为视觉信息和perception 信息是相关的,所以这里相当于做了一个perception部分的融合
- 然后还需要做一个action部分的融合,这里是把action state和边信息做融合
Iterative Algorithm based Long-Term Reasoning
- 通过在节点之间信息传递进行视觉和方向上的特征更新
- 在更新S次之后
- 此时的visual和orientation特征,分别表示为
和 - 是对节点v的邻居,进行visual和orientation的特征求和,得到当前节点的邻居信息
- 然后用了GRU,把邻居信息和自己的visual,orientation信息融合,得到更新后的节点信息
- 此时的visual和orientation特征,分别表示为
Frontier-Exploration based Decision Making
Global Action Space based One-Step Decision Making
- 每个节点都有好几个sub node,他们都是可达的,要计算对每个sub node的分数
- 当前主节点的visual和orientation信息:
- 当前主节点的perception state和action state:
- visual信息对应文本的perception state,orientation信息对应文本的action state
- 当前主节点的visual feature和子节点的visual feature进行拼接,然后和主节点的perception state一起做一个计算,得到perception的分数
- 当前主节点的action state和子节点的edge feature进行拼接,得到action的分数
- 需要把这两个分数融合成一个分数,每个sub node都有两个分数,再做一个加权的softmax,权重是根据主节点的perception state和action state得到。权重控制perception和action哪个部分对decision的占比更高
- 最后的action
是取argmax:
Navigation Utility Driven Frontier Selection
- 因为action space是图上所有的sub node,因此随着加入的node越多,sub nodes越多,action space就越大,这里提出了frontier Selection。
- frontier其实就是在当前节点做action 选择的时候,先选一个frontier node,然后选择它的一个sub node去尝试性走一步。
- frontier相当于是把走到下一个node的过程分成两个部分,如果选择下一个node是一个goal,那么frontier node的选择就是一个sub goal
- 怎么选frontier node?
- 根据argmax概率选
- w是选择的frontier node
是frontier节点visual feature 是frontier节点的action state 是当前节点的perception state 和action state - frontier node选择的机制是RL的方式,如果选出来的更接近destination,就奖励。对比以前的启发式选择方式
- 怎么选frontier node 的 sub node?
- Frontier node和当前不一样就移动,沿着G上面的最短路径移动。节点状态也在move过程中更新。如果一样就呆在原地
- 计算sub node的概率和计算frontier node的概率一样,用sub node的visual 特征和action特征,来和当前frontier node的perception stte和action state算概率
- 选择概率最大的sub node作为新的位置
,加入到SSM的graph中,更新成 - 这时候还要更新agent的navigation state