Offline/Batch RL简介

  • 为了避免在每篇 Offline RL 相关论文 Blog 的 Background 部分重复说明,单独发布这篇简介

文章目录

  • 1. 问题范式
    • 1.1 范式
    • 1.2 和 Imitation Learning 的相似性
    • 1.3 和 Off-Policy RL 的相似性
    • 1.4 Why Offline?
  • 2. 相关方法
    • 2.1 Extrapolation error 问题
    • 2.2 RL-based 方法
    • 2.3 IL-based 方法
  • 3. Benchmark:D4RL
    • 3.1 意义
    • 3.2 设计标准
    • 3.3 任务、算法与评估标准

1. 问题范式

1.1 范式

  • Offline RL 是这样一种问题设定:Learner 可以获取由一批由 behavioral policies 和环境交互得到的 episodes 或 transitions 构成的 fixed dataset,要求 Learner 直接利用它训练得到一个好的策略,禁止 Learner 和环境进行任何交互

  • 形式化地讲,对于 MDP ( S , A , g , r , ρ , γ ) \big(\mathcal{S,A,g,r,\rho,\gamma}\big) (S,A,g,r,ρ,γ)(其中 ρ \rho ρ 是初始状态分布, g ( s , a ) , r ( s , a ) g(s,a),r(s,a) g(s,a),r(s,a) 是状态转移矩阵和奖励函数),向 Learner 提供由 m m m 个 transition 组成的 batch B = { ( s i , a i , r i , s i ′ ) , i = 1 , 2 , . . . , m } \mathcal{B}=\{(s_i,a_i,r_i,s_i'),i=1,2,...,m\} B={(si,ai,ri,si),i=1,2,...,m},Learner 的目标是在不和环境进行任何交互的情况下,利用这个 batch 训练一个高性能策略,使得累计折扣收益最大化

  • 可见,这相当于把 “探索” 和 “利用” 完全分开了。在更加 general 的情况下,我们对于给出示范数据的策略不做任何要求,示意图如下
    在这里插入图片描述

  • 关于问题范式的详细说明,请参考:图解 RL/IL 问题范式

1.2 和 Imitation Learning 的相似性

  • 模仿学习示意图如下
    Offline/Batch RL简介_第1张图片
  • Offline RL 的问题设定和 Imitation Learning 非常相似,区别主要有三点
    1. Offline RL 完全禁止 Learner 与环境交互,而 IL 仍允许 Learner 进行交互
    2. Offline RL 交互数据中存在奖励信号,而 IL 的交互数据中没有
    3. Offline RL 中生成 batch 数据集的策略(一般叫行为策略behavior policy)不再是唯一的专家策略,而可以是任意策略(可以非最优,可以非平稳、可以是多个策略的混合…),对行为策略质量没有要求

1.3 和 Off-Policy RL 的相似性

  • Off-Policy RL 方法中,用于和环境交互生成轨迹的策略(行动策略) π b \pi_b πb 和最终得到的策略(目标策略) π t \pi_t πt 是不同的,这种设定破除了对优化数据来源的限制,有三个好处

    1. 允许将过去的 transition 数据可以存下来重复利用以提升样本效率
    2. on-policy 算法的探索是直接建立在其价值估计上的,而价值估计又来自探索获取的 transition,二者循环依赖,这会导致更强的风险寻求行为并使得训练不稳定,若能打乱更新价值估计时使用的经验 transition 顺序,则可缓解此问题
    3. 在 DRL 方法中,Online 交互数据的 transition 样本相关性太高,不利于神经网络训练,若能随机地混用过去的 transition,可以可以减少样本相关性,更贴合神经网络对数据 i.i.d 性质的要求

    于是 Off-Policy RL 方法中出现了 replay buffer 经验重放的概念,示意图如下
    Offline/Batch RL简介_第2张图片

    可见,利用 replay buffer 更新策略这个过程和 Offline RL 做的事情几乎一样,只是这里我们还可以 Online 地扩展数据集

  • 另一方面,如果把 Offline/Batch RL 改成 On-policy 设定,增加一个探索扩增交互数据集的部分,则得到另一种称为 Growing batch RL 的问题设定,示意图如下
    Offline/Batch RL简介_第3张图片
    可以看到这个设定和带 replay buffer 的 Online Off-policy RL 非常相像了,区别仅在于更新策略时使用的 transition 样本量,另外 Growing batch RL 通常没有目标策略。这种 Growing batch RL 也可以看作数据分阶段扩增的 batch RL,也就是说它可以实现为以下两个过程的交替迭代

    1. 根据策略 π \pi π 收集收集一批交互数据,并入交互数据集中
    2. 在整个交互数据集上使用 batch RL 方法,提升策略 π \pi π

1.4 Why Offline?

  • 先放一个有意思的
    Offline/Batch RL简介_第4张图片
    虽然这有点抖机灵,不过俞扬老师还做了补充说明

    强化学习这个古老的研究领域 2016 前在国内一直比较冷的根源就是没法用。研究领域大家也都清楚强化学习算法样本利用率低,然后做出了很多改进,但是要改进到什么程度才能有用呢,其实根据我们的经验有一个标准:
    零试错:一次试错不能有,上线即能发挥效果,还要明显优于基线
    offline RL是个正确的方向,但是目前的主流研究也有很多明显的弯路,可能发论文与做落地本身就是不同的事,大家的关心点不可能完全一致吧

  • 一句话说,Offline RL 是一个有利于 RL 落地应用的技术。Online-RL 方法要求和环境在线交互训练,在落地时就会遇到两个困难

    1. 需要可用且能大量交互的环境,而这往往成本很高,尤其是那些涉及到安全问题的现实任务
    2. 训练早期给出的策略很差,因此很多现实任务不能直接训练,只能先做模拟器。比如你不能为了学会自动驾驶撞坏 10000 台汽车,事实上这还催生了 sim2real 这个研究方向

    那么模仿学习是不是比较好落地?也没有好多少

    1. 模仿学习本质是为了避免奖励函数设计的困难,仍需要可以交互的环境
    2. 模仿学习还需要引入示范专家,而专家的成本也很高

    Offline-RL 的优势在于

    1. 直接在过去的交互数据集上学到一个良好的策略,提升数据利用率
    2. 对样本来源策略没有要求,不需要高成本的专家.
    3. 不再需要和环境交互,不但降低了训练成本,更关键的是有希望做到零试错落地

2. 相关方法

2.1 Extrapolation error 问题

  • 注意到 Offline RL 和 Off-Policy RL 更新策略时的相似性,一个 Naive 的想法就是直接在 Offline 数据集上使用传统的 Off-policy RL 方法(如 DQN 或 DDPG)。原则上讲,当数据集足够大时,这种方法也是 work 的,这有点像离散环境中的 MC Control 方法,比如 MC policy iteration,但事实上,要想取得良好效果,特别是在连续环境上,其需要的数据集几乎是无穷大,当数据集大小有限时,这会导致 Extrapolation error 问题,即对数据集未覆盖的 S × A \mathcal{S\times A} S×A 空间的价值估计不准,因而无法对 agent 在数据集未覆盖的 S × A \mathcal{S\times A} S×A 空间上的策略性能有任何保证

  • BCQ 这篇论文 Extrapolation error 问题的出现其归为以下三个问题

    1. Absent Data:对某个 (s,a) 的价值估计误差可以看作关于数据集中相似二元组数量的函数。如果数据集中没有在 ( s ′ , π ( s ′ ) ) (s',\pi(s')) (s,π(s)) 附近的样本,那么其价值估计 Q θ ( s ′ , π ( s ′ ) ) Q_\theta(s',\pi(s')) Qθ(s,π(s)) 是任意糟糕的
    2. Model Bias:在使用 Bellman equation 估计价值时,其本质是基于 MC 的,为了得到准确的 Q 价值函数,RL 方法其实隐含着两个假设 “可以观测到无限多的episode”;“所有 ( s , a ) (s,a) (s,a) 二元组都有非零概率被选中”,这保证了对于任意二元组,我们都能获取无限多的样本计算其价值,从而保证 MC 的收敛性。而在 offline 设定下,我们只能在数据集上取期望,这就引入了偏差
    3. Training Mismatch:当优化价值网络时,我们通常会从数据集中均匀采样 transition 来优化关于 TD error 的 L2 损失(比如 DQN 就是这样做的),一个 mini batch 的损失如下式
      l o s s ≈ 1 ∣ B ∣ ∑ ( s , a , r , s ′ ) ∈ B ∥ r + γ Q θ ′ ( s ′ , π ( s ′ ) ) − Q θ ( s , a ) ∥ 2 loss \approx \frac{1}{|\mathcal{B}|} \sum_{\left(s, a, r, s^{\prime}\right) \in \mathcal{B}}\left\|r+\gamma Q_{\theta^{\prime}}\left(s^{\prime}, \pi\left(s^{\prime}\right)\right)-Q_{\theta}(s, a)\right\|^{2} lossB1(s,a,r,s)Br+γQθ(s,π(s))Qθ(s,a)2 如果 offline 数据集中的 transition 分布与当前被评估策略诱导的分布不一致,那么这个损失的计算是有偏的,即使用重要度采样比进行修正,在数据足够的情况下(避免上面两个问题)也只能将数据集覆盖的 ( s , a ) (s,a) (s,a) 子集的价值估计好,对于未覆盖的部分只能依赖很不可靠的泛化性了

    在 IL 领域内也存在着非常相似的问题,缓解它最简单的方式就是增加数据集中的样本数量,对上述三点都有效

  • 注意到 Offline-RL 问题范式和 Imitation Learning、Online Off-Policy RL 问题范式的相似性,从这两个角度出发,可以得到现有 Offline-RL 的两类主流方法:RL-based 方法和 IL-based 方法

