论文理解【IL - IRL】 —— Deep Reinforcement Learning from Human Preferences


1. 动机

  • 奖励函数设计是强化学习中的一个难题。从本质上讲,奖励函数是对任务目标的一种抽象,也是我们向 agent 传达任务目标的桥梁。当任务非常复杂时,很难将目标转化为奖励函数这种形式化、数字化的表征。试想一下,如何为煎鸡蛋这个任务设计奖励函数?
  • 虽然将煎鸡蛋这个任务数字化抽象为奖励函数很困难,但是我们人类执行这个任务则没什么难度,也就是说,我们可以以相对低的成本获取很多完成这个任务的专家轨迹,这样我们就可以做模仿学习(IL),比如我们可以先用逆强化学习(IRL)方法从专家轨迹中恢复奖励函数,再用这个奖励函数做 RL。这种方法虽然有效,但是仍存在限制,假如任务太难了,以至于普通人很难完成呢?比如遥控玩具飞机做特技,或者控制一个虚拟机器人后空翻,这些特殊任务需要训练有素的专业人士提供专家轨迹,成本就又上去了
  • 注意到从提供奖励函数到提供任务轨迹,我们降低了对人能力的要求,从而降低成本。按这个思路继续下去,虽然我们不能给出复杂任务的完整轨迹,但是评估某条轨迹的效果还是比较容易的。比如后空翻任务,我们一眼就能看出某段轨迹是不是后空翻,并且能对完成质量给出大概的评估。显然,可以把这个评估作为这一段轨迹的 return,执行 MC 类的 RL 方法
  • 这看起来好像不错,但我们普通人不是专业裁判,且通常没有一个详尽的评价标准,难以给出稳定的定量评估分数。于是我们再次降低要求,只要人类定性地对比两条轨迹哪个比较好就行了
    在这里插入图片描述
  • 本文提出的就是一种利用上述 “人类偏好” 进行 DRL 的方法,非正式地说, agent 的目标是通过向人类发出尽量少的偏好比较请求,生成人类喜欢的轨迹

2. 方法

2.1 设置和目标

  • 考虑通过一系列步骤与环境交互的代理:在每个时刻 t t t,代理从环境中接收到一个观测 o t ∈ O o_t \in \mathcal{O} otO,然后向环境发送一个动作 a t ∈ A a_t \in \mathcal{A} atA,轨迹片段是观察和动作组成的序列 σ = ( ( o 0 , a 0 ) , ( o 1 , a 1 ) , . . . , ( o k − 1 , a k − 1 ) ) ∈ ( O × A ) k \sigma = \big((o_0,a_0),(o_1,a_1),...,(o_{k-1},a_{k-1})\big) \in (\mathcal{O\times A})^k σ=((o0,a0),(o1,a1),...,(ok1,ak1))(O×A)k
  • 用符号 σ 1 ≻ σ 2 \sigma^1 \succ \sigma^2 σ1σ2 表示相比轨迹段 σ 2 \sigma^2 σ2 更偏好轨迹段 σ 1 \sigma^1 σ1
    1. 定量地讲,偏好 ≻ \succ 是由某个奖励函数 r : O × A → R r:\mathcal{O\times A} \to \mathbb{R} r:O×AR 产生的, σ 1 ≻ σ 2 \sigma^1 \succ \sigma^2 σ1σ2 代表
      ∑ i = 1 k − 1 r ( o i 1 , a i 1 ) > ∑ i = 1 k − 1 r ( o i 2 , a i 2 ) \sum_{i=1}^{k-1}r(o_i^1,a_i^1) > \sum_{i=1}^{k-1}r(o_i^2,a_i^2) i=1k1r(oi1,ai1)>i=1k1r(oi2,ai2) 这是说,如果人类的偏好是由一个奖励函数 r r r 产生的,那么 agent 应该在 r r r 下得到一个更高的 return
    2. 就像第1节说的那样,通常我们没有定量评估所需的奖励函数 r r r。这时我们只能定性地评估 agent 满足人类偏好的程度,从而给出偏好
  • 为了增加方法的普适性,我们不能将系统重置为指定状态,因此用于比较的轨迹片段通常从不同的状态开始,这增加了人类比较评估的难度,也使得人类的比较结果更难解释,但是本方法克服了此困难

