离线强化学习

Offline (Batch) Reinforcement Learning的相关工作及应用

Posted by MY on September 1, 2020

一、简介

强化学习是通过trial and error来学习如何执行任务,并在exploration和exploitation之间取得适当的平衡。离线强化学习(Offline Reinforcement Learning),又称批量强化学习(Batch Reinforcement Learning) ,是强化学习的一种变体,它要求agent从固定批次的数据中学习,而不进行探索。换句话说即研究如何最大限度地利用静态数据集训练RL的agent。研究界对此越来越感兴趣,原因主要有如下两方面:

  • 探索存在成本:例如,使用机器人在真实环境中进行探索可能会有损坏机器人硬件或周围物体的风险。
  • 验证算法的exploitation能力:由于离线强化学习将exploration和exploitation分离开来,它可以提供标准化的比较来验证不同算法的exploitation能力

离线强化学习( Offline RL)与模仿学习(IL)密切相关,因为后者也从固定的数据集进行学习,而不进行探索。但是它们之间有几个关键的区别:

  • 现有的一些离线RL算法建立在标准的off policy Deep RL算法之上,这些算法倾向于优化某种形式的Bellman方程或TD差分误差
  • 大多数IL问题假设有一个最优的或一个高性能的专家来提供数据;离线RL可能需要从次优的数据中进行学习
  • 大多数IL问题没有reward的概念;离线RL考虑reward,方便在事后进行处理和修改
  • 一些IL问题要求数据被标记为专家经验和非专家经验,离线RL不做这个假设

因此,离线RL可以根据给定数据得到可能的最佳策略,也就是说它可以超过产生这些离线数据的演示策略(专家),这对于模仿学习来说仍然是一个比较困难的问题。

本文将离线RL相关的研究粗略地分为两大类:

  • 对强化学习agent可以采取的动作或状态-动作对进行约束:希望这些动作或状态-动作对出现在offline的数据中
  • 最大化利用现有RL算法的exploitation能力:通过最大化offline数据的多样性或数据量大小,同时使用比较好但不专门用于offline RL的off policy算法进行训练

二、限制RL的动作

2.1 Off-Policy Deep Reinforcement Learning Without Exploration

Fujimoto et al., 2019这篇工作主要的结论是:当只通过offline数据进行学习时,由于外推误差(extrapolation error),深度RL中的大多数off policy算法都将失败,其中offline数据之外的状态动作对$(s,a)$可能具有不准确的$Q$值,这将对依赖于传播这些值的算法产生不利影响。在online学习中,采用exploration可以纠正这些误差,因为agent可以得到得到真实的reward值,但在offline的情况下off policy的RL缺乏这种纠错能力。

本文提出的算法叫做Batch Constrained deep Q-learning (BCQ)算法。这个想法是进行正常的Q-learning,但在选取最大化$Q$值对应的动作的步骤时,希望只考虑实际出现在这批离线数据中的$(s,a)$中的动作$a$,而不是考虑动作空间中所有可能的动作。或者在更现实的情况下,消除行为策略(生成静态数据的策略)$\pi_{b}$不太可能选择的动作。

BCQ训练一个generative model(VAE)来生成可能来自offline data的动作,以及进一步干扰动作的perturbation model 对生成的动作进行调优。在测试时,他们通过generative model采样$N$个动作,对每个动作进行扰动,然后选择估计的$Q$值最高的动作。

本文设计的实验中,采取一个DDPG作为行为策略,它为离线RL生成离线数据。实验内容包括:

  • Final Buffer:加入exploration,对一个行为策略DDPG agent训练100万步,并将所有的交互数据存到一个Replay Buffer中。从头开始训练一个新的DDPG agent,训练时只使用Replay Buffer中的数据,不进行探索。
  • Concurrent:当行为策略学习时,在行为DDPG的Replay Buffer数据上并行地训练一个新的DDPG agent。 同样,这个新的DDPG agent也不进行探索。在整个学习过程中,这两个agent应该具有相同的Replay Buffer。
  • Imitation Learning:训练行为策略agent,直到它足够好,然后运行它100万步(可能带有更多的噪声以增加state覆盖率),将交互数据存入Replay Buffer中。与final buffer的不同之处在于,这100万步都来自于同一个固定的策略,而final buffer存的数据则包含了这100万步中变化的策略所得到的交互数据。

