1. Introduction
最近,我们成功将强化学习扩展到大型问题,但这些成果是在具有明确指定奖励函数的情况下取得的 (Mnih et al. , 2015, 2016; Silver et al. , 2016)。不幸的是,许多任务涉及复杂、定义不明确或难以指定的目标。克服这一限制将极大地扩大深度强化学习的影响力,并且能将机器学习扩大到更广泛的领域。
例如,假设我们想使用强化学习来训练机器人清洁桌子或炒鸡蛋,我们并不清楚如何构建一个关于机器人传感器测量变量的函数作为合适的奖励函数。我们可以尝试设计一个简单的奖励函数来近似捕获预期的行为,但这常常会导致学到的行为实际上不满足我们的偏好。近期,这种困难导致了对 “RL系统目标与我们的价值偏好不一致” 的担忧 (Bostrom, 2014; Russell, 2016; Amodei et al., 2016)。成功地将我们的实际目标传达给 agent 将是解决这些问题的重要一步。
如果我们有所需任务的演示,我们可以使用逆强化学习(Ng 和 Russell,2000)提取奖励函数。然后可以使用此奖励函数来训练具有强化学习的代理。更直接地,我们可以直接对展示的行为进行行为克隆。然而,这些方法并不直接适用于人类难以执行的行为(例如控制具有许多自由度的非人类形态的机器人)。
另一种方法是允许人员提供对系统当前行为的反馈,并使用此反馈定义任务。原则上,这符合强化学习的范式,但对于需要数百或数千小时经验的RL系统而言,直接使用人类反馈作为奖励函数的成本过高。为了实际训练具有人的反馈的深度RL系统,我们需要将所需的反馈量减少几个数量级。
我们的方法是从人类专家给出的反馈中学习奖励函数,然后优化该奖励函数。这一基本方法之前已经被考虑过,但我们面临着将其扩展到现代深度 RL 的挑战,并展示了迄今为止从人类反馈中学到的最复杂的行为。总之,我们希望在不需要明确奖励函数的情况下解决顺序决策问题,并且
-
- 能够解决人类 只能识别所需行为,但不一定能提供演示的任务
-
- 允许 非专家用户
-
- 能扩展到大规模问题
-
- 用户给出反馈的成本不高(就是示教成本低)
图 1:方法示意图:奖励预测器利用(非专家)人员对轨迹段的比较进行异步训练,同时 agent 要最大化预期回报
我们的算法根据人类的偏好来拟合奖励函数,同时训练策略以优化当前预测的奖励函数(见图 1)。我们要求人类专家比较agent的行为轨迹片段,而不是直接提供绝对的数字分数。我们发现,在某些领域,比较agent的性能对于人类来说是更容易的,而且这对于学习人类偏好同样有用。比较轨迹片段几乎和比较单个状态一样快,但我们表明,比较轨迹片段明显更有帮助。此外,我们表明在线地收集反馈可以提高系统的性能,并防止agent利用学到的奖励函数的弱点刷分。
我们在两个环境进行实验:Arcade 学习环境中的 Atari 游戏(Belle mare 等人,2013 年)物理模拟器 MuJoCo 中的机器人任务(Todorov 等人,2012 年)。我们表明,即使没有奖励函数,来自非专家人员的少量反馈(从 15 分钟到 5 小时不等)也足以学习大部分原始 RL 任务。然后我们考虑在这些环境中执行一些特殊行为,例如执行后空翻或随车流驾驶。我们表明,即使不清楚如何手工设计一个奖励函数来引导这些行为,我们的算法也可以从大约一个小时的人类反馈中学习它们。
1.1 Related Work
有很多工作研究利用人类给出的评级或排名进行强化学习, 包括 Akrour et al. (2011), Pilarski et al. (2011), Akrour et al. (2012), Wilson et al. (2012), Sugiyama et al. (2012), Wirth and Fürnkranz (2013), Daniel et al. (2015), El Asri et al. (2016), Wang et al. (2016), and Wirth et al. (2016)。其他研究方向考虑了利用偏好而非绝对奖励值进行强化学习的一般问题(Fürnkranz等人,2012年;Akrour等人,2014年)以及在强化学习以外的环境中利用人类偏好进行优化(Machwe和Parmee,2006年;Secretan等人,2008年;Brochu等人,2010年;Sørensen等人,2016年)。
我们的算法遵循与Akrour等人(2012年)和 Akrour等人(2014年)相同的基本方法。他们考虑具有四个自由度和小离散域的连续域,这样可以假设手工编码特征的奖励期望是线性的。与其不同,我们考虑有几十个自由度的物理任务和没有手工特征的 Atari 任务;环境的复杂性迫使我们使用不同的RL算法和奖励模型,并处理不同的算法 tradeoffs。一个显著的区别是,Akrour等人(2012年)和Akrour等人(2014年)对整个轨迹而不是轨迹片段收集偏好。我们关心的是轨迹片段的偏好,因此,尽管我们收集了大约两个数量级以上的比较偏好,但实验需要的人类时间不到一个数量级以上。另一个主要差异是,为了应对非线性奖励模型和现代的 deep RL,我们改变了训练过程,例如使用异步训练和融合操作。
我们的反馈启发方法与Wilson等人(2012)的做法密切相关。然而,Wilson等人(2012)假设奖励函数是到某个未知 “目标” 策略的距离(其本身是关于手动编码特征的线性函数)。他们使用贝叶斯推断来拟合这个奖励函数,而不是执行RL,他们使用目标策略的MAP估计来生成轨迹。他们的实验涉及从他们的贝叶斯模型中提取的 “合成” 人类反馈,而我们使用从非专家用户收集的反馈进行实验。目前尚不清楚Wilson et al(2012)中的方法是否可以扩展到复杂任务,或者它们是否可以与真实的人类反馈一起工作。
MacGlashan等人(2017年)、Pilarski等人(2011年)、Knox和Stone(2009年)以及Knox(2012年)进行了涉及利用实际人类反馈进行强化学习的实验,尽管他们的方法不太相似。在MacGlashan等人(2017年)和Pilarski等人(2011年)中,学习只发生在训练人员提供反馈的情况下。这在如雅达利游戏等领域似乎是不可行的,为了在这些环境中学习一个高质量的策略,即使是最我们考虑的简单任务也需要提供数千小时的经验,这是非常昂贵的。TAMER(KNOX,2012;KNOX和Stand,2013)方法也致力于学习奖励函数,但是他们考虑了更为简单的设置,可以较快地学习所需的策略。
我们的工作还可以视为合作逆强化学习框架 cooperative inverse reinforcement learning framework(Hadfield Menell等人,2016)的具体实例。该框架考虑了环境中人与机器人之间的两人博弈,目的是最大化人的奖励函数。在我们的设置中,人类只能通过陈述他们的偏好来与游戏互动。
与之前的所有工作相比,我们的主要贡献是将人类反馈扩展到深度强化学习,并学习更复杂的行为。这符合将奖励学习方法扩展到大型深度学习系统的最新趋势,例如逆强化学习(Finn等人,2016年)、模仿学习(Ho和Ermon,2016年;Stadie等人,2017年)、semi-supervised skill generalization(Finn等人,2017年)和 bootstrapping RL from demonstrations(Silver等人,2016年;Hester等人,2017年)。
2. 准备工作和方法
2.1 设置和目标
我们考虑通过一系列步骤与环境交互的代理:在每个时刻 t,代理从环境中接收到一个观测 $$o_t \in O$$,然后向环境发送一个动作 $$a_t \in A $$
在传统的强化学习中,环境会提供奖励$$r_t \in \mathbb{R}$$ ,而 agent 的目标是最大化累计折扣奖励。我们假设环境不能会产生奖励信号,取而代之的是有一个人可以表达轨迹片段之间的偏好。轨迹片段是观察和动作组成的序列 。用符号 表示人类相比轨迹段 更偏好轨迹段 。非正式地说,agent的目标是生成人类喜欢的轨迹,同时向人类发出尽可能少的查询
更准确地说,我们将从两个方面评估算法的行为:
定量(Quantitative):我们说偏好 是由奖励函数 产生的,当
时,有
如果人类的偏好是由一个奖励函数 产生的,那么我们的代理应该在 下得到一个高的总奖励。因此,如果我们知道报酬函数 ,我们就可以定量地评估代理人。理想情况下,代理将获得与使用RL优化
注:在这里,我们假设奖励是关于观察和动作的函数。在 Atari 环境中的实验中,我们假设奖励是前面 4 次观察的函数。在一般的部分可观测的环境中,我们可以考虑依赖于整个观测序列的奖励函数,并用循环神经网络对该奖励函数进行建模。
定性(Qualitative):有时我们没有定量地评估行为所需的奖励函数(在这种情况下,我们的方法也依然 work)。在这些情况下,我们所能做的就是定性地评估 agent 满足人类偏好的程度。在本文中,我们将从一个用自然语言表达的目标开始,展示代理试图实现该目标的轨迹片段视频,然后让一个评估人员根据 agent 完成该目标的程度来评估代理的行为。
我们基于轨迹片段比较的模型与 Wilson et al.(2012)中使用的轨迹偏好查询非常相似,只是我们不假设我们可以将系统重置为任意状态,因此我们的轨迹片段通常从不同的状态开始。这使得解释人类的比较结果变得更为复杂,但我们表明,即使人类评分员不了解我们的算法,我们的算法也克服了这一困难。
注:Wilson等人(2012年)还假设有能力对合理的初始状态进行采样。但是我们使用的是高维状态空间,对于这些高维状态空间,随机状态是不可到达的,并且预期的策略位于低维流形中
2.2 Our Method
在每个时间点,我们的方法都维护一个策略 和一个报酬函数估计
这些网络通过三个过程进行更新:
策略 与环境相互作用产生一组轨迹 。 的参数通过传统的 RL 算法进行更新,以最大化预测奖励
我们从第一步产生的轨迹 中选择成对的轨迹片段
映射
这些过程是异步运行的
轨迹从流程(1)流向流程(2)
比较偏好数据从流程(2)流向流程(3)
以下各小节提供了这些过程的详细信息
2.2.1 Optimizing the Policy
在使用 算出奖励后,就只剩下一个传统的强化学习问题,我们可以使用任何适合该领域的RL算法来解决它。一个微妙之处是,奖励函数 可能是非平稳的(就是可能随时间变化),所以我们倾向于对奖励函数的变化具有鲁棒性的方法。这导致我们将重点放在 策略梯度。
在本文中,我们使用 advantage actor critic (A2C; Mnih et al., 2016) 方法来玩Atari游戏,并使用 trust region policy optimization (TRPO; Schulman et al., 2015) 来执行模拟机器人任务。每种情况下,我们都使用已知对传统的RL任务很有效的参数设置,唯一调整的超参数是TRPO的熵加值(entropy bonus)。这是因为TRPO依赖信任区域来确保充分的探索,如果奖励函数发生变化,这可能导致不充分的探索。
我们将 。这是一个典型的预处理步骤,在这里特别合适,因为奖励的位置是由我们的学习问题决定的。
2.2.2 Preference Elicitation(偏好诱导)
人类监管者可以看到以短片的形式出现的两段轨迹。在我们所有的实验中,这些剪辑的长度都在1到2秒之间。然后,监督人员指出他们更喜欢哪一个片段,或者这两个部分同样好,或者他们无法比较这两个部分。
人类的判断记录在一个三元组 的数据库 中,其中 和 是两个片段, 是 上的分布,表示用户首选的轨迹片段。
如果人类选择一个轨迹片段作为首选,则
如果人类将片段标记为同样好的选择,则
如果人类将片段标记为不可比较,则数据库中不包含此比较
2.2.3 Fitting the Reward Function
如果我们将 视为解释人类判断的潜在因素,并假设人类偏好片段 的概率以指数形式取决于在片段长度上潜在奖励值之和,则我们可以将奖励函数估计值 :
注:等式1不使用折扣,这可以被解释为对那些对轨迹段中发生的事情漠不关心的人进行建模。使用显式折扣或推断人类的折扣函数也是合理的选择。
我们选择可以最小化这些预测和实际人类标签之间交叉熵损失的 :
这遵循了Bradley-Terry模型(Bradley和Terry,1952),用于根据成对偏好估计得分函数,是 Luce-Shephard 选择规则(Luce,2005;Shepard,1957)对轨迹段偏好的专门化。它可以理解为将奖励等同于偏好等级,类似于著名的国际象棋Elo等级系统(Elo,1978)。正如两名棋手的Elo点数的差异估计了一名棋手在比赛中击败另一名棋手的概率一样,两个轨迹段的预测奖励差异估计了人类选择其中一个的概率。
我们的实际算法对这一基本方法进行了许多修改,早期实验发现以下这些修改很有帮助,我们在第3.3节中进行分析:
我们拟合了一组预测因子,每个预测因子都使用从 中有替换地抽取的 个三元组进行训练(这说的就是是 Bootstrapping自助抽样法)。独立地对这些预测值进行归一化,然后对结果取平均来定义。
数据的一小部分()被用作每个预测值的验证集。我们使用
我们假设人类有 10% 的概率给出随机均匀响应,而不是如等式1所述直接应用softmax。从概念上讲,这种调整是必要的,因为人类评分员有一个恒定的出错概率,即使是奖励差异变得极端时,错误概率也不会衰减为0。
2.2.4 Selecting Queries
我们根据奖励函数估计器不确定性的近似值来查询偏好,类似于Daniel et al.(2014):我们采样大量长度为 的轨迹片段,使用我们集合中的每个奖励预测器预测每对轨迹片段中优先选择的片段,然后选择预测在所有奖励预测器给出的结果上具有最大方差的轨迹(最不确定)。这是一个粗略的近似值,第3节中的消融实验表明,在某些任务中,消融实际上会降低性能。理想情况下,我们希望根据查询信息(应该是指方差)的期望值进行查询(Akrour et al.,2012;Krueger et al.,2016),我们将这一方向留给未来工作进一步探索
3. Experimental Results
我们在TensorFlow中实现了我们的算法(Abadi等人,2016),使用 OpenAI Gym(Brockman et al.,2016)与 MuJoCo(Todorov et al.,2012)和 Arcade 学习环境(Bellemare et al.,2013)进行互动
3.1 Reinforcement Learning Tasks with Unobserved Rewards
第一组实验中,我们试图解决一系列 Deep RL 基准任务,agent 不能观察真实奖励,仅能通过询问人类两个轨迹段中哪一个更好来了解任务的目标。我们的目标是使用尽可能少的查询在合理的时间内解决任务。
在我们的实验中,反馈是由外包人员提供的,我们首先向外包人员提供1-2句关于任务的描述,然后他们要比较几百到几千对该任务的轨迹段片段(给外包人员的任务说明见附录B)。每个轨迹片段的长度在1到2秒之间。外包人员平均在3-5秒钟内回复了查询,因此涉及真实人类反馈的实验需要30分钟到5小时的人类时间。
为了进行比较,我们还在实验中使用了一个合成 oracle,该 oracle 对轨迹的偏好是通过底层任务中的估计奖励给出的。也就是说,当代理查询比较时,我们不会将查询发送给人,而是通过指示对 “在基础任务中收到较高奖励的轨迹片段的偏好” 来立即进行答复。
注:在奖励稀少的Atari游戏中,两个轨迹片段都没有奖励是比较常见的,在这种情况下oracle会输出无区别(indifference)。因为我们考虑的是轨迹片段而不是单个状态,所以这种情况从未在我们的数据中占据绝大多数。此外,只要比较的轨迹组不太常见,它仍然为奖励预测者提供重要信息。
我们还比较了使用真实奖励的 RL Baseline,这里我们的目标不是要超越它,而是在没有奖励信息的情况下,依靠稀疏得多的反馈信息,尽量做得和RL一样好。然而,请注意,来自真实人类的反馈确实有可能超越RL(如下所示,它在某些任务中确实如此),因为人类反馈可能会提供更好的回报。
我们在附录A中描述了我们实验的细节,包括模型架构、环境修改以及用于优化策略的RL算法。
3.1.1 Simulated Robotics
我们考虑的第一个任务是利用 OpenAI Gym 在 MujoCo 中实现的八个模拟机器人任务。我们对这些任务进行了一些小的修改,以避免在环境中对任务本身的信息进行编码(这些修改在附录A中有详细描述)。这些任务中的奖励函数是关于距离、位置和速度的线性函数,并且都是特征的二次函数。我们还比较了一个简单的cartpole 任务,因为这代表了之前工作中研究的任务的复杂性。
图2显示了使用 700 条人类评分员查询训练 agent 的结果,和它比较的有使用350、700或1400个合成查询进行训练的结果,以及使用真实奖励进行RL学习的结果
图2: MuJoCo模拟机器人的结果,根据执行任务获取的真实奖励进行度量。我们比较了使用真实人类反馈(紫色)、使用 oracle 提供的合成反馈(蓝色阴影)和使用真实奖励函数(橙色)的强化学习的方法。除了真实的人工反馈是一次运行的结果外,所有曲线都是5次运行的平均值,曲线上每个点是连续五批运行的平均奖励。由于时间限制,一位作者提供了Reacher任务和Cheetah任务的反馈。对于所有其他任务,人类反馈由不熟悉环境和我们算法的外包人员提供。Hopper任务的不规则进度是由于一个外包人员偏离了典型的标记安排。
有了 700 个标签,我们几乎可以在所有这些任务上媲美强化学习。使用学到的奖励函数进行训练往往不太稳定,方差更高,但同时也具有可比的平均性能。
令人惊讶的是,利用 1400 个标签,我们的算法的性能略好于给予真正奖励的情况,这可能是因为学习到的奖励函数的形式稍微好一些 —— 奖励学习程序为所有通常能得到高奖励的行为分配更多的奖励。
使用真实的人工反馈通常只比使用合成反馈的效果稍差;根据任务的不同,人工反馈的效率从真实反馈的一半到同等效率不等。在 Ant 任务中,人类反馈明显优于合成反馈,显然是因为我们要求人类给出更偏好机器人 “直立” 轨迹的反馈,事实证明这是有效的奖励塑造(useful reward shaping)。(RL 奖励函数中也有类似的奖励来鼓励机器人保持直立,但简单的手工制作的奖励并没有那么有用)。
3.1.2 Atari
我们考虑的第二组任务是 Arcade Learning Environment (Bellemare et al., 2013) 中的一组七个 Atari 游戏,与 Mnih et al., 2013 中介绍的游戏相同。
图 3 显示了使用 5500 条人类查询进行训练的结果,和它比较的有使用350、700或1400个合成查询进行训练的结果,以及使用真实奖励进行RL学习的结果。要在这些具有挑战性的环境中媲美 RL,我们的方法面对的难度更大,但尽管如此,它在大多数环境中显示出很好的学习效果,并且在某些情况下媲美甚至超过了 RL。具体来说
在 BeamRider 和 Pong 任务上,即使只有 3,300 个合成标签,agent性能也匹配或接近 RL
在 Seaquest 和 Qbert 任务上,合成反馈最终的表现接近 RL 的水平,但学习速度更慢
在 SpaceInvaders 和 Breakout 任务上,合成反馈永远无法与 RL 匹配,但尽管如此,智能体还是有很大提高,通常会通过 SpaceInvaders 中的第一关;在 Breakout 上达到 20 分,或者在有足够标签的情况下达到 50 分
图 3:根据任务的真实奖励衡量的 Atari 游戏结果。我们比较了使用真实人类反馈(紫色)的方法、使用oracle 提供的合成反馈的方法(蓝色阴影)以及使用真实奖励函数(橙色)的强化学习。 除了真实的人类反馈是单次运行以外,所有曲线都是 3 次运行的平均值,每个点都是大约 150,000 连续帧的平均奖励(就是每一个点代表一段轨迹的平均奖励,在图上x轴方向少画一些点)
在大多数游戏中,真实人类反馈的表现与具有相同标签数量的合成反馈相似或略差,并且通常与标签量少 40% 的合成反馈相当。这可能是由于。
标记中的人为错误
不同外包人员对同一次运行的标记不一致
外包人员的标记率不均匀(这可能导致标记过度集中在状态空间的狭窄部分),此问题可能可以通过未来对外包标签渠道的改进来解决
在 Qbert 任务上,我们的方法未能通过真实的人工反馈学会完成第一关;这可能是因为 Qbert 中的轨迹片段令人困惑且难以评估。最后,由于难以通过随机探索成功超越其他汽车,A3C 方法很难学习 Enduro 任务,相应地,使用合成标签也难以学习,但人工标记者倾向于奖励任何超过其他汽车的进步,从本质上塑造奖励,所以其在这个任务的对比中表现优于 A3C(结果与使用 DQN 取得的成绩相当)。
3.2 Novel behaviors
传统 RL 任务的实验帮助我们了解我们的方法是否有效,但人类交互的最终目的是解决没有可用奖励函数的任务。使用与之前实验相同的参数,我们表明我们的算法可以学习新的复杂行为。 我们的实验表明:
Hopper 机器人学会了执行后空翻动作(见图 4)。这种复杂行为是在不到一个小时内使用 900 次查询训练的。代理学会始终如一地执行后空翻、直立着陆并重复。
Half-Cheetah 机器人学会了使用单腿向前移动。这种行为是在一个小时内使用 800 个查询进行训练的
在 Enduro 环境中,agent学会了与其他汽车并排行驶。 这是通过大约 1300 个查询和 400 万帧与环境的交互进行训练的;在一