2.2 具体方法

  • 维护一个策略 π : O → A \pi: \mathcal{O}\to \mathcal{A} π:OA 和一个奖励函数估计 r ~ : O × A → R \tilde{r}:\mathcal{O\times A}\to \mathbb{R} r~:O×AR ,这二者都由深度神经网络参数化

  • 通过三个过程进行更新这些网络

    1. 通过策略 π \pi π 与环境相互作用产生一组轨迹 { τ 1 , τ 2 , . . . , τ i } \{\tau^1,\tau^2,...,\tau^i\} {τ1,τ2,...,τi} π \pi π 的参数通过传统的 RL 算法进行更新,以最大化预测奖励 r t = r ^ ( o t , a t ) r_t = \hat{r}(o_t,a_t) rt=r^(ot,at) 的总和
    2. 从第一步产生的轨迹 { τ 1 , τ 2 , . . . , τ i } \{\tau^1,\tau^2,...,\tau^i\} {τ1,τ2,...,τi} 中选择成对的轨迹片段 ( σ 1 , σ 2 ) (\sigma^1,\sigma^2) (σ1,σ2) ,并将其发送给人类进行比较
    3. 所有历史片段比较样本放在一起,用监督学习得到映射 r ^ \hat{r} r^

    这三个过程异步运行

    1. 轨迹从流程(1)流向流程(2)
    2. 比较偏好数据从流程(2)流向流程(3)
    3. r ^ \hat{r} r^ 的参数从流程(3)流向流程(1)

    异步运行的好处在于,人类任意一次给出偏好之前,上次给出的偏好数据已经影响了奖励函数 r ~ \tilde{r} r~,并且被 agent 用于更新策略了一段时间,这次请求比较的两个轨迹片段都是由新 r ~ \tilde{r} r~ 引导的策略给出的,也就是说上次的偏好数据得到了充分的利用

  • 流程示意图
    在这里插入图片描述

2.2.1 优化策略

  • 得到奖励函数 r ^ \hat{r} r^ 后,就只剩下一个传统的强化学习问题,注意 r ^ \hat{r} r^ 可能是非平稳的(就是可能随时间变化),需要于对奖励函数的变化具有鲁棒性的方法。所以我们将重点放在 策略梯度 算法上,该方法已成功应用于此类问题。
  • 在本文实验中,使用 A2C 玩Atari游戏;使用 TPRO 执行模拟机器人任务。两种情况下都使用目前最好的超参数设置,唯一调整的超参数是 TRPO 的 entropy bonus。这是因为TRPO依赖信任区域来确保充分的探索,如果奖励函数发生变化,这可能导致不充分的探索
  • r ^ \hat{r} r^ 产生的奖励分布 normalize 为零均值和常数标准差,这是一个典型的预处理步骤(注意,这种 normalize 不会改变原始分布形状,只是对他做了线性变换,缩放+平移)

2.2.2 偏好诱导

  • 监督人员可以看到以短片的形式出现的1到2秒的两段轨迹,监督人员需要指出他们更喜欢哪一个片段,或者这两个部分同样好,或者他们无法比较这两个部分。
  • 人类的判断记录在一个三元组 ( σ 1 , σ 2 , μ ) (\sigma^1,\sigma^2,\mu) (σ1,σ2,μ) 的数据库 D \mathcal{D} D 中,其中 σ 1 \sigma^1 σ1 σ 2 \sigma^2 σ2 是两个片段, μ \mu μ { 1 , 2 } \{1,2\} {1,2} 上的分布,表示用户首选的轨迹片段。
    1. 如果人类选择一个轨迹片段作为首选,则 μ \mu μ 将其所有权重放在该选择上
    2. 如果人类将片段标记为同样好的选择,则 μ \mu μ 是均匀分布
    3. 如果人类将片段标记为不可比较,则数据库中不包含此比较