2.2 RL-based 方法

  • 这类方法通常还是基于 Q Q Q 价值估计的方法,因此不可避免地要处理上述 extrapolation error 问题。仔细分析一下,会发现 extrapolation error 三个成因中的核心是第3点 Mismatch

    1. 若 agent 实际遇到的 ( s , a ) (s,a) (s,a) 二元组在 Offline 数据集中没有出现,则导致 Absent Data 问题
    2. 若 agent 实际遇到的 ( s , a ) (s,a) (s,a) 二元组在 Offline 数据集中出现次数太少,则导致 Model Bias 问题。
  • 需要注意的一点是,虽然 Off-policy RL 中引入 replay buffer 打破了样本间的相关性,但这并不会使 buffer 中的 transition 分布和当前策略诱导的分布偏差太多。事实上,由于 replay buffer 实时加入最新交互样本,逐渐遗忘最近最少访问样本的特点,replay buffer 的数据和当前策略的相关性总是很强,因此不会出现 Mismatch,这也是 Off-policy RL 能 work 的一个重要原因

  • 这类方法通常会对动作空间施加一些限制,使得 agent 运动范围尽量接近数据集覆盖到的 S × A \mathcal{S\times A} S×A 空间(Offline 设定下这个覆盖范围可以很大,见 2.3 节分析),以保证价值函数估计的准确性,代表方法有 BCQ、BEAR、CQL 等 model-free 方法,也有 MOPO 等 model-based 方法

