Vision-Language Navigation with Self-Supervised Auxiliary Reasoning Tasks
Introduction
- Vision-Language Navigation with Self-Supervised Auxiliary Reasoning Tasks. CVPR, 2019.
摘要
- Vision-Language Navigation(VLN)任务是智能体在自然语言指令下学习如何在环境中进行导航的任务。这个任务的关键在于序列地感知视觉和文本。传统的方法利用跨模态grounding中的视觉和文本特征解决这个问题,但是都忽略了环境中包含着丰富语义信息,比如导航图中的信息和已走路径的信息。因此,本文提出了AuxRN模型,使用四个自监督辅助任务帮助利用额外的语义信息训练模型,这四个是:解读过去的动作,评估导航的进度,预测下一步方向,评估轨迹和文本的一致性。最终,这些额外的辅助训练信号帮助智能体更好地获得了活动和环境中的语义信息,做出了sota的结果。
现有方法的缺点
- 无法彻底理解过去的行为
- 无法对齐指令和轨迹
- 智能体无法准确评估当前进度
- 行为受到了导航图中临近节点的限制,无法看到全部的导航图
提出方法的优点
- 通过四个辅助任务获取额外的训练信息
- 使得作出的决策动作更容易被理解
- 减少已知环境和未知环境的domain gap
四个辅助任务
- 轨迹重述任务:使用自然语言生成模型解释过去的行为
- 进度评估任务:评估模型已经完成的进度百分比
- 角度预测任务:对智能体接下来转向角度进行预测
- 跨模态匹配任务:允许智能体对齐视觉和语言编码,包括了过去所有时刻的视觉上下文而不局限于某一个时刻的对齐
Method
Pipeline
-
问题定义
给定全局自然语言指令I,在每个时间t,智能体观察全局视角O,对场景图中的k个临近节点选取一个作为下一步动作a,直至最终候选节点为stop。导航结束。 -
Attention Module
使用全连接层和softmax层实现视觉特征向量的加权
-
Vision Embedding
使用LSTM对视觉历史上下文进行编码
-
Vision-Language Embedding
使用Bi-LSTM编码语言特征,使用平均池化操作P获得全局语言上下文特征,融合视觉历史上下文得到跨模态上下文特征。
-
Action Prediction
使用atten和softmax操作获取相邻结点的动作概率。预测动作共有三处应用:在模仿学习中,应用到标准动作的损失函数中,在强化学习中,应用到概率采样中,在测试阶段,应用到选取最大概率动作中。
损失函数
-
模仿学习IL
强制智能体对标准动作进行学习。
-
强化学习RL
鼓励智能体使用A3C的平行版本A2C方法进行学习。
-
Speaker损失
对于历史的轨迹信息,使用LSTM进行word embedding,并使用循环重构方法实现对历史的视觉上下文向量的自然语言翻译工作。如此,智能体可以知道采取动作的语义信息,更好地解读历史的动作和已有的轨迹。同时,该方法还可以进行数据增强。
-
Progress损失
过去的方法使用平均方差MSE损失函数预测进度,但本文使用二进制交叉熵BCE损失预测进度,使用二进制标签{t/T, 1-t/T}表示进程百分比,使用sigmoid**函数和全连接层计算损失函数。
-
Angle损失
智能体在候选图中做选择,决定下一个决策动作,与有噪音的视觉特征相比,使用角度信息效果更好。因此使用全连接层构建回归模型预测下一个角度信息:
-
Matching损失
受到LXMERT启发,使用二进制分类任务预测指令和轨迹是否匹配,具体地,对文本全局信息进行shuffle,与跨模态文本视觉上下文特征进行concatenate,然后接入FC层中。
-
端到端地训练四个辅助推理任务
训练步骤
- 使用训练集进行预训练
- 选取最好的模型使用训练集中采样的增强数据微调模型
- 选取更好的模型使用测试集中采样的增强数据微调模型
- 使用第三步获得的模型进行测试
实验结果
-
与现有方法的对比
-
效果图