2.2.3 拟合奖励函数

  • 如果我们将 r ^ \hat{r} r^ 视为解释人类判断的潜在依据,并假设人类偏好片段 σ i \sigma^i σi概率以指数形式取决于片段的 return,则我们可以将奖励函数估计值 r ^ \hat{r} r^ 解释为偏好预测器(这个形式没有折扣,加上显式折扣也行):
    P ^ [ σ 1 ≻ σ 2 ] = e x p ∑ r ^ ( o t 1 , a t 1 ) e x p ∑ r ^ ( o t 1 , a t 1 ) + e x p ∑ r ^ ( o t 2 , a t 2 ) (1) \hat{P}[\sigma^1 \succ \sigma^2] = \frac{exp\sum\hat{r}(o_t^1,a_t^1)}{exp\sum\hat{r}(o_t^1,a_t^1)+exp\sum\hat{r}(o_t^2,a_t^2)} \tag{1} P^[σ1σ2]=expr^(ot1,at1)+expr^(ot2,at2)expr^(ot1,at1)(1) 最小化预测偏好分布和实际人类偏好分布之间的交叉熵损失,从而优化 r ^ \hat{r} r^
    l o s s ( r ^ ) = − ∑ ( σ 1 , σ 2 , μ ) ∈ D μ ( 1 ) l o g P ^ [ σ 1 ≻ σ 2 ] + μ ( 2 ) l o g P ^ [ σ 2 ≻ σ 1 ] (2) loss(\hat{r}) = -\sum_{(\sigma^1,\sigma^2,\mu)\in\mathcal{D}}\mu(1)\mathrm{log}\hat{P}[\sigma^1\succ\sigma^2]+\mu(2)\mathrm{log}\hat{P}[\sigma^2\succ\sigma^1] \tag{2} loss(r^)=(σ1,σ2,μ)Dμ(1)logP^[σ1σ2]+μ(2)logP^[σ2σ1](2) 这遵循了根据成对偏好估计得分函数的 Bradley-Terry 模型,可以理解为将 return 值等同于偏好等级,return 越高的轨迹,人类偏好它的概率就越高
  • 实际算法中增加了以下有帮助的修改
    1. D \mathcal{D} D 中有替换地抽取的 ∣ D ∣ |\mathcal{D}| D 个三元组进行训练(就是 Bootstrapping自助抽样法),得到一组 “奖励函数predictor”,独立归一化,然后取均值得到 r ^ \hat{r} r^
    2. 数据的一小部分( 1 e \frac{1}{e} e1)被用作每个 predictor 的验证集,使用 l 2 l_2 l2 正则化,使验证损失保持在训练损失的1.1到1.5倍之间。在某些领域中,我们还应用 dropout 进行正则化
    3. 假设人类有 10% 的概率给出随机均匀响应,而不是如等式1所述直接应用softmax。从概念上讲,这种调整是必要的,因为人类监督者有一个恒定的出错概率,即使是奖励差异变得极端时,错误概率也不会衰减为0

2.2.4 选择查询

  • 根据奖励函数predictor的 不确定性 来查询偏好:采样大量长度为 k k k 的轨迹片段,从中选出一些片段对,使用每个predictor预测每一对的片段的偏好,然后选择预测在所有 predictor 给出的结果上具有最大方差的轨迹(最不确定)发起查询
  • 理想情况下,我们希望根据方差的期望值进行查询,但上面得到的只是一个粗略的近似值,这一方向有待进一步探索

3. 实验

3.1 Reinforcement Learning Tasks with Unobserved Rewards

  • 这一组实验主要是为了验证本文方法的有效性,agent 不能观察真实奖励,仅能通过询问人类两个轨迹段中哪一个更好来了解任务的目标,目标是使用尽可能少的查询在合理的时间内解决任务。
  • 这一组实验的对比项包括
    1. 本文方法,由外包人员提供比较偏好(human queries)。实验员向外包人员提供1-2句关于任务的描述,然后他们要再任务训练过程中比较几百到几千对该任务的轨迹段片段
    2. 本文方法,由一个合成 oracle 提供比较偏好(synthetic queries),这个 oracle 可以访问到针对任务手工设计的奖励函数,并以此为基准给出偏好标签。合成 oracle 在面对差不多的轨迹时可以给出更准确的偏好,且不会出错,但是受制于奖励函数设计(如果奖励函数设计得不好,可能会有 human queries 正确而 synthetic queries 错误的情况)
    3. 使用手工奖励训练的 RL Baseline,目标不是要超越它,而是在没有奖励信息的情况下,依靠稀疏得多的反馈信息,尽量做得和 RL 一样好(事实上,如果我们的方法学习出更好的奖励函数,性能是有机会超过 RL Baseline的)

3.1.1 Simulated Robotics

  • MujoCo中的八个模拟机器人任务,RL Baseline 算法是 TPRO,如下
    在这里插入图片描述
  • 可见
    1. 有了 700 个对比偏好,就几乎可以在所有这些任务上媲美强化学习(虽然不太稳定方差较高)
    2. 利用 1400 个标签,我们的算法的性能略好于给予手工奖励的情况,这可能是因为学习到的奖励函数的形式更好
    3. 根据任务的不同,人工反馈的效率通常在真实反馈的一半到同等效率之间,少数任务中,由于进行了更有效的 reward shaping,人类反馈优于合成反馈