令人惊讶的是,即使在Concurrent设置中,新的DDPG agent也不能很好地学习:agent从头开始使用相同的Replay Buffer,而offline agent直接从online agent的Replay Buffer中提取batch数据进行训练,为什么会导致新的DDPG agent不能学好呢?我只能想到训练过程中的几个差异:(1)初始策略的随机性 (2)mini batch采样中的噪声。然而这些因素不应严重到导致训练效果相差很大的程度。相比之下,BCQ在offline学习给定的DDPG offline数据时要有效得多。

2.2 Benchmarking Batch Deep Reinforcement Learning Algorithms

由BCQ论文的作者Fujimoto的撰写的这篇NeurIPS 2019 workshop paper,提出了一个令人信服的案例,说明需要在统一的设置下评估Offline RL算法。一些研究(比如他自己的研究)显示了常用的off policy Deep RL算法无法进行很好的离线学习(然而Agarwal et al., 2020反驳了这一点,但需要使用更大规模的数据集)。

本文优点之一是,它研究了一些应用于batch RL的算法,包括Quantile Regression DQN (QR-DQN), Random Ensemble Mixture (REM), Batch Constrained Deep Q-Learning (BCQ), Bootstrapping Error Accumulation Reduction Q-Learning (BEAR-QL), KL-Control与Safe Policy Improvement with Baseline Bootstrapping DQN (SPIBB-DQN)。除了QR-DQN之外,所有这些算法都专门为Offline RL设计。

Fujimoto的这篇工作提出了一个离散动作版本的BCQ。算法如下:

wnGAld.png

本文训练一个行为克隆网络,用于根据state来预测行为策略的动作。对于第$k$轮迭代上的$Q$函数更新,将动作空间中选取最大化$Q$值得动作改为只考虑满足阈值的动作:

\[\mathcal{L}(\theta) = \ell_k \left(r + \gamma \cdot \Bigg( \max_{a' \; \mbox{s.t.} \; \frac{G_\omega(a'|s')}{\max \hat{a} \; G_\omega(\hat{a}|s')} > \tau} Q_{\theta'}(s',a') \Bigg) - Q_\theta(s,a) \right)\]

在测试时执行策略时,可以使用类似的阈值:

\[\pi(s) = \operatorname*{argmax}_{a \; \mbox{s.t.} \; \frac{G_\omega(a'|s')}{\max \hat{a} \; G_\omega(\hat{a}|s')} > \tau} Q_\theta(s,a)\]

注意,对比通常在Q-learning中,我们会对整个有效的动作集做argmax。因此,本文的方法中最终会忽略一些可能具有高$Q$值的动作,但如果这些动作大大高估了$Q$值,那这种舍弃也是可取的。

一些额外的想法:

  • 在连续和离散BCQ中,在连续情况下,训练一个generative model可能比较复杂;在离散情况下则要简单得多,即进行行为克隆即可
  • BCQ中的$\omega$在for循环中克对隆行为更新,而不是在for循环之前提前更新。由于数据是固定的,在最初的迭代中,优化$\theta$将依靠一个不准确的模型$G_{\omega}$,因此是一个次优的优化。Fujimoto后续表示在for循环之前优化$\omega$可能更好,但他的实验结果并没有明显的改善。
  • 参数$\tau$可以进行调整。当$\tau=0$时,它就是简单的标准Q-learning,因为从generative model得到的任何动作都应该有非零概率。当$\tau=1$时,这是行为克隆,因为策略选择行为只会考虑$G_{\omega}$值最高的动作,而忽略了它的$Q$值。在这种情况下,因为我们忽略了q网络,BCQ的$Q$学习部分是完全不必要的。根据附录,本文使用的$\tau=0.3$。

这篇论文完全是实验性的,没有理论结果。实验是在九个Atari游戏上进行的。offline数据是使用经过部分训练(超过10M步)的DQN agent生成的(以50M步为标准)。offline data的生成有两种选择:

  • 固定策略:使用训练好的固定策略与环境交换得到数据
  • 非固定策略:在策略训练中与环境交换得到的交互数据

Fujimoto选择了第一种方式,认为它更现实,但这种想法是有争议的。因为策略是固定的,Fujimoto在产生数据时加入了噪声,加噪声的方式是在80%的 episode中将$\epsilon$设置为0.2,其余episode设置为0.001。

本文的结论包括:

  • 实验中,离散的BCQ似乎是最好的batch RL算法。但是曲线看起来很奇怪:BCQ的性能上升到无噪声策略(测试中无探索的RL策略)的水平或略高于无噪声策略的水平,但随后就停滞不前了。虽然超过潜在的无噪声策略很好,但需要注意的是,它来自部分训练过的DQN,这是一个比较低的标准。
  • 对于DQN、QR-DQN和REM等标准的off policy算法,QR-DQN是最好的,但仍然劣于带有噪声的行为策略。不过,如果数据集足够大,即使QR-DQN不是专门用于离线设置中,使用QR-DQN也能得到不错的效果。
  • 虽然BCQ有很强的性能,但在大多数游戏中,它只能达到一个无噪声的online DQN的性能。这些结果表明,在离线数据有限的情况下,BCQ更接近于robust imitation,而不是真正的batch RL。

这就引出了我的一个问题:是否有可能设计出一种离线RL方法,并可靠地超过无噪声的行为策略?

2.3 Stabilizing Off-Policy Q-Learning via Bootstrapping Error Reduction

NeurIPS 2019的这篇论文与之前Fujimoto的BCQ论文高度相关,因为它也关注在off policy方式运行Q-learning时限制动作的分布。它提出了一个概念,即bootstrapping error,在本文的摘要中对bootstrapping error描述为:

We identify bootstrapping error as a key source of instability in current methods. Bootstrapping error is due to bootstrapping from actions that lie outside of the training data distribution, and it accumulates via the Bellman backup operator. We theoretically analyze bootstrapping error, and demonstrate how carefully constraining action selection in the backup can mitigate it.

那么这里的bootstrapping error和Fujimoto et al., 2019的外推误差有什么区别?我认为这两个术语都可以用来指在Q-learning过程中传播不准确的$Q$值的问题。只不过外推误差是在监督学习中的一个更广泛的问题,而bootstrapping是依靠bootstrap估计进行的强化学习算法中出现的特定问题。

作者有一篇BAIR博客文章,它对bootstrapping error如何影响静态数据上的offline Q-learning提供了很好的直觉解释。 例如,下面的图的右图中,红色虚线表示由行为策略$\beta (a|s)$得到的动作分布,在实际中我们可能得到蓝色实现表示的该动作分布之外的动作。如果这些行动的$Q(s,a)$值更高,那么它们就会被用于Q-learning的bootstrapping过程中,成为Q-learning更新的目标,引起bootstrapping error的累积。

wnGfhD.png

他们的结果还显示,如果要运行一个标准的现成的off-policy RL算法,仅仅增加静态数据集的大小似乎并不能解决性能问题。他们论文的主要贡献是: (a)理论分析了在Q-learning过程中约束动作可以减少误差传播;(b)设计了一个实际的算法,称为Bootstrapping Error Accumulation Reduction (BEAR)。

BEAR算法的想法是不限制学习到的策略与offline data所反应的行为策略的分布接近,而只要求学习到的策略对行为策略密度不可忽略的动作给予非零的概率即可,BEAR将其称为support constraint。如下图右边子图所示,在一个具有均匀随机行为的策略的设置中,一个support constraint允许dynamic programming学习一个最优的、接近确定的策略。而下图中间子图中,分布匹配约束则会导致学习到的策略是高度随机的(被约束为紫色策略之一)。因此不是最优。这一选择背后的理论支持简单来说就是,support constraint使我们能够通过学习策略的上界集中性来控制误差传播,同时减少与最优策略的散度。

wn8azd.png

在实践中,BEAR使用了所谓的最大平均差异(MMD)距离,即学习到的策略$\pi$的动作动作与未知的行为策略$\beta$的动作分布之间的距离。因此本文针对actor-critic算法的policy improvement步骤可以表示为:

\[\pi_{\phi}:=\max _{\pi \in \Delta|S|} \mathbb{E}_{s \sim \mathcal{D}} \mathbb{E}_{a \sim \pi(\cdot \mid s)}\left[\min _{j=1, \ldots, K} \hat{Q}_{j}(s, a)\right] \quad \text { s.t. } \quad \mathbb{E}_{s \sim \mathcal{D}}[\operatorname{MMD}(\mathcal{D}(\cdot \mid s), \pi(\cdot \mid s))] \leq \varepsilon\]

其中$D$表示行为策略$\beta$收集的离线静态数据,$j$下标来自$Q$函数集合,用于计算$Q$值的“保守估计值”。本文没有消融实验对比只使用一个或两个$q$网络进行测试的效果,所以网络的ensemble和MMD约束哪个更重要并不清楚。

与BEAR最密切相关的算法是前面讨论的BCQ 。它们比较起来如何?BEAR的作者Kumar et al., 2019 声称:

  • 他们的理论在较弱的假设下显示了方法的收敛性,并且能够bound住他们方法的次最优性。
  • BCQ通常在由专家策略收集off policy数据时更好,但是BEAR在由较弱的甚至是随机的策略收集数据时更好。他们声称,这是因为BCQ过于严格地限制动作的分布,即匹配offline data策略的分布,而BEAR只关注于匹配support。

关于本文产生的疑问是:

  • 是否有一种方法可以结合这两种算法的优点?
  • 同时,无法保证MuJoCo是评估这些算法的最佳方法,所以我们应该希望看看未来可能出现的其他数据集,这样我们就可以对BEAR和BCQ进行更广泛的比较。

三、利用RL的exploitation能力

3.1 An Optimistic Perspective on Offline Reinforcement Learning

与以往的研究不同,本文认为没有必要使用专门的离线RL算法来约束动作的集合。相反,使用具有更好的exploitation能力的off-policy Deep RL算法即可。

为了获取用于离线RL的offline data,本文使用了标准的online DQN训练的50M step的训练日志数据,其中每个step是4个环境帧。为了引入随机性,agents使用sticky actions(以一定的概率p重复之前动作,不受智能体的控制)以增加环境的随机性。给定这些记录的数据,运行一个从50M大小的Replay Buffer中进行随机采样的offline off-policy deep Q-learning算法。

实验表明,当仅针对该离线数据进行训练时,分布式的DeepRL算法Categorical DQN (C51)和 Quantile Regression DQN (QR-DQN)实际上优于online的DQN。注意这一说法的含义:C51和QR-DQN已经被认为比普通的DQN更好,但实验表明,即使没有对这两种方法加入exploration机制,它们仍然比online的DQN更好。

除此之外,offline C51和offline QR-DQN也优于pffline DQN,offline DQN通常比online DQN差(在60个游戏中的10-15个游戏中,offline的DQN实际上比online DQN更出色)。由于实验将exploration和exploitation分开,我们可以认为是offline DQN与offline C51或offline QR-DQN之间由于exploitation能力的差异而导致了最终表现的差异。按照从坏到好的游戏表现对一些算法进行排序:offline DQN,online DQN,offline C51, offline QR-DQN。

为了进一步证明改进off-policy Deep RL算法可以在batch RL中很好地工作,本文对比了使用不同优化器的方法:对于DQN使用Adam作为优化器而不是RMSprop本身就足以获得性能提升。这种offline DQN的平均性能甚至可以超过online DQN 。这个结果可信度存疑。

除了离散动作空间,他们还在连续动作空间上进行了实验,使用了DDPG训练日志记录中的1M样本。他们采用了上述讨论的BCQ,发现其表现相当不错。但他们也发现,他们可以简单地使用Fujimoto et al., 2018的TD3,并以off policy方式进行正常训练,可以获得比offline DDPG更好的效果。由于TD3被认为是一个比DDPG更强的off-policy连续控制的RL算法,这进一步支持了论文的观点,即我们所需要的是一个更强的off-policy算法来进行有效的offline RL学习

最后,根据上述观察,他们提出了他们的Random Ensemble Mixture (REM)算法,该算法使用$Q$网络的集成,并加强随机凸组合(在凸几何领域,凸组合(英语:convex combination)指点的线性组合,要求所有系数都非负且和为 1。此处的“点”可以是仿射空间中的任何点,包括向量标量)之间的Bellman一致性。这与Dropout的工作原理类似。它有离线版本和在线版本。在离线设置中,REM比C51和QR-DQN更简单。通过简化,不需要估计一个给定状态的值函数的完整分布。下图的是他们的方法结构:

wnGE6A.png

通过阅读本文,我得到的最大收获是,在离线RL中,数据的质量非常重要,使用来自多个不同策略的数据要比使用一个固定策略的数据更好。实际上,每四个step,策略参数就会有一次梯度更新,因此策略本身也会发生变化,这会使得离线RL数据的多样性极大化。事实上,Fujimoto et al., 2019认为REM和off-policy算法的成功更普遍地取决于训练数据的组成。因此,这些论文并没有相互矛盾的,它们是实现同一目标的不同方式。也许更好的方法是使用越来越大的数据集和强大的off policy策略算法,同时也可能专门针对batch RL设计一些off policy算法。

3.2 IRIS: Implicit Reinforcement without Interaction at Scale for Learning Control from Offline Robot Manipulation Data

本文提出的算法是专门用于离线学习大规模机器人数据集的IRIS,其中产生离线数据的策略可能是次优的或高度多模态的。算法示意图如下:

wnGVOI.png

IRIS将控制分为高层控制器和低层控制器。高层控制器在给定状态$s_{t}$时,必须选择一个新的目标状态$s_{g}$。给定目标状态$s_{g}$,低层控制器产生实际的动作$a \sim \pi_{i m}\left(s_{t} \mid s_{g}\right)$采取。高层控制器分为两部分。第一个部分用于采样几个不同的目标状态,第二个部分选择最好的目标状态传递给低层控制器。低层控制器,给定目标$s_{g}$,采取$T$个动作,然后将动作返回给高层控制器,后者对目标状态重新采样。当agent充分接近真正的目标状态时,episode结束。由于这是一个连续的状态空间,所以他们选择了一个状态与状态之间的距离阈值进行衡量。

本文模型训练方法如下:

  • 高层控制器的第一部分使用cVAE。给定数据中的状态序列,IRIS采样时间步长间隔为$T$的状态对,即$(s_{t},s_{t+T})$。encoder $E(s_{t},s_{t+T})$将状态对映射到高斯分布$\mu, \sigma=E\left(s_{t}, s_{t+T}\right)$。decoder 必须构建未来状态$\hat{\boldsymbol{s}}_{t+T} \sim D\left(s_{t}, z\right)$,其中$z$是一个高斯采样的数据。
  • 高层控制器的第二部分使用一个action cVAE作为一个较简单的BCQ变体,作为高层控制器中的值函数。这个cVAE不是预测目标状态,而是预测以状态为条件的动作。这可以通过采样状态动作对$(s_{t},a_{t})$并让cVAE预测$a_{t}$进行训练。
  • 低层控制器是一个RNN,给定$s_{t}$和$s_{g}$,产生$a_{t}$。它是用行为克隆训练的,因此不使用batch RL。但是这样的话如何才能达到目标状态呢?因为IRIS假定低层控制器运行固定数量的step(即$T$步),那么它们采用长度为$T$的连续状态动作序列,然后将最后一个状态作为目标。直观地说,通过这种方式训练的低层控制器将能够弄清楚如何在$T$步中从开始状态到“目标”状态,其中的目标加了引号,因为它不是真正的环境目标,而是人为地为训练设置的目标。这个设计有点像HER。

他们对batch RL的使用很有趣。他们不是用它来训练一个策略,而是用它来训练一个值函数。因此,这个工作可以被看作类似于与off policy RL相关的论文,但只是为了evaluate state。另外,他们之所以说他们的BCQ变体更简单,我认为这是因为他们无需训练一个扰动模型,这个模型被用来扰动候选动作以得到最优动作。

总的来说,我认为这篇论文混合了batch RL中两种角度的方法:动作约束与大规模数据集中学习。这是第一次证明离线RL可以作为机器人操作的一部分,为batch RL的落地提供了可能性。

四、其他最新工作列表

参考

  1. Daniel Seita’s Blog

  2. Scott Fujimoto, David Meger, Doina Precup. Off-Policy Deep Reinforcement Learning without Exploration, ICML 2019.

  3. Scott Fujimoto, Edoardo Conti, Mohammad Ghavamzadeh, Joelle Pineau. Benchmarking Batch Deep Reinforcement Learning Algorithms, NeurIPS 2019 workshop.

  4. Aviral Kumar, Justin Fu, George Tucker, Sergey Levine. Stabilizing Off-Policy Q-Learning via Bootstrapping Error Reduction, NeurIPS 2019.

  5. Rishabh Agarwal, Dale Schuurmans, Mohammad Norouzi. An Optimistic Perspective on Offline Reinforcement Learning, ICML 2020.

  6. Ajay Mandlekar, Fabio Ramos, Byron Boots, Silvio Savarese, Li Fei-Fei, Animesh Garg, Dieter Fox. IRIS: Implicit Reinforcement without Interaction at Scale for Learning Control from Offline Robot Manipulation Data, ICRA 2020.


支付宝打赏 微信打赏

您的打赏是对我最大的鼓励!


Share
Comments
Advertisements