2.3 IL-based 方法

  • 这类方法基于模仿学习方法,通常是行为克隆(BC)方法的变形。它们直接学习策略,不估计价值函数,也就没有 extrapolation error 问题,但是要处理 IL 常见的 mismatch 和 compounding Error,这时 Offline RL 设定相对 IL 的优势在于
    1. 对 Behavior policy 策略质量没有要求,收集成本较低,因此很容易就能获取大量的交互数据,使得 S × A \mathcal{S\times A} S×A 空间覆盖比较全面,我看到的几篇论文里数据量都到了 1 0 6 10^6 106 级别,这种情况下这两个问题不会太严重,可以忽略掉

      注意这里 Behavior policy 不要仅仅理解成较差的专家,比如我们甚至可以尝试用一些无指向性的混合交互样本训练一个特定任务 agent(各种特殊的数据集收集情况见 3.2.2 节)
      这种灵活性也带来一个问题:不是说只要数据多就一定没有 mismatch 和 compounding Error,也要考虑到数据的收集方式以及任务状态动作空间的复杂度

    2. Offline RL 中仍然具有奖励信号,这些奖励信号对于策略改进(以增大 return)有着清晰的指向性,因此有望取得更好的性能
  • 由于 Offline 设定下数据集中的 transition 有好有坏,通常的思路是找出比较好的那些 transition 进行模仿,或者在模仿时给予它们较高权重,这时的关键问题事实上从 mismatch 和 compounding Error 变成了 Quantity-quality dilemma(见COIL论文),代表方法有 MARWIL、AWR、BAIL、COIL 等