3.1.2 Atari

  • Arcade Learning Environment 中的一组七个 Atari 游戏,RL Baseline 算法是 A3C,如下
    在这里插入图片描述
  • 可见
    1. 本文方法在大多数环境中显示出很好的学习效果,并且在某些情况下媲美甚至超过了 RL
    2. 大多数游戏中,真实人类反馈的表现与具有相同标签数量的合成反馈相似或略差,并且通常与标签量少 40% 的合成反馈相当
    3. 特殊情况:Qbert 任务中的轨迹片段令人困惑且难以评估,本文方法失效;由于难以通过随机探索成功超越其他汽车,A3C 方法和合成标签方法都很难学习 Enduro 任务,但人工标记者倾向于奖励任何超过其他汽车的进步,从本质上塑造奖励,所以其在这个任务的对比中表现优于 A3C(结果与使用 DQN 取得的成绩相当)

3.2 Novel behaviors

  • 这一组实验说明,利用本文方法,可以在没有奖励函数的情况下学习复杂行为(左图)
    在这里插入图片描述在这里插入图片描述
    这类复杂任务的奖励函数设计非常困难,针对这个任务,作者团队使用两个小时设计了下面这个非常复杂的奖励函数,用它直接 RL 的效果差得多(右图)

    def reward_fn(a, ob):
        backroll = -ob[7]
        height = ob[0]
        vel_act = a[0] * ob[8] + a[1] * ob[9] + a[2] * ob[10]
        backslide = -ob[5]
        return backroll * (1.0 + .3 * height + .1 * vel_act + .05 * backslide)
    

    在很多情况下,相比与手工设计,人类的反馈可以让我们更直观、更快地指定一个具体的目标

  • 更有趣的是,这种能力允许我们在一些 RL 环境中学会执行环境原始目标任务以外的任务。例如在 Enduro 环境中训练 agent 精确地与其他汽车平行行驶
    在这里插入图片描述

