- 为了避免在每篇 Offline RL 相关论文 Blog 的 Background 部分重复说明,单独发布这篇简介
文章目录
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 RL 的问题设定和
Imitation Learning
非常相似,区别主要有三点- Offline RL 完全禁止 Learner 与环境交互,而 IL 仍允许 Learner 进行交互
- Offline RL 交互数据中存在奖励信号,而 IL 的交互数据中没有
- Offline RL 中生成 batch 数据集的策略(一般叫行为策略behavior policy)不再是唯一的专家策略,而可以是任意策略(可以非最优,可以非平稳、可以是多个策略的混合…),对行为策略质量没有要求
1.3 和 Off-Policy RL 的相似性
-
Off-Policy RL 方法中,用于和环境交互生成轨迹的策略(行动策略) π b \pi_b πb 和最终得到的策略(目标策略) π t \pi_t πt 是不同的,这种设定破除了对优化数据来源的限制,有三个好处
- 允许将过去的 transition 数据可以存下来重复利用以提升样本效率
- on-policy 算法的探索是直接建立在其价值估计上的,而价值估计又来自探索获取的 transition,二者循环依赖,这会导致更强的风险寻求行为并使得训练不稳定,若能打乱更新价值估计时使用的经验 transition 顺序,则可缓解此问题
- 在 DRL 方法中,Online 交互数据的 transition 样本相关性太高,不利于神经网络训练,若能随机地混用过去的 transition,可以可以减少样本相关性,更贴合神经网络对数据 i.i.d 性质的要求
于是 Off-Policy RL 方法中出现了 replay buffer 经验重放的概念,示意图如下
可见,利用 replay buffer 更新策略这个过程和 Offline RL 做的事情几乎一样,只是这里我们还可以 Online 地扩展数据集
-
另一方面,如果把 Offline/Batch RL 改成 On-policy 设定,增加一个探索扩增交互数据集的部分,则得到另一种称为
Growing batch RL
的问题设定,示意图如下
可以看到这个设定和带 replay buffer 的 Online Off-policy RL 非常相像了,区别仅在于更新策略时使用的 transition 样本量,另外 Growing batch RL 通常没有目标策略。这种 Growing batch RL 也可以看作数据分阶段扩增的 batch RL,也就是说它可以实现为以下两个过程的交替迭代- 根据策略 π \pi π 收集收集一批交互数据,并入交互数据集中
- 在整个交互数据集上使用 batch RL 方法,提升策略 π \pi π
1.4 Why Offline?
-
先放一个有意思的
虽然这有点抖机灵,不过俞扬老师还做了补充说明强化学习这个古老的研究领域 2016 前在国内一直比较冷的根源就是没法用。研究领域大家也都清楚强化学习算法样本利用率低,然后做出了很多改进,但是要改进到什么程度才能有用呢,其实根据我们的经验有一个标准:
零试错:一次试错不能有,上线即能发挥效果,还要明显优于基线
offline RL是个正确的方向,但是目前的主流研究也有很多明显的弯路,可能发论文与做落地本身就是不同的事,大家的关心点不可能完全一致吧 -
一句话说,Offline RL 是一个有利于 RL 落地应用的技术。Online-RL 方法要求和环境在线交互训练,在落地时就会遇到两个困难
- 需要可用且能大量交互的环境,而这往往成本很高,尤其是那些涉及到安全问题的现实任务
- 训练早期给出的策略很差,因此很多现实任务不能直接训练,只能先做模拟器。比如你不能为了学会自动驾驶撞坏 10000 台汽车,事实上这还催生了 sim2real 这个研究方向
那么模仿学习是不是比较好落地?也没有好多少
- 模仿学习本质是为了避免奖励函数设计的困难,仍需要可以交互的环境
- 模仿学习还需要引入示范专家,而专家的成本也很高
Offline-RL 的优势在于
- 直接在过去的交互数据集上学到一个良好的策略,提升数据利用率
- 对样本来源策略没有要求,不需要高成本的专家.
- 不再需要和环境交互,不但降低了训练成本,更关键的是有希望做到零试错落地
放个图总结下
2. 相关方法
2.1 Extrapolation error 问题
- 由第一节可以发现 Offline RL 和 Online Off-policy RL 很相似,二者都是在用行为策略收集的数据来优化另一个目标策略,区别仅仅在于前者禁止进一步交互收集数据,而后者的 replay buffer 是按最近最少使用思想不断更新的。某种程度上,至少可以从形式上把 Offline RL 看做 Online Off-policy RL 的一个切片,要求用某一时刻 replay buffer 中的轨迹数据直接学出好策略,因此 DQN、DDPG 等过去的 Online Off-policy RL 方法都是可以直接拿过来用的,问题形式上不存在冲突。BCQ 这篇论文对这种方式进行了研究,发现这种 Naive 的想法会导致
外推错误Extrapolation Error
,即由于数据集上 transition 分布和当前(被评估的)策略所诱导的真实 transition 分布之间的不匹配而引入的价值估计误差。宏观上看这是distribution shift
问题,作者将其仅一步细化为三个原因Absent Data
:在评估 Q ( s , a ) Q(s,a) Q(s,a) 时,根据 Bellman 等式,我们需要和它相邻的下一个 ( s ′ , π ( s ′ ) ) (s',\pi(s')) (s′,π(s′)) 处的价值估计 Q ( s ′ , π ( s ′ ) ) Q(s',\pi(s')) Q(s′,π(s′)),但如果数据集中缺乏在 Q ( s ′ , π ( s ′ ) ) Q(s',\pi(s')) Q(s′,π(s′)) 附近的轨迹数据,那么对它的价值估计可以是任意糟糕的,因为我们无法获取任何从此出发的 return 信息,价值网络的泛化性也是有限的Model Bias
:在使用 Bellman equation 估计价值时,由于 TD 方法本质都是基于 MC 的,为了得到准确的 Q 价值函数,TD-Learning 类方法隐含着两个假设 “可以观测到无限多的episode”;“所有 ( s , a ) (s,a) (s,a) 二元组都有非零概率被选中”,这保证了对于任意二元组,我们都能获取无限多的样本计算其价值,以保证 MC 的收敛性。而在 offline 设定下,我们只能在数据集 B \mathcal{B} B 上取期望,这就引入了偏差。从公式上看,就是
Online RL: T π Q ( s , a ) = E s ′ [ r + γ Q ( s ′ , π ( s ′ ) ) ] Offline RL: T π Q ( s , a ) = E s ′ ∼ B [ r + γ Q ( s ′ , π ( s ′ ) ) ] \begin{aligned} &\text{Online RL:}&&\mathcal{T}^{\pi} Q(s, a)=\mathbb{E}_{s^{\prime}}\left[r+\gamma Q\left(s^{\prime}, \pi\left(s^{\prime}\right)\right)\right] \\ &\text{Offline RL:} &&\mathcal{T}^{\pi} Q(s, a)=\mathbb{E}_{s^{\prime}\sim \mathcal{B}}\left[r+\gamma Q\left(s^{\prime}, \pi\left(s^{\prime}\right)\right)\right] \end{aligned} Online RL:Offline RL:TπQ(s,a)=Es′[r+γQ(s′,π(s′))]TπQ(s,a)=Es′∼B[r+γQ(s′,π(s′))]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} loss≈∣B∣1(s,a,r,s′)∈B∑∥r+γQθ′(s′,π(s′))−Qθ(s,a)∥2 如果 offline 数据集中的 transition 分布与当前被评估策略诱导的分布不一致,那么这个损失的计算是有偏的,即使用重要度采样比进行修正,在数据足够的情况下(避免上面两个问题)也只能将数据集覆盖的 ( s , a ) (s,a) (s,a) 子集的价值估计好,对于未覆盖的部分只能依赖很不可靠的泛化性了
- 从微观上看,首先数据集中的数据都是形如
(
s
,
a
,
r
,
s
′
)
(s,a,r,s')
(s,a,r,s′) 的 transition,基于 Bellman 等式的价值计算使用的状态
s
s
s 和
s
′
s'
s′ 一定都是在数据集中被覆盖的;接下来针对某个具体的
s
s
s 考虑,它在做价值更新时需要用到下一个状态
s
′
s'
s′ 对应的
Q
(
s
′
,
a
′
)
Q(s',a')
Q(s′,a′),而数据集中不一定覆盖
s
′
s'
s′ 处所有可能的
a
′
a'
a′,即使能对被覆盖到的
(
s
′
,
a
′
)
(s',a')
(s′,a′) 给出还可以的价值估计,未覆盖的那些 OOD 的
a
′
a'
a′ 对应的
Q
(
s
′
,
a
′
)
Q(s',a')
Q(s′,a′) 由于以上三点原因并不能估计好(由于策略提升,通常是高估),这些 TD target 的误差会通过 Bellman 迭代不断传入被覆盖的
Q
(
s
,
a
)
Q(s,a)
Q(s,a) 部分,最终导致价值估计整体崩溃。这个问题也被称为
Iterative error exploitation
由上可见,(RL-Based 类方法中)通常我们更关注 OOD 的动作 a a a,因为 s s s 和 s ′ s' s′ 都在数据集 transition ( s , a , r , s ′ ) (s,a,r,s') (s,a,r,s′) 中存在
- 反观 Online Off-policy RL 方法,虽然它也是用行为策略收集的数据来评估和优化另一个目标策略,但是二者通常足够接近(比如设置为
ϵ
\epsilon
ϵ-greedy 和 greedy),而且数据集(replay buffer 数据)会随着策略提升不断更新,因此目标策略诱导的 transition 分布不会和数据中的分布相差太多,也就几乎没有 Extrapolation Error 问题
- 另外有些文章会从 RL 的 “致命三要素” 角度进行分析,所谓 “致命三要素”,是指 bootstrap、off-policy 和函数近似方法一起用时,RL 的价值估计缺少收敛性保障,具体可以参考 Why is there a Deadly Triad issue and how to handle it ?
- 虽然大多数涉及价值估计的 online DRL 方法(包括所有 Value-Based 类方法和部分 Actor-Critic 方法)都满足 “致命三要素”,但通常认为如果行为策略和目标策略足够接近,随着 online 数据不断补充使得 transition 分布差别不大,则收敛性问题不严重。在 offline 设定下,由于数据无法补充,二者的 transition 分布可能相差很多,会出现严重的收敛性问题
- 注意到 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
- 若 agent 实际遇到的 ( s , a ) (s,a) (s,a) 二元组在 Offline 数据集中没有出现,则导致 Absent Data 问题
- 若 agent 实际遇到的 ( s , a ) (s,a) (s,a) 二元组在 Offline 数据集中出现次数太少,则导致 Model Bias 问题。
需要注意的一点是,虽然 Online Off-policy RL 中引入 replay buffer 打破了样本间的相关性,但这并不会使 buffer 中的 transition 分布和当前策略诱导的分布偏差太多。事实上,由于 replay buffer 实时加入最新交互样本,逐渐遗忘最近最少访问样本的特点,replay buffer 的数据和当前策略的相关性总是很强,因此不会出现 Mismatch,这也是 Off-policy RL 能 work 的一个重要原因
-
为了尽量提高价值估计的准确性,RL-Based 类方法通常有两种做法
策略约束
:对动作空间施加一些软限制,使 agent 运动范围尽量接近数据集覆盖到的 S × A \mathcal{S\times A} S×A 空间(Offline 设定下这个覆盖范围可以很大,见 2.3 节分析),以保证价值函数估计的准确性,代表方法有 BCQ、BRAC、TD3+BC、BEAR、AWAC 、CRR 等悲观假设
:以最 “悲观” 的态度估计 OOD 的动作 a a a 对应的 Q ( s , a ) Q(s,a) Q(s,a) 价值,即考虑它们的下界,以此鼓励 agent 远离 OOD 的状态动作空间。代表方法有 CQL、Fisher-BRC 等
-
RL-Based 类方法的核心矛盾在于,为了利用更准确的价值估计,学得策略不能离行为策略太远,而我们又想学得策略性能尽量超越行为策略,因此二者又不能离得太近,且需要估计并利用那些 OOD 的 ( s , a ) (s,a) (s,a) 对应的价值。就导致了针对策略约束程度/价值估计准确程度的 trade-off
2.3 IL-based 方法
- 这类方法基于模仿学习方法,通常是行为克隆(BC)方法的变形。它们直接从 Offline 数据集中通过监督学习提取一个最优策略,不估计价值函数,因此没有 extrapolation error 问题;由于绕过了对 OOD
Q
(
s
,
a
)
Q(s,a)
Q(s,a) 价值的查询,这类方法也无需 “策略约束” 和 “悲观假设” 等操作。但另一方面,IL 常见的
mismatch
和compounding Error
问题也会在 IL-Based 类方法中出现,这时 Offline RL 设定相对标准 IL 的优势在于- 对 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,也要考虑到数据的收集方式以及任务状态动作空间的复杂度
- Offline RL 中仍然具有奖励信号,这些奖励信号对于策略改进(以增大 return)有着清晰的指向性,因此有望取得更好的性能
- 对 Behavior policy 策略质量没有要求,收集成本较低,因此很容易就能获取大量的交互数据,使得
S
×
A
\mathcal{S\times A}
S×A 空间覆盖比较全面,我看到的几篇论文里数据量都到了
1
0
6
10^6
106 级别,这种情况下这两个问题可能不会太严重以至于可以忽略掉
- 由于 Offline 设定下数据集中的 transition 有好有坏,IL-Based 类方法通常有两种做法
- 找出比较好的那些 transition 进行 BC,或者在模仿时基于相对行为策略的优势做 weighted BC。这时的关键问题事实上从
mismatch
和compounding Error
变成了Quantity-quality dilemma
(见 COIL论文),代表方法有 MARWIL、AWR、BAIL、COIL 等。这类方法的问题在于 BC-Based 对策略的约束太强,学得策略很难超越行为策略,通常只能达到离线数据集上的最优性能 - 利用 HER 的思想做 Conditioned BC。简单说就是 “任意一个 transition 或 trajectory 在正确的目标变量条件下都是最优的”,这里条件变量可以是 “未来的 return” 或者 “goal state” 之类的。对 Offline 数据 relabel 合适的目标条件后,我们就能用监督学习方法建立从目标到动作的映射,之后测试时给定目标就能提取一个策略了,代表方法有 RvS、DT 等。这类方法的问题在于它假设了我们有一些关于任务结构的预先信息,这超出了标准 Offline RL 的问题范式,另外选择合适的目标条件本身也比较困难,但优势在于学得策略可能超过行为策略
- 找出比较好的那些 transition 进行 BC,或者在模仿时基于相对行为策略的优势做 weighted BC。这时的关键问题事实上从
2.4 更完善的分类
- 2023/2/6 update:前面 2.2、2.3 节还是 Offline RL 研究早期的分类标准,看了更多最新论文后,我基于 one-step 论文的 related work 部分整理了如下覆盖面更广的方法分类,有助于读者更好地把握 Offline RL 的整体脉络
- 过去的许多 Offline RL 方法都涉及到
Q
Q
Q 价值的评估,这就涉及到
distribution shift / extrapolation error
问题,如果是迭代的 multi-step off-policy 评估,还会受到Iterative error exploitation
问题影响,在 one-step 论文 中这些都有了详细分析。因此,过去的方法通常有以下几种约束类方法
:核心思想是将学得策略限制在 behavior policy 附近来缓解 distribution shift。又可细分为 BCQ、BEAR 等直接约束策略的policy constrain
类方法;BRAC、CQL 等通过约束价值估计(比如引入悲观假设)间接地约束策略的value regularization
类方法。缺点在于需要在 “提升策略性能” 和 “尽量约束策略” 之间 trade-off单步优化类方法
:核心思想是只评估 behavior policy,避免 off-policy evaluation 来回避 distribution shift 和 Iterative error exploitation,只在 behavior policy 基础上优化一次就结束,代表方法有 one-step、R_BVE 等。缺点在于无法进行 multi-step DP,只在 behavior policy 基础上改进一次,只有奖励比较密集时才能良好工作。另外如果约束类方法的约束过强,就会表现得类似此类方法模仿学习类方法
:核心思想是使用监督学习方法来学习策略,天然没有 distribution shift 和 Iterative error exploitation 问题,代表方法有 DT、TT、RvS、COIL、BAIL、AWR 等。缺点在于通常约束过强,只能通过 “动作拼接” 来连接次优轨迹(详见 POR 论文分析),难以超越数据集上的最优策略
- 总结为下图
3. Benchmark:D4RL
- 这部分是对 D4RL: Datasets for Deep Data-Driven Reinforcement Learning 这篇论文的讲解,介绍 Offline RL 领域目前使用最广泛的 Benchmark
- 这里给出 D4RL 的 开源代码 和 作者Blog
3.1 意义
-
首先解释一下这两个常见的词:Benchmark 和 Baseline
Benchmark
:中文叫基准测试,是一个标准化的过程,包含三个步骤设置 (setup)
:定义了基准实验的设计,给出了数据集、候选算法、性能度量和合适的重采样策略。论文里在实验结果之前交代的实验设置就是一种 setup执行 (execution)
:就是执行 setup 中设计的实验分析 (analysis)
:采用各种分析方法分析 execution 步骤得到的结果,用来佐证提出的算法或假设
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,其贡献包括
- 一套不同难度的基准序列决策任务
- 对每个任务给出类似于 CV 中的 ImageNet 这样的开源交互数据集,数据来源不仅有 Online RL agent,还有人类专家示范和硬编码控制器(hand-coded controller)等,更加贴近真实世界中的数据收集过程
- 统一实现了常见的 Offline-RL 方法,并通过大量测试找出了各算法的弱点
- 对任务、数据集和基准算法提供了易用的 API
此文章 2020 挂上 arxiv,至今已有 149 次引用,其影响还是很广泛的
3.2 设计标准
-
Benchmark 应具有的性质:
- 设置的任务应能反映 Data-driven RL 实际应用中的挑战
- 研究人员可广泛访问(widely-accessible,就是说没什么门槛,比如没有交互成本或交互成本很低),且有着清晰的可复现的评估标准(evaluation protocol)
- 含有一系列 Offline-RL 设定下的难点问题,对算法有很好的区分度
虽然用真实世界数据集作为 Offline-dataset 很有吸引力,但是为了准确地评估策略,还是需要一个可以交互的环境,真实世界任务会大幅提升评估成本。针对这个问题,D4RL 在先前针对特定任务开发的高精度模拟器环境中设计任务,比如机器人控制和自动驾驶等,这些模拟器经过实战测试(battle-tested),可以准确地评估策略
-
Benchmark 中的数据集和任务,为了尽量贴近落地应用,应具有以下性质性质:
-
狭窄且有偏的数据分布(Narrow and biased data distributions):这是指数据集中 ( s , a ) (s,a) (s,a) 覆盖范围非常小,因此很容易发生 Mismatch 问题。当数据来自确定性策略时,由于缺乏探索,收集到的数据常常有这种特征。这种情况在现实世界中非常常见,人类专家和硬编码控制器都很容易给出这类数据
作者博客中举了一个很有意思的例子:在医疗领域,我们经常可以看到重病患者使用药物治疗(只有很少的人活下来了),而轻度患者不使用药物治疗(大多数都活下来了),这时简单的算法可能会误认为是药物治疗导致了死亡(因为缺乏重症不用药死亡 & 轻症用药存活的概率),而实际上我们应该学到因为治疗所以才提高了生存率
-
无指向性数据和多任务数据(Undirected and multitask data):这是指我们在一个多任务场景下收集了数据,然后希望训练一个 agent 完成某特定任务,这时数据缺乏任务针对性。当数据是被动记录(passively logged)的时候,容易出现这种问题。比如我们希望获得一个用于训练个人助理 chat bot 的大型数据集,最简单的方法就是简单地记录真实人类之间的对话,或者从互联网上刮取真实的对话。在这种情况下,记录下来的谈话可能与你想要完成的特定任务没有任何关系,比如预订航班。但是,许多会话数据仍可能是有用的;又或者下面这个例子:想让agent从A到C,但只有从A到B和从B到C的样本
这种情况下,虽然数据指向性不佳,但是轨迹片段仍然可以提供有用的信息供学习。比如上图任务可以通过组合两段样本完成,而不需要依赖数据集外的泛化能力。In general 地说,某个数据样本可能不止适用于收集到它的那个任务 -
稀疏奖励(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 的能力
-
次优数据(suboptimal data):在现实世界的任务中,获取最优的轨迹往往是比较困难的,例如在机器人领域,提供专家演示既繁琐又耗时,而传统的 IL 在次优数据上表现不佳。Offline-RL 在这种情况下的一个关键优点是,离线数据有清晰的奖励信号说明如何改进策略,因此有望取得更好的性能
-
不可表示的、非马尔可夫性的行为策略,以及部分可观测任务(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 无法观察到的提示,从而导致部分可观察性问题,这也会引入偏差,
-
现实领域(Realistic domains):从落地的角度看,使用现实问题的数据是最理想的情况,但是这会导致策略评估的困难,违背了 D4RL widely-accessible 和 reproducible 的初衷。为了取得平衡,作者选择了先前已经研究过并被广泛接受的模拟环境(如MuJoCo、Flow、CARLA)中的任务,并利用人类演示或人类行为的数学模型,提供了从现实过程生成的数据集
-
3.3 任务、算法与评估标准
-
下面简单列举 D4RL 提供的模拟环境及任务 (任务详情参考原始论文)
- Maze2D - maze2d
- AntMaze - antmaze
- Gym-MuJoCo - hopper/halfcheetah/walker2d
- Adroit - pen/hammer/door/relocate
- FrankaKitchen - kitchen
- Flow - ring/merge.
- 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 实现并对比评估了以下算法
- BC
- online SAC
- offline SAC
- BEAR
- BRAC
- AWR
- BCQ
- cREM
- AlgaeDICE
-
评估标准
- 有些算法需要不断在线评估以调整超参数,而在现实应用中这是不实用的,因此作者仿照通常先在模拟器调参,再在现实环境应用的做法,所有任务都有允许调参(“training task”)和禁止调参(“evaluation task”)两种设定,对于需要不断评估来调参的算法,先在 train task 调好,再在 evaluation task 评估
- 注意到有些环境下有多个任务,为了实现跨任务综合评估,对每个环境下的分数如下做正则化到 [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=100∗expert 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