3. Benchmark:D4RL

  • 这部分是对 D4RL: Datasets for Deep Data-Driven Reinforcement Learning 这篇论文的讲解,介绍 Offline RL 领域目前使用最广泛的 Benchmark
  • 这里给出 D4RL 的 开源代码 和 作者Blog

3.1 意义

  • 首先解释一下这两个常见的词:Benchmark 和 Baseline

    1. Benchmark:中文叫基准测试,是一个标准化的过程,包含三个步骤
      1. 设置 (setup):定义了基准实验的设计,给出了数据集、候选算法、性能度量和合适的重采样策略。论文里在实验结果之前交代的实验设置就是一种 setup
      2. 执行 (execution):就是执行 setup 中设计的实验
      3. 分析 (analysis):采用各种分析方法分析 execution 步骤得到的结果,用来佐证提出的算法或假设
    2. Baseline:可以看作 benckmark 这个过程中的一次实例。比如要对比我们自己算法和其他几个算法的性能,首先要设计一个统一的 Benchmark,把不同的算法带入这个 Benchmark 测试,得到的对比算法的性能就称为 Baseline
  • 注意到 Offline-RL 其实和监督学习类似,都是利用一个 fixed 数据集进行学习。大部分 Offline-RL 论文中,生成 Offline 数据集的方法都不太相同。最常见的做法是从零开始训练一个 Online RL agent 至收敛,然后用整个训练过程上的所有交互数据组成数据集, BAIL 这篇文章揭示了这种方案的一个问题:如果使用不同的随机种子,即使是完全相同的 Online RL agent,用其得到的 Offline 数据集做 Offline RL,有可能得到截然不同的结果

    One important observation we make, which was not brought to light in previous batch DRL papers, is that batches generated with different seeds but with otherwise exactly the same algorithm can give drastically different results for batch DRL.

    举例来说,你看到 A 论文中,A 方法在 B Online RL agent 于 C 环境下完整训练数据集上得分为 1000,你自己按照他的设定完整复现一遍,可能发现只有 200 分,而造成这种差异的原因仅仅是因为使用了不同的随机种子。

  • 如果不同的科研团队使用不同的数据集,或是对于同一个算法的实现细节不同,都不利于算法间公平比较。针对这个问题 2020 年 UC Berkeley 和 Google Brain 的几位研究员发表了 D4RL: Datasets for Deep Data-Driven Reinforcement Learning ,提出针对 Offline-RL 算法评估的 Benchmark,其贡献包括

    1. 一套不同难度的基准序列决策任务
    2. 对每个任务给出类似于 CV 中的 ImageNet 这样的开源交互数据集,数据来源不仅有 Online RL agent,还有人类专家示范和硬编码控制器(hand-coded controller)等,更加贴近真实世界中的数据收集过程
    3. 统一实现了常见的 Offline-RL 方法,并通过大量测试找出了各算法的弱点
    4. 对任务、数据集和基准算法提供了易用的 API

    此文章 2020 挂上 arxiv,至今已有 149 次引用,其影响还是很广泛的

