Pedro编译

BAIR提出人机合作新范式:教你如何高效安全地在月球着陆

人机合作可以提高很多现实高危任务的成功率和安全性,特别是对于视野受限的飞机着陆甚至飞船登月任务。以前的方法通常依赖于大量的先验知识(基于模型)。为此,伯克利 AI 研究院提出了基于深度强化学习的共享自治系统(无模型),不需要先验知识就可以辅助任务的执行,并在有先验知识的条件下能进一步利用并提升性能。该系统对于存在非结构化、不可预测因素的任务很有优势。在登月游戏和真实无人机着陆的任务中它都取得了优越的成果,显著优于人机独立执行。

一个盲的、自动驾驶员(左),一个次优的人类驾驶员(中)和一个人机混合队(右)玩登月游戏

  • 源代码地址:https://github.com/rddy/deepassist

  • 相关视频地址:https://sites.google.com/view/deep-assist

设想一个无人驾驶飞行员远程控制四旋翼飞行器,使用机载相机进行导航和降落。不熟悉的飞行动力学、地形和网络延迟可能会使这个系统面临人类难以控制的挑战。解决这个问题的一个方法是训练自主智能体执行巡视和制图等任务,而无需人为干预。当任务明确规定并且智能体可以观察所需的所有信息时,该策略可以很好地工作。不幸的是,许多涉及人类用户的真实世界的应用程序并不能满足这些条件:用户的意图通常是智能体无法直接访问的隐私信息,而且任务可能太复杂,用户无法精确定义。例如,飞行员可能想要跟踪一组移动物体(例如,一群动物)并且即时改变物体优先级(例如,关注意想不到地出现受伤的人)。共享自治通过将用户输入与自动协助相结合来解决此问题;换句话说,增强人类的控制力而不是取代它。

背景

在共享控制系统中结合人机智能的想法可以追溯到 1949 年 Ray Goertz 的主从机械手的早期版本,1969 年 Ralp Mosher 的 Hardiman 外骨骼和 1980 年 Minsky 对远程监控技术的呼吁。经过数十年对机器人、人机交互和人工智能的研究,人类操作员和遥控机器人之间的接口仍然是一个挑战。根据 2015 年 DARPA 机器人挑战赛的一个评论:「人机交互是提高机器人性能的最具性价比的研究领域...... 在 DARPA 机器人挑战赛上,机器人稳定性和性能的最大敌人是操作失误。开发避免和克服操作失误的方法对于真实的机器人技术至关重要。人类操作员在压力下,特别是没有经过现实条件下广泛的培训和实践,很容易犯错误。」

共享自治的一个研究主旨是通过推断用户的目标并自主行动来解决这个问题。Shervin Javdani 博士论文《Acting under Uncertainty for Information Gathering and Shared Autonomy》的第五章对相关文献进行了很好的回顾。这些方法已经在辅助驾驶、脑机接口和辅助遥控上取得了很好的进展,但它们都需要真实世界的先验知识。具体来说就是:(1)一个可以预测在给定的环境中采取给定动作的后果的动态模型;(2)用户可能的目标集合;(3)一个在给定目标的情况下可以描述用户行为的观察模型。基于模型的共享自治算法非常适合可以直接对这些知识进行硬编码或学习的领域,但却面临着由非结构化环境造成的未定义目标和不可预测的用户行为所带来的挑战。我们从另一个角度来看这个问题,即通过使用深度强化学习来实现模型无关情况下的共享自治。

深度强化学习使用神经网络函数逼近来处理高维、连续状态和动作空间中的维数灾难。最近深度强化学习在从头开始训练自治智能体方面取得了显著的成功,例如:玩视频游戏、在 Go 上击败人类世界冠军以及控制机器人等。我们已经取得了初步的进展来回答以下问题:深度强化学习对建立灵活和实用的辅助系统有用吗?

无模型、有人类参与的强化学习算法

为了在最小的先验假设下实现共享控制远程操作,我们设计了一个用于共享自治的无模型深度强化学习算法。其关键的思想是学习从环境观察、用户输入到智能体动作的端到端映射,任务奖励是唯一的监督信息。从智能体的角度来看,用户的行为像一个可以进行微调的先验策略,以及一个生成观察结果的、使智能体可以隐式地解码用户私人信息的附加传感器。从用户的角度来看,智能体的行为就像一个自适应界面,可以学习从用户命令到最大化任务奖励的动作的个性化映射。

图 1:有人参与的、无模型共享自治的深度 Q-学习算法的总览。

这项工作的核心挑战之一,是在不会显著干扰用户的反馈控制环路或在较长的训练周期内使人感到劳累的同时,采用标准的深度增强学习技术有效利用来自人体的控制输入。为了解决这些问题,我们使用深度 Q-学习 来学习一个近似的状态-动作的值函数,该函数计算在当前的环境观察和用户输入的情况下预期的动作回报。使用该值函数后,辅助智能体将执行同用户的控制输入执行最接近的高值动作。智能体的奖励函数是为每个状态计算的已知项的组合,以及用户在任务成功或失败时提供的终端奖励。请参见图 1 以了解此过程的高级示意图。

