文章目录
0. 摘要
深度强化学习的两个较少解决的问题是:(1) 对新目标的泛化能力不足,以及 (2) 数据效率低下,即模型需要多次(且通常代价高昂)的试验和错误才能收敛,这使得其在实际场景中的应用变得不切实际。在本文中,我们解决了这两个问题,并将我们的模型应用于目标驱动的视觉导航。为了解决第一个问题,我们提出了一个策略是目标和当前状态函数的actor-critic模型,这样可以更好地泛化。为了解决第二个问题,我们提出了AI2-THOR框架,它提供了一个具有高质量3D场景和物理引擎的环境。我们的框架使得代理可以采取行动并与物体交互,因此我们可以高效地收集大量的训练样本。
我们展示了我们提出的方法:(1) 比最先进的深度强化学习方法收敛更快,(2) 可以跨目标和场景进行泛化,(3) 尽管模型在模拟环境中训练,但通过少量微调即可泛化到真实机器人场景,(4) 端到端可训练,不需要特征工程、帧间特征匹配或环境的3D重建。
1. 引言
机器人领域中的许多任务涉及与物理环境和物体的交互。这种交互的基本组成部分之一是理解代理的动作与环境因这些动作而发生的变化之间的相关性和因果关系。自20世纪70年代以来,人们进行了各种尝试,试图建立一个能够理解这种关系的系统。最近,随着深度学习模型的兴起,基于学习的方法获得了广泛的关注[1],[2]。
在本文中,我们专注于仅使用视觉输入在空间中导航以找到给定目标的问题。成功的导航需要学习动作与环境之间的关系。这使得该任务非常适合深度强化学习(DRL)方法。然而,通常的DRL方法(例如,[2],[3])旨在学习一个仅依赖于当前状态的策略,目标隐含在模型参数中。因此,对于新目标,需要学习新的模型参数。这是有问题的,因为训练DRL代理计算成本高昂。
为了实现更高的适应性和灵活性,我们引入了一种目标驱动的模型。我们的模型将视觉任务目标作为输入,从而避免了为每个新目标重新训练。我们的模型学习了一种策略,可以同时嵌入目标和当前状态。实质上,代理学习在其当前状态和目标的共同条件下采取下一步行动,而不仅仅是基于当前状态。因此,无需为新目标重新训练模型。我们依赖的一个关键直觉是,不同的训练情节共享信息。例如,代理在训练阶段为找到不同目标而进行训练时,会探索共同的路线。各种场景也共享相似的结构和统计信息(例如,冰箱很可能靠近微波炉)。简而言之,我们利用了这样一个事实,即使用已为其他目标训练过的模型,学习新目标会变得更容易。
不幸的是,在真实环境中训练和定量评估深度强化学习(DRL)算法通常是繁琐的。一个原因是,在物理空间中运行系统耗时较长。此外,通过常见的图像数据集收集技术,在真实环境中获取大规模的动作和交互数据并非易事。为此,我们开发了首批具有高质量3D场景的模拟框架之一,称为The House Of inteRactions(AI2-THOR)。我们的模拟框架使我们能够在不同环境中收集大量的视觉观测数据用于动作和反应。例如,代理可以在各种逼真的室内场景中自由导航(即移动和旋转),并且能够与物体进行低级和高级的交互(例如,施加力或打开/关闭微波炉)。
我们对以下任务评估了我们的方法:(1) 目标泛化,其目标是在一个场景中导航到训练期间未使用的目标。(2) 场景泛化,其目标是在未用于训练的场景中导航到目标。(3) 现实世界泛化,我们展示了使用真实机器人导航到目标的能力。我们的实验表明,在训练的数据效率方面,我们的方法优于最先进的深度强化学习(DRL)方法。我们还展示了我们模型的泛化方面。
总之,我们介绍了一种新的强化学习模型,该模型可以在不同的目标和场景中进行泛化。为了学习和评估强化学习模型,我们创建了一个具有高质量渲染的模拟框架,使代理能够进行视觉交互。我们还展示了使用我们模型的真实机器人导航,通过少量微调即可实现模型在现实世界中的泛化。
2. 相关工作
3. AI2-THOR框架
为了训练和评估我们的模型,我们需要一个能够在3D环境中执行动作和感知其结果的框架。将我们的模型与不同类型的环境集成是模型泛化的主要要求。因此,该框架应具有即插即用的架构,以便可以轻松地合并不同类型的场景。此外,该框架应具有详细的场景物理模型,以便动作和物体交互能够得到正确的表示。
为此,我们提出了The House Of inteRactions (AI2-THOR)框架,该框架通过将物理引擎(Unity 3D)与深度学习框架(Tensorflow [47])集成而设计。其基本思路是将物理引擎渲染的图像流传输到深度学习框架,深度学习框架根据视觉输入发出控制命令,并将其发送回物理引擎中的代理。类似的框架已由[39],[40],[44],[42],[41]提出,但我们的框架主要有以下优势:
(1) 物理引擎和深度学习框架直接通信(与[38]中将物理引擎与控制器分离的方式相反)。直接通信非常重要,因为环境的反馈可以立即用于在线决策。
(2) 我们尽可能模仿真实世界图像的外观分布。例如,[39]在Atari游戏上工作,这些是2D环境,在外观上有限。[43]是一些合成场景的集合,这些场景在光照、物体外观、纹理和背景杂乱等方面并不符合真实世界场景的分布。这对于使我们能够泛化到真实世界图像非常重要。
为了为我们的框架创建室内场景,我们提供了参考图像给艺术家,以创建具有类似纹理和照明的3D场景。目前,我们有32个场景,属于家庭环境中的4种常见场景类型:厨房、客厅、卧室和浴室。每个场景平均包含68个物体实例。
使用物理引擎来建模世界的优势在于它具有高度的可扩展性(在真实房屋中训练机器人并不容易扩展)。此外,训练模型可以更便宜和更安全(例如,机器人的动作可能会损坏物体)。使用合成场景的一个主要缺点是对现实世界的细节建模不足。然而,图形学界的最新进展使得可能拥有对现实世界外观和物理特性丰富的表示,从而缩小了现实世界和模拟之间的差距。图2提供了我们框架中的一个场景与其他框架和数据集中示例场景的定性比较。如图所示,我们的场景更好地模仿了现实世界场景的外观特性。在这项工作中,我们专注于导航,但该框架可以用于更细粒度的物理交互,例如施加力、抓取或物体操作(如打开和关闭微波炉)。图3展示了一些高级交互的示例。我们将为AI代理提供Python API,以便与3D场景进行交互。
4. 目标驱动的导航模型
在本节中,我们首先定义目标驱动视觉导航的公式。然后我们描述用于此任务的深度孪生演员-评论家网络。
4.1 问题说明
我们的目标是找到将代理从当前位置移动到由RGB图像指定的目标的最短动作序列。我们开发了一种深度强化学习模型,该模型以当前观测的RGB图像和目标的RGB图像作为输入。模型的输出是在3D空间中的一个动作,例如前进或右转。注意,该模型学习了从2D图像到3D空间中动作的映射。
4.2 问题建模
基于视觉的机器人导航需要将感知信号映射到运动指令。以往关于强化学习的工作通常不考虑高维感知输入[48]。最近的深度强化学习(DRL)模型[2]提供了一种端到端的学习框架,将像素信息转换为动作。然而,DRL主要集中在学习单独处理个别任务的目标特定模型。这种训练设置对于任务目标的变化相当不灵活。例如,正如Lake等人[49]所指出的那样,改变游戏规则会对基于DRL的围棋系统[32]产生毁灭性的性能影响。这种限制源于标准DRL模型[2]、[3]旨在找到从状态表示 s s s到策略 π ( s ) π(s) π(s)的直接映射(由深度神经网络 π \pi π表示)。在这种情况下,目标被硬编码在神经网络参数中。因此,目标的变化将需要相应地更新网络参数。
这种限制对于移动机器人导航尤其成问题。当将DRL应用于多个导航目标时,网络需要为每个目标重新训练。实际上,在一个场景中穷尽每个目标是不现实的。这是由于缺乏泛化能力导致的问题——即在引入新目标时需要重新训练新模型。因此,最好有一个单一的导航模型,能够在无需重新训练的情况下学习导航到新目标。为此,我们将任务目标(即导航目的地)作为输入指定给模型,而不是将目标植入模型参数中。我们将这个问题称为目标驱动的视觉导航。正式地,目标驱动模型的学习目标是学习一个随机策略函数 π π π,该函数接受两个输入,即当前状态 s t s_t st的表示和目标 g g g的表示,并生成在动作空间上的概率分布 π ( s t , g ) π(s_t, g) π(st,g)。在测试时,移动机器人不断采取从策略分布中抽取的动作,直到到达目的地。这样,动作是基于状态和目标条件的。因此,不需要为新目标重新训练。
4.3 学习设置
在介绍我们的模型之前,我们首先描述了强化学习设置的关键成分:行动空间,观察和目标,以及奖励设计。
-
动作空间:现实世界中的移动机器人必须处理低级机械问题。然而,这些机械细节使学习变得显著更具挑战性。一种常见的方法是在一定的抽象水平上进行学习,其中基础物理由低级控制器(例如3D物理引擎)处理。我们使用命令级动作训练我们的模型。对于我们的视觉导航任务,我们考虑四种动作:前进、后退、左转和右转。我们使用恒定的步长(0.5米)和转角(90度)。这实质上将场景空间离散化为一个网格世界表示。为了在现实系统动态中建模不确定性,我们在每个位置的步长和转弯上添加了高斯噪声,分别为N(0,0.01)和N(0,1.0)。
-
观测和目标:观测和目标都是由代理的第一人称视角的RGB相机拍摄的图像。使用图像作为目标描述的好处在于可以灵活地指定新目标。给定一个目标图像,任务目标是导航到拍摄目标图像的位置和视角。
-
奖励设计:我们专注于最小化导航到目标的轨迹长度,尽管可以考虑其他因素(例如能量效率)。在任务完成时,我们只提供一个达到目标的奖励(10.0)。为了鼓励更短的轨迹,我们添加了一个小的时间惩罚(-0.01)作为即时奖励。
4.4 模型
我们主要通过深度强化学习来学习目标驱动的策略函数
π
π
π。我们设计了一个新的深度神经网络作为
π
π
π的非线性函数逼近器,其中动作
a
a
a在时刻
t
t
t可以画成:
α
∼
π
(
s
t
,
g
∣
u
)
\alpha \sim \pi(s_t,g|\textbf{u})
α∼π(st,g∣u)
其中
u
u
u 是模型参数,
s
t
s_t
st 是当前观测的图像,
g
g
g 是导航目标的图像。当目标 $g $ 属于有限离散集时,
π
π
π 可以被视为一个混合模型,其中
g
g
g 索引每个目标的正确参数集。然而,现实世界中的目标数量通常是无数的(由于许多不同的位置或高度可变的物体外观)。因此,更可取的方法是学习一种投影,将目标转换为嵌入空间。这样的投影可以实现跨越这个嵌入空间的知识转移,从而使模型能够推广到新目标。
导航决策需要理解当前位置与目标位置之间的相对空间位置,以及对场景布局的整体感知。我们开发了一种新的深度孪生演员-评论家网络来捕捉这些直觉。图4展示了我们用于目标驱动导航任务的模型。总体来说,网络的输入是代表代理当前观测和目标的两张图像。我们关于推理当前位置和目标之间空间布局的方法是将它们投影到相同的嵌入空间中,在该空间中保留它们的几何关系。深度孪生网络是一种用于判别性嵌入学习的双流神经网络模型【50】。我们使用两条权重共享的孪生层流,将当前状态和目标转换到相同的嵌入空间。从这两个嵌入中获取的信息被融合形成一个联合表示。该联合表示通过场景特定层(参见图4)传递。场景特定层的目的是捕捉对导航任务至关重要的场景特征(例如房间布局和物体排列)。最后,模型生成类似于优势演员-评论家模型【3】的策略和价值输出。在这个模型中,所有场景中的目标共享相同的通用孪生层,而同一场景中的所有目标共享相同的场景特定层。这使得模型在不同目标和场景之间更好地泛化。
4.5 训练约定
传统的强化学习模型为单独的任务进行学习,导致在目标变化方面缺乏灵活性。由于我们的深度孪生演员-评论家网络在不同任务之间共享参数,它可以同时从多个目标的学习中受益。A3C【3】是一种通过并行运行多个训练线程副本并以异步方式更新共享模型参数集的强化学习模型。事实证明,这些并行训练线程可以相互稳定,在视频游戏领域实现了最先进的性能。我们采用类似于A3C的训练协议。然而,不是运行单个游戏的副本,而是每个线程都有不同的导航目标。因此,梯度从演员-评论家输出反向传播回低级层。场景特定层由场景内导航任务的梯度更新,而通用孪生层由所有目标的梯度更新。
4.6 网络架构
孪生网络层的底部部分是使用 ImageNet 预训练的 ResNet-50【51】层(截断了 softmax 层),它在 224×224×3 RGB 图像上生成 2048 维特征。我们在训练过程中冻结这些 ResNet 参数。我们连接 4 个历史帧的特征,以考虑代理的过去动作。这两个流的 8192 维输出向量被投影到 512 维的嵌入空间。融合层接收状态和目标的 1024 维连接嵌入,生成 512 维的联合表示。这个向量进一步传递通过两个全连接的场景特定层,产生 4 个策略输出(即动作的概率)和一个单一的价值输出。我们使用学习率为 7 × 10⁻⁴ 的共享 RMSProp 优化器来训练这个网络。
5. 实验
我们对目标驱动导航的主要目标是找到从当前位置到目标的最短路径。首先,我们使用基于启发式方法和标准深度强化学习模型的基线导航模型对我们的模型进行评估。我们提出的模型的一个主要优势是能够泛化到新场景和新目标。我们进行了两个额外的实验,以评估我们的模型在目标和场景之间迁移知识的能力。此外,我们展示了我们的模型在连续空间中的扩展。最后,我们展示了我们的模型在复杂实际环境中使用真实机器人时的性能。
5.1 导航结果
我们在Tensorflow中实现我们的模型,并在Nvidia GeForce GTX Titan X GPU上进行训练。我们遵循Sec中描述的x训练协议。IV-E用100个线程训练我们的actor-critic(见图4),每个线程学习不同的目标。在所有线程上完成100万个训练帧大约需要1.25小时。我们将性能表示为“从随机起点到达目标所需的平均步数(即平均轨迹长度)”。从我们数据集中的20个室内场景中随机抽取100个不同的目标,测试了导航性能。我们将最终的模型与启发式策略、标准深度RL模型以及模型的变体进行了比较。我们选取比较的模型是:
- **1)随机漫步:**是最简单的导航启发式算法,在这个基线模型中,agent在每个步骤中随机抽取四个动作中的一个。
- **2)最短路径:**为导航模型提供上限性能。当我们用固定的步长将步行空间离散(见IV-C小节)时,我们可以
计算从起始点到目标点的最短路径。注意,对于计算最短路径,我们需要能访问环境的完整地图,而我们系统的输入只是一个RGB图像。 - **3)A3C :**是一个在Atari游戏中获得最先进的结果的异步优势的actor-critic模型。实验结果表明,使用更多的线程可以提高训练中的数据效率。因此,我们在两个设置中评估A3C模型,其中我们使用1个线程和4个线程来为每个目标进行培训。
- **4)One-step Q :**是Deep Q-Network的一种异步变体
- **5)目标驱动的单一分支 :**是我们的深度孪生模型的一个变体,它没有特定于场景的分支。在这种情况下,所有目标将使用和更新相同的场景特定参数,包括两个FC层和策略/值输出层。
- **6)目标驱动的final :**是我们在IV-D部分引入的深度孪生演员-批评家模型。
对于所有的学习模型,我们展示他们在100M帧(所有线程)训练后的表现。性能是通过所有目标的平均轨迹长度(步数)来衡量的。当某个agent到达目标时,或者在完成10,000步之后,该episode就结束了。对于每个目标,我们随机初始化agent的起始位置,并评估10episode。结果在表I中列出。
我们用图5中的学习曲线分析了几个深度RL模型的数据效率。Q-learning的收敛速度很慢。A3C优于Q-learning;另外,将每个目标的学习线程数量从1增加到4,提高了学习效率。我们提出的目标驱动导航模型在100M帧的训练中明显优于标准深度RL模型。我们假设,这是因为跨目标的权重共享计划和异步训练协议都有助于学习可推广的知识。与此相反,专用的RL模型的数据效率较低,因为在不同的场景或目标之间没有直接的共享信息的机制。最终模型的平均轨迹长度是单个分支模型的三倍。它证明了特定场景层的使用是合理的,因为它捕获了场景的特定特征,这些特征可能在不同的场景实例中有所不同。
为了理解模型学习到的内容,我们检查了通用孪生层学习到的嵌入。图6展示了从四个不同方向的不同位置观测到的嵌入向量的 t-SNE 可视化[52]。我们观察到嵌入向量的空间排列与它们对应的 t-SNE 投影之间显著的空间对应关系。因此,我们假设模型学习将观测图像投影到嵌入空间,并保持它们的空间配置。为了验证这一假设,我们比较了成对投影嵌入的距离和它们对应的场景坐标的距离。皮尔逊相关系数为 0.62,p 值小于 0.001,表明嵌入空间保留了观测的原始位置信息。这意味着模型学习了环境的大致地图,并具有相对于这个地图的定位能力。
5.2 跨目标的泛化
除了我们的目标驱动强化学习模型的数据效率外,它还具备内置的泛化能力,这是相比特定基线模型的显著优势。我们评估其泛化能力主要从两个方面进行:1. 在同一场景中对新目标的泛化能力,以及 2. 对新场景的泛化能力。本节我们专注于目标之间的泛化能力,并将在下一节讨论场景的泛化能力。
我们测试了模型在导航到新目标时的表现。这些目标没有经过训练,但它们可能与训练过的目标共享常见路径,因此可以进行知识传递。我们选择了数据集中最大的 10 个场景,每个场景大约有 15 个目标。我们逐步增加训练的目标数量(从 1、2、4 到 8),使用我们的目标驱动模型进行训练,所有模型共训练了 2000 万帧。在测试阶段,我们为每个新目标运行了 100 个回合。这些新目标是从一组位置随机选择的,这些位置与最近的训练目标之间有固定的距离(1、2、4 和 8 步)。结果如图 7 所示。我们使用成功率(轨迹长度小于 500 步的百分比)来衡量性能。我们选择这个指标是因为我们的模型在新目标上表现出双极性行为 - 要么迅速达到新目标,要么完全失败。因此,这个指标比平均轨迹长度更有效。在图 7 中,我们观察到一个一致的趋势,随着训练目标数量的增加(x 轴),成功率不断增加。在每个直方图组内部,成功率与训练目标和新目标之间的邻近性呈正相关。这表明模型对训练目标周围的区域比远处位置有更清晰的理解。
5.3 跨场景的泛化
我们进一步评估我们模型在场景间的泛化能力。由于通用孪生层在所有场景上是共享的,我们研究这些层的知识如何从已训练的场景中转移至新场景。此外,我们还研究了训练场景数量如何影响通用层参数的可传递性。我们逐步增加训练的场景数量,从1个逐步增加到16个,并在4个未见过的场景上进行测试。我们从每个场景中选择了5个随机目标用于训练和测试。为了适应未见过的场景,我们固定通用孪生层的参数,同时训练场景特定的层。图8显示了结果。随着训练场景数量的增加,我们观察到收敛速度加快。与从头开始训练相比,传递通用层显著提高了在新环境中学习的数据效率。我们还在相同的设置中评估了单支路模型的表现。由于单个分支模型包含单个场景特定层,我们可以将训练好的模型(在16个场景上训练)应用于新的场景,而无需额外的训练。然而,它会导致比随机更差的性能,这表明适应场景特定层的重要性。单个分支模型的收敛速度比从头开始训练要快一些,但比我们最终的模型慢得多。
5.4 连续空间
空间离散化消除了处理复杂系统动力学(如电机控制中的噪声)的需要。在本节中,我们展示了相同模型应对更具挑战性的连续空间的实证结果。
为说明这一点,我们训练了相同的目标驱动模型用于一个在大型客厅场景中的找门任务,目标是通过门到达阳台。我们使用了与之前相同的4个动作(参见Sec. IV-C);然而,代理的移动和转向由物理引擎控制。在这种情况下,该方法需要显式处理力和碰撞,因为代理可能会被障碍物阻挡或沿着重物滑动。虽然这种设置需要显著更多的训练帧数(大约50M)来训练单个目标,但相同模型平均在15步内学会到达门,而随机代理平均需要719步。我们在视频中提供了测试示例。
5.5 机器人实验
为了验证我们的方法对现实世界设置的泛化,我们使用经过[53]修改的SCITOS移动机器人进行了实验(见图9)。我们在三种不同的设置下训练我们的模型:1)在真实图像上从零开始训练;2)只训练场景特定层,冻结20个模拟场景训练的通用层参数;3)训练场景特定层,微调通用层参数。
我们在场景中的28个离散位置训练了我们的模型(禁用向后移动动作),这些位置在每个维度上相隔大约30英寸。在每个位置,机器人使用其头部摄像头拍摄4张RGB图像(每隔90度)。在测试期间,机器人根据模型的预测进行移动和转向。我们在房间内使用两个目标(门和微波炉)对机器人进行了评估。尽管模型是在离散空间上训练的,但它对随机起始点、动态噪声、不同步长、光照变化和物体布局变化等表现出了鲁棒性。视频中提供了测试示例。由于真实场景的规模较小,所有三种设置均收敛到近乎最优的策略。然而,我们发现从模拟数据到真实数据的参数转移和微调提供了最快的收敛速度,比从头开始训练快44%。这为模拟在学习现实世界交互中的价值提供了支持性证据,并显示了通过少量微调将模拟推广到真实图像的可能性。
6. 结论
我们提出了一种用于目标驱动视觉导航的深度强化学习(DRL)框架。现有最先进的DRL方法通常应用于视频游戏和不模拟自然图像分布的环境。此工作向更加真实的环境迈出了一步。
现有的最先进DRL方法存在一些限制,阻碍了它们在真实环境中的应用。在这项工作中,我们解决了一些这些限制。我们解决了跨目标和跨场景的泛化问题,提高了数据效率,相比于最先进的DRL方法,并提供了AI2-THOR框架,使得动作和交互数据的收集变得廉价且高效。
我们的实验表明,我们的方法可以泛化到未在模型的端到端训练中使用的新目标和新场景。我们还表明,与最先进的DRL方法相比,我们的方法收敛所需的训练样本要少得多。此外,我们证明了该方法在离散和连续领域中都能工作。我们还展示了在模拟环境中训练的模型可以通过少量微调适应到真实机器人上。我们提供了可视化结果,显示我们的DRL方法隐式地执行了定位和映射。最后,我们的方法是端到端可训练的。与常见的视觉导航方法不同,它不需要显式的特征匹配或环境的3D重建。
我们的未来工作包括增加框架中高质量的3D场景数量。我们还计划在距离更远和动态变化的环境中评估我们的模型,并构建在框架中学习物理交互和物体操作的模型。
7. 一些讨论
视觉导航任务通过输入观察图像和目标图像,基于选定的encoder进行特征提取,然后将特征进行融合,最后使用任务头进行policy的预测。这个pipline在后续的大部分工作中均适用,区别在于具体如何进行特征提取、融合以及policy生成。除此之外,如何使用这样的网络完成更加复杂的视觉导航任务,例如长距离导航等,也是重要的研究内容。
猪蒙索洛夫:本文的网络思路其实很简单:输入current-observation和target-observation,对两个observation使用Res50进行encode并得到两个embedding-vector,并对这两个embedding-vecoter进行fusion操作,最后输入到一个policy-network。不同的场景训练不同的policy-network。policy network输入的是current-observation a和target-observation b 的一个joint-represtentation。policy-network的作用是:“告诉agent,在位置a想要达到位置b应该选择什么样的action。(大前提,a和b处于同一个scene,并且policy已经在这个scene完成很好的训练)”。