3.2 设计标准

  • Benchmark 应具有的性质:

    1. 设置的任务应能反映 Data-driven RL 实际应用中的挑战
    2. 研究人员可广泛访问(widely-accessible,就是说没什么门槛,比如没有交互成本或交互成本很低),且有着清晰的可复现的评估标准(evaluation protocol)
    3. 含有一系列 Offline-RL 设定下的难点问题,对算法有很好的区分度

    虽然用真实世界数据集作为 Offline-dataset 很有吸引力,但是为了准确地评估策略,还是需要一个可以交互的环境,真实世界任务会大幅提升评估成本。针对这个问题,D4RL 在先前针对特定任务开发的高精度模拟器环境中设计任务,比如机器人控制和自动驾驶等,这些模拟器经过实战测试(battle-tested),可以准确地评估策略

  • Benchmark 中的数据集和任务,为了尽量贴近落地应用,应具有以下性质性质:

    1. 狭窄且有偏的数据分布(Narrow and biased data distributions):这是指数据集中 ( s , a ) (s,a) (s,a) 覆盖范围非常小,因此很容易发生 Mismatch 问题。当数据来自确定性策略时,由于缺乏探索,收集到的数据常常有这种特征。这种情况在现实世界中非常常见,人类专家和硬编码控制器都很容易给出这类数据

      作者博客中举了一个很有意思的例子:在医疗领域,我们经常可以看到重病患者使用药物治疗(只有很少的人活下来了),而轻度患者不使用药物治疗(大多数都活下来了),这时简单的算法可能会误认为是药物治疗导致了死亡(因为缺乏重症不用药死亡 & 轻症用药存活的概率),而实际上我们应该学到因为治疗所以才提高了生存率
      Offline/Batch RL简介_第5张图片

    2. 无指向性数据和多任务数据(Undirected and multitask data):这是指我们在一个多任务场景下收集了数据,然后希望训练一个 agent 完成某特定任务,这时数据缺乏任务针对性。当数据是被动记录(passively logged)的时候,容易出现这种问题。比如我们希望获得一个用于训练个人助理 chat bot 的大型数据集,最简单的方法就是简单地记录真实人类之间的对话,或者从互联网上刮取真实的对话。在这种情况下,记录下来的谈话可能与你想要完成的特定任务没有任何关系,比如预订航班。但是,许多会话数据仍可能是有用的;又或者下面这个例子:想让agent从A到C,但只有从A到B和从B到C的样本
      Offline/Batch RL简介_第6张图片
      这种情况下,虽然数据指向性不佳,但是轨迹片段仍然可以提供有用的信息供学习。比如上图任务可以通过组合两段样本完成,而不需要依赖数据集外的泛化能力。In general 地说,某个数据样本可能不止适用于收集到它的那个任务

    3. 稀疏奖励(Sparse rewards):Online RL 面对 credit assignment 和 exploration-exploitation dilemma 两个困难

      credit assignment(贡献度分配):简单说就是,我们做了一系列动作后得到奖励,想要搞清楚哪些动作(或者说完整轨迹中哪个部分)是获取奖励的主要原因。
      在我的理解中,credit 某种程度上可以看作 ( s , a ) (s,a) (s,a) pair 的 Q Q Q 价值,强化学习中从奖励到价值的传递过程本来就很慢(这也是 RL 样本效率低下的原因之一),稀疏奖励会使得此问题更加恶化

      在稀疏奖励的 Offline-RL 设定中,我们有机会在和 exploration 解耦的情况下,单独分析算法做 credit assignment 的能力

    4. 次优数据(suboptimal data):在现实世界的任务中,获取最优的轨迹往往是比较困难的,例如在机器人领域,提供专家演示既繁琐又耗时,而传统的 IL 在次优数据上表现不佳。Offline-RL 在这种情况下的一个关键优点是,离线数据有清晰的奖励信号说明如何改进策略,因此有望取得更好的性能

    5. 不可表示的、非马尔可夫性的行为策略,以及部分可观测任务(Non-representable behavior policies, non-Markovian behavior policies, and partial observability):behavior policies 超出策略模型的表示能力的任何情况,都会引入额外的模型偏差,包括 Q Q Q 价值估计不准、对 ( s , a ) (s,a) (s,a) 出现概率估计不准等,导致 Offline RL 算法性能下降。一个常见的情况是,通常(特别是 RL-based 方法)我们会假设数据是用有马尔可夫性的策略收集的,但是真实世界的 behavior policies 可能不遵守马尔可夫性(比如一些控制器可以利用状态或内存执行非马尔可夫性策略),这时这种策略就超出了我们策略模型的表示能力。另外,人类示范者可能会使用 RL agent 无法观察到的提示,从而导致部分可观察性问题,这也会引入偏差,

    6. 现实领域(Realistic domains):从落地的角度看,使用现实问题的数据是最理想的情况,但是这会导致策略评估的困难,违背了 D4RL widely-accessible 和 reproducible 的初衷。为了取得平衡,作者选择了先前已经研究过并被广泛接受的模拟环境(如MuJoCo、Flow、CARLA)中的任务,并利用人类演示或人类行为的数学模型,提供了从现实过程生成的数据集