辅助学习

之前的工作《Shared Autonomy via Hindsight Optimization for Teleoperation and Teaming》已经将共享自治形式化为部分可观察的马尔可夫决策过程(POMDP),其中用户的目标最初对智能体是未知的,并且必须被推断出来以完成任务。现有方法倾向于假设 POMDP 的以下组成部分事先已知:(1)环境动力学或状态转移分布 T;(2)用户的一组可能的目标,或目标空间 G;(3)给出目标的用户控制策略,或用户模型 π_h。在我们的工作中,我们放宽了这三个标准假设。我们引入了一种无模型的深度强化学习方法,该方法能够在不知道这些知识的情况下提供帮助,但也可以在知道时利用用户模型和目标空间。

在我们的问题公式中,转移分布 T 、用户策略 π_h 和目标空间 G 不再都是智能体必须知道的。取决于用户私人信息的奖励函数如下:

这种分解遵循共同自治的典型结构:奖励中有一些已知的项,例如避免碰撞的必要条件,包含在 R_general 中。Rfeedback 是用户生成的反馈,取决于他们的私人信息,我们不知道这个函数。我们仅假设智能体在用户提供反馈时(例如,通过按下按钮)得到一定的信息。在实践中,用户可以简单地在每个试验中指示一次智能体是否成功。

结合用户输入

我们的方法通过简单地将智能体对环境的观察 s_t 与来自用户的信息 u_t 连接起来进行联合嵌入。形式化定义如下:

u_t 的特定形式取决于可用的信息。当我们不知道目标空间 G 或给定目标π_h 的用户策略时,就像我们大多数实验的情况那样,我们设置 u_t 到用户行为 a^h_t。当知道目标空间 G 时,我们设置 u_t 到推断目标 g^t。特别地,对于已知目标空间和用户模型的问题,我们发现使用最大熵反向强化学习来推断 g^t 可以提高性能。对于已知目标空间但未知用户模型的问题,我们发现在某些条件下,可以通过训练 LSTM 递归神经网络,在给定用户输入序列的情况下使用由无帮助用户产生的训练集来预测 g^t,以提高性能。

用户控制下的 Q-学习

在无模型强化学习引入人机循环会带来两个挑战:(1)保持信息丰富的用户输入和(2)最小化与环境的交互次数。如果用户输入是被建议的控制,一直忽略该建议并采取不同的行动可能会降低用户输入的质量,因为人类依靠他们的行为反馈来执行实时控制任务。像 TRPO 这样流行的策略算法很难在此设置中部署,因为它们无法确定用户的输入被忽略的频率,并倾向于需要与环境进行大量的互动,这对于人类用户来说是不切实际的。受到这两个标准的启发,我们转向了深度 Q-学习。

Q-学习是一种 off-policy 算法,使我们能够通过修改给定预期回报和用户输入时用于选择动作的行为策略来解决问题(1)。受最近并行自治《Parallel Autonomy in Automated Vehicles: Safe Motion Generation with Minimal Intervention》和外循环稳定《Learning Models for Shared Control of Human-Machine Systems with Unknown Dynamics》工作中最小化干预原则的启发,在其中一个动作没有比最佳行动差得多的情况下,我们执行一个最接近用户建议的可行动作,形式化定义如下:

其中 f 是一个动作-相似度函数且 

可以保持对负 Q 值的理性比较。常数 α∈[0,1] 是一个可以控制系统对于次优人类建议的容忍度或者说辅助程度的超参数。

考虑到问题(2),我们注意到,off-policy Q-学习倾向于比策略梯度和基于蒙特卡罗的方法的采样效率更高。当用户策略近似最优时,我们的行为策略的结构也加快了学习速度;对于适当大的 α,代理可以在学习中微调用户的策略,而不是学习从头开始执行任务。在实践中,这意味着在学习的早期阶段,合并的人机团队至少和无帮助的人类一样好,而不是在随机策略的级别上执行。

用户学习

我们将该方法应用于两个实时辅助控制问题:登月(Lunar Lander)游戏和四旋翼着陆任务。这两项任务都涉及使用离散动作空间控制运动以及包含位置、方向和速度信息的低维状态观察。在这两项任务中,人类飞行员都拥有完成任务所需的私有信息,但无法独自取得成功。

登月游戏

比赛的目的是使用两个侧向推进器和一台主发动机,在不发生碰撞或飞出界限的同时将车辆降落在旗帜之间。辅助驾驶员可以观察着陆器的位置、方向和速度,但不能看到旗帜的位置。

人类驾驶员(单独):人类驾驶员不能稳定驾驶飞行器并且总是会发生碰撞