3.3 Ablation Studies

  • 这一节进行消融实验,对比设置如下
    1. 随机查询:均匀随机选择查询,而不是根据一组奖励函数 predictor 的偏好方差进行优先查询
    2. 不进行集成:只训练一个奖励函数 predictor 用来生成 r ~ \tilde{r} r~,这时只能随机选择查询
    3. 非在线查询:利用离线收集的偏好数据进行训练,而不是在训练时在线查询
    4. 不做正则化:移除 l 2 l_2 l2 正则化并仅使用 dropout
    5. 不使用轨迹片段:在机器人任务中,我们使用长度为 1 的轨迹片段(即单个状态)
    6. 目标:不再使用轨迹偏好拟合 r ^ \hat{r} r^,而是考虑一个可以提供轨迹段上真实总回报的 oracle,通过最小化均方误差拟合 r ^ \hat{r} r^(就是说这里要求实验员给出轨迹的绝对评分,而非相对偏好)
  • 上图是MuJoCo结果,下图是Atari结果
    在这里插入图片描述
    在这里插入图片描述
  • 作者发现
    1. offline情况下表现不佳:离线情况下,由于占用分布(occupancy distribution)的非平稳性,predictor 只捕获了真实奖励的一部分,最大化这部分奖励会导致奇怪的行为。例如,离线训练 Pong 任务有时会导致agent避免失分而不是得分;这可能导致极长的无限重复相同的事件序列(视频见 https://goo.gl/L5eAbk)。因此人类反馈需要与 RL 学习交织在一起,而不是静态提供(这本质上是模仿学习的分布漂移/mismatch问题)
    2. 人类提供一致的比较,比提供一致的绝对分数容易得多
      1. 对于连续控制任务,预测比较偏好比预测分数更有效。这很可能是因为奖励的规模变化很大,使得回归问题变得复杂,当我们只需要预测比较时,回归问题会显著平滑
      2. 对于Atari任务,作者clipped rewards,只预测轨迹 return 值的正负号(也就是让监督者指出当前轨迹是更好了还是更坏了),避免了上述困难(对于连续控制任务来说,这不是一个合适的解决方案,因为奖励的相对大小对学习很重要)。在这些任务中,使用偏好数据和return 符号数据显著不同的表现,但没有一个始终优于另一个
    3. 使用单帧而非轨迹片段时,出现了很大的性能差异。为了使用单帧获得相同的结果,需要收集更多的比较数据。总的来说,作者发现让人类比较较长的片段,每一个片段的帮助明显更大
  • 更多实验详情见全文翻译:论文翻译 —— Deep Reinforcement Learning from Human Preferences

4. 讨论

4.1 原文讨论部分

  • 通过使用监督学习学习一个单独的奖励模型,可以将交互复杂性降低大约3个数量级。这不但表明我们可以根据人类偏好有意义地培训深度RL代理,而且我们已经在进一步改进样本复杂性方面遇到了收益递减的情况,因为计算成本已经与获取非专家反馈的成本相当
  • 尽管有大量关于未知奖励函数的偏好诱导和利用未知奖励函数进行强化学习的文献,但我们第一次证明了这些技术可以经济地扩展到 SOAT 的强化学习系统。这代表了将深度强化学习实际应用于复杂现实世界任务的一步
  • 未来的工作可能能够提高从人类偏好中学习的效率,并扩大它可以应用的任务范围。从长远来看,从人类偏好中学习任务不会比从程序化奖励信号中学习更困难,这保证了强大的 RL 系统可以应用于复杂的人类价值观,而不仅仅是应用于低复杂性目标

4.2 我的分析

  • 我认为这篇文章是很有启发性的,首先这是 IRL 方法的一个变形,一般的模仿学习方法中,获取专家示范数据是成本最高的部分。为了降低成本,很多方法是从非专家指导,利用次优示范的角度来考虑的,而这篇文章则是改变了专家示范的形式,从人的认知能力入手,直接降低了示范任务的难度,从而让普通人也能给出有效的示范数据。
  • 本文使用的异步方案也很不错,从工程角度看,确实提升了训练效率,而且监督人员可以逐渐看到自己提供监督信息的效果,有一定的反馈作用,在做模仿学习时可以考虑。
  • 从更高的角度看,本文提出了一种新的向 agent 传递任务目标的方法,而且几乎是无偏的(因为online形式,即使出现偏差,也能由监督人员快速修正),请看 强化学习拾遗 —— 再看奖励函数 第4节。不管用什么方法,只要弄出比较偏好,就能接上本文得到一种新方法
  • 下面提几个问题
    1. 这个算法的性能上限是人类评估者对正确行为的直觉,所以如果监督人员对任务没有很好的把握,他们可能不会提供那么多有用的反馈,导致性能上不去
    2. 在某些领域,agent 可能会学到欺骗评价者的策略。例如,一个本应抓取物品的机器人将它的机械手放置在相机和物体之间,使它看起来只是在抓取它(这本质是一种特殊的 reward hacking 问题),如下所示
      在这里插入图片描述
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
"lets-do-irl" 是一个英文短语,表示鼓励将虚拟世界的交流转化为现实世界的行动。它可以用来鼓励人们跨越网上空间,面对面地会面和互动,以加强沟通和真实体验。 "lets-do-irl" 的意思是希望能够抛开虚拟社交媒体和聊天应用的束缚,跳出网络的框架,与人们真实地相遇和交流。通过面对面的互动,我们能够更深入地了解他人,更好地分享和传递信息。虚拟世界的沟通往往缺乏真实性和纯粹性,而真实的接触可以带来更加真实和深入的交流体验。 在以科技为基础的社会中,人们越来越依赖虚拟交流。虽然这种交流方式能够跨越时空限制,但是它也有一定的局限性。通过面对面的会面,我们可以观察对方的表情、姿态和语气,更好地理解他们的意图和情感。这种亲身的经历可以增强交流的真实性和亲近感。 通过真实的接触,我们也可以建立更加稳固和持久的关系。通过面对面的互动,我们可以建立真正的信任和情感联系。而纯粹的虚拟世界交流容易被误解和产生疑虑。通过亲自相遇和交谈,我们可以更好地解决问题,协商解决方案,并减轻误解和误会。 总之,“lets-do-irl”鼓励我们摆脱虚拟媒体的限制,勇敢地投入现实世界的交流和互动。通过真实的接触,我们可以获得更丰富和深入的交流体验,建立真实和持久的关系,并在现实生活中享受更多的亲密和真诚。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值