3.3 任务、算法与评估标准

  • 下面简单列举 D4RL 提供的模拟环境及任务 (任务详情参考原始论文)

    1. Maze2D - maze2d
    2. AntMaze - antmaze
    3. Gym-MuJoCo - hopper/halfcheetah/walker2d
    4. Adroit - pen/hammer/door/relocate
    5. FrankaKitchen - kitchen
    6. Flow - ring/merge.
    7. Offline CARLA - lane

    以上所有任务都包括多种数据收集设定下的多种离线的轨迹样本数据集(通常为 1 0 6 10^6 106 个 transition 大小),并且对每个环境提供了模拟器用以评估策略性能,各模拟环境特性如下

    - narrow Non-representable Non-markovian undirected multitask sparse rewards Suboptimal realistic Partial observability
    Maze2D
    AntMaze
    Gym-MuJoCo
    Adroit
    FrankaKitchen
    Flow
    Offline CARLA
  • D4RL 实现并对比评估了以下算法

    1. BC
    2. online SAC
    3. offline SAC
    4. BEAR
    5. BRAC
    6. AWR
    7. BCQ
    8. cREM
    9. AlgaeDICE
  • 评估标准

    1. 有些算法需要不断在线评估以调整超参数,而在现实应用中这是不实用的,因此作者仿照通常先在模拟器调参,再在现实环境应用的做法,所有任务都有允许调参(“training task”)和禁止调参(“evaluation task”)两种设定,对于需要不断评估来调参的算法,先在 train task 调好,再在 evaluation task 评估
    2. 注意到有些环境下有多个任务,为了实现跨任务综合评估,对每个环境下的分数如下做正则化到 [0,100] 区间
      normalized score = 100 ∗ score - random score expert score - random score \text{normalized score} = 100*\frac{\text{score - random score}}{\text{expert score - random score}} normalized score=100expert score - random scorescore - random score normalized score = 0 对应于均匀随机策略;normalized score = 100分对应于特定领域专家级策略。对于 Maze2D 和 Flow 环境,expert 得分来自 hand-designed controller;对于 CARLA、AntMaze 和 FrankaKitchen 环境,expert 得分为可能的最高分数估计值;对于 Adroit 环境,expert 得分来自对人类演示使用做 BC 再使用 RL 进行微调得到的策略;对于Gym MuJoCo 环境,expert 得分来自一个训练好的 SAC agent

你可能感兴趣的:(#,强化学习,Offline,RL,batch,RL,D4RL)