人类驾驶员+强化学习副驾驶:混合驾驶可以在给予飞行器在旗子之间降落的足够空间的同时,保持飞行的稳定性

人类很少能够独自完成登月游戏,但结合强化学习副驾驶,他们可以做的更好。

 

图 2a:30 次事件(episode)内平均的成功和坠毁几率。

图 2b-c:在登月游戏中有和没有副驾驶的人类飞行员驾驶的轨迹。红色轨迹表示在碰撞或越界时结束,绿色成功,灰色则都不是。着陆台由星号标记。仅作为说明,因此我们只显示了左边界着陆点的数据。

在使用综合飞行员模型进行的模拟实验(此处未显示)中,我们还观察到明确推断目标(即着陆台的位置)而不是简单地将用户的原始控制输入添加到智能体的观察结果的明显好处,这表明目标空间和用户模型可以并应该在可获取时被使用。

分析登月游戏的缺点之一是游戏界面和其中使用的物理规律不能反映真实世界机器人共享自治任务的复杂性和不可预测性。为了在更真实的环境中评估我们的方法,我们为控制真实的四旋翼飞行器的人类飞行员制定了一项任务。

四旋翼飞行器着陆任务

该任务的目标是将一个 Parrot AR-Drone 2 在不越界或超时的情况下,着陆在一个距离其最初起飞位置有一段距离的小的方形着陆垫,这样无人机的第一人称摄像头会随机指向环境中的一个物体(例如红色椅子)。飞行员使用键盘控制速度,并且不被允许获取第三人称视角下的无人机影像,这样他们不得不依赖无人机的第一人称摄像头来导航和着陆。辅助驾驶员观察位置、方向和速度,但不知道飞行员想要看哪个物体。

人类飞行员(单独):飞行员的显示器只显示无人机的第一人称视角,因此把相机指向一个位置很容易,但找到着陆台很难。

人类驾驶员+ RL 副驾驶:副驾驶不知道飞行员想要把相机指向哪里,但它知道着陆垫的位置。飞行员和副驾驶一起完成了这项任务。

人们发现,在有限时间限制内将相机同时指向所需场景并导航至可行着陆垫的精确位置是具有挑战性的。辅助驾驶员在着陆垫上着陆时几乎没有问题,但不知道该把摄像头指向何处,因为它不知道人在着陆后想要观察什么。一同工作的话,人类可以专注于指向相机,副驾驶可以专注于准确着陆在着陆垫上。

 

图 3a:20 次事件内平均的成功和坠毁几率

图 3b-c:人类飞行员在有无副驾驶的情况下着陆轨迹的鸟瞰图。红色轨迹表示在碰撞或越界时结束,绿色成功,灰色则都不是。着陆台由星号标记。

我们的结果表明人机混合驾驶员-副驾驶员队伍显著地优于独立的人类驾驶员或使用强化学习的副驾驶员。

未来工作

我们的方法有一个主要弱点:无模型深度强化学习通常需要大量的训练数据,这对于操作物理机器人的人类用户来说可能是非常繁重的。在实验中,我们通过在模拟中没有人类飞行员的情况下预训练副驾驶一定程度上解决了这个问题。不幸的是,由于构建高保真模拟器以及设计丰富的用户无关奖励函数 R_general 的难度,这种方法对于现实世界的应用有时候是不可行的。我们目前正在探索解决这个问题的不同方法。

论文:Shared Autonomy via Deep Reinforcement Learning(使用深度强化学习实现共享自治)

论文地址:https://arxiv.org/pdf/1802.01744.pdf

在共享自治中,用户输入与半自主控制相结合以实现共同目标。目标往往是事先未知的,所以之前的工作使智能体能够从用户输入中推断目标并协助完成任务。这些方法倾向于对环境动态的知识、用户给定目标的策略以及用户追踪的可能目标组合做出假设,一定程度上限制了它们在真实场景中的应用。我们提出了一个无模型共享自治的深度强化学习框架,以去除这些假设。我们使用有人参与的且应用神经网络函数进行逼近的强化学习,来学习从环境观察、用户输入到智能体动作的端到端映射,其中任务奖励是唯一的监督信息。用户(n = 16)和合成飞行员玩视频游戏、控制真实四旋翼飞行器的受控研究证明,我们的算法能够帮助用户完成实时的控制任务。在这其中智能体不能通过观察直接访问用户的私有信息,但是会收到依赖于用户意图的奖励信号和用户输入。智能体可以学会在不访问这些私有信息的情况下从用户的输入中隐含地推断它,进而帮助用户。这允许被辅助用户比用户或自主智能体单独工作更有效地完成任务。本文一定程度上证明了深度强化学习在实现灵活和可用的辅助系统的潜能。

原文链接:http://bair.berkeley.edu/blog/2018/04/18/shared-autonomy/

产业BAIR深度强化学习人机合作
21