Batch-Constrained deep Q- Learning(BCQ)

论文全称:Off-Policy Deep Reinforcement Learning Without Exploration (Scott Fujimoto, David Meger, Doina Precup)

原文传送门

https://arxiv.org/pdf/1812.02900​arxiv.org

 

简介

本文其实不算是一篇Exploration的文章,但文章题目中的Without Exploration还是吸引到我了。

本文解决的问题是Batch Reinforcement Learning,可以只利用replay buffer中的经验数据进行学习而不需要通过与环境进一步交互。作者提出当前的off policy算法例如DQN,DDPG中的replay buffer中的数据其实都是和当前策略十分相关的,因此才能学之有效,但当这些经验的数据分布和当前策略差距很大时,则无法进行学习。而本文提出的方法可以利用任意的经验来解决连续控制问题。

本文解决的问题其实在模仿学习和off-policy学习之间,BatchRL理论上可以利用任意策略(可以不止一种)采样得到的离线数据学习在该环境中的最优策略,而不是模仿采样示例的所谓“专家数据”。而模仿学习则是模仿采样专家数据的策略(虽然也可以不需要交互),off-policy需要的经验池则需要大量的近期数据。

注意本文主要focus on在连续动作空间,因为连续动作空间的采样是难以完全的。

核心笔记

一、背景

Batch Reinforcement Learning是从一个固定的数据集中学习而不需要与环境进行进一步交互的任务,适用于很多数据收集费力的场景。当数据质量足够,即轨迹可以保证是专家数据的话,可以直接使用imitation learning,但对于suboptimal的轨迹数据就无效了。因此Batch Reinforcement Learning解决的是从任意数据(可以是各种采样的大杂烩数据)中学习最优策略的情形。

当前的Off-Policy算法会有growing batch learning的问题,即经验池会不断增长。但是本文的实验验证了当数据与当前策略很不相关,即采样用到的策略与当前策略差别很大(导致数据分布差别大)时,Off-Policy的算法就不work了。实验中,通过学习得到的策略甚至不如behavioral的策略(即用来采样得到经验池数据的策略)。

这样的问题来源于文中定义的extrapolation error,推断误差,即错误的估计状态值或者状态动作值,本质上来源于经验池中的数据分布与当前策略不一致。比如,如果经验池中没有选择某个动作的样本,我们不可能学到选择了该动作的策略。

本文提出的BCQ算法就可以很好的解决这个问题。核心在于利用state-conditioned generative model提供先前见过的动作(即选择的策略和经验池更相关)。本文证明了在一些假设下,这样的batch-constrained条件,是要从不完整的数据集中学习有限、确定性MDP的value的无偏估计的必要条件。由于BCQ考虑了extrapolation error,因此可以从任意数据中学习,不仅可以从专家数据,也可以从一般的sub optimal数据学习。

本文主要在MuJoCo上实验,因为其中的高维连续动作空间是很难完整采样的。BCQ算法还为imitation learning和off-policy算法提供了一个统一的视角。作者说BCQ只是实现batch-constrained RL在deep setting的其中一种方法,但可以为未来的算法打基础。代码也已经开源。

二、推断误差 Extrapolation Error

这部分主要介绍什么是推断误差,原文话是‘introduced by the mismatch between the dataset and true state-action visitation of the current policy’。说白了就是不同策略采样的分布不同,在计算Q/V的时候有关概率肯定有差别。

但要注意,如果是off-policy,并且更新的策略(例如greedy)利用的数据全部来源于采样的策略(例如epsilon-greedy)的话,在bellman equation迭代计算Q的时候应该乘上一连串重要性采样的权重,但Q-learning通过技巧(下一步的Q的action由更新的策略(例如greedy)给出),从而避免了重要性采样的权重,因此这部分是没有误差的。推断误差主要来自于以下方面:

  1. Model Bias. batch都不是无穷大小的,因此每个state的访问次数也是有限的,因此其分布就带来了偏差。如下式

[公式]

偏差受到s'分布的影响。

2. Absent Data. 也即某些特定的state-action对(s,a)没有出现在batch中,这部分的价值就无法更新。误差来源于相似数据的价值和逼近误差。

3. Training Mismatch. 即便有足够数据,从dataset采样时是均匀采样的,训练的损失函数和数据的likelihood成比例:

[公式]

因此当数据分布不一样时,学习会有偏差。但是即便这个损失函数是和当前policy的likelihood相关,但是当前policy下likelihood比较高的state-action pair不在batch中时,也会带来误差。

当前的SoTA算法并没有考虑到这样的mismatch问题,但是他们为什么work呢?作者说原因在于他们的replay buffer采的都是最近的policy的数据,和当前policy差别不大。但是当面对数据分布很不一致的情况时同样表现的很糟糕。作者用简单的实验验证了这一点。实验采用了3种batch:

  1. Final Buffer. 训练一个DDPG算法100万步(加入了高斯噪声来保证充分探索)并将遇到的transition全部储存在经验池,保证sufficient coverage.
  2. Concurrent. 在训练behavioral DDPG agent(加入了高斯噪声来保证充分探索)时同时训练off-policy一个的DDPG,他们俩都用behavioral DDPG agent采样得到的数据一起学习。
  3. Imitation. 一个训练好的DDPG agent作为专家,采样100万步,不做任何探索。

结果如图所示,其中True Value是用Monte Carlo算出来的。

可以看到off-policy的DDPG基本学不到东西,即便和behavioral的agent同时训练,也有很大的差距,这说明在稳定的状态分布下,初始策略的差异便可导致推断误差!在final buffer中state-action pair基本都已经覆盖到,但是训练很不稳定,结果也很差。而在imitation中,有了专家数据的情况下学到的都是非专家的动作,value估计很快就发散了。

尽管很多时候推断误差都会恶化结果,但是当和最大化结合的时候,可以以噪声的方式减小overestimate bias。这里说的意思是,在on-policy下,推断误差会导致过分估计,带来的是一种基于“uncertainty”的探索,当策略对这些“错误”的状态探索后,其值估计会慢慢修正。但是off-policy是基于batch的,这样的误差将很难被消除。

在连续状态空间和多维动作空间下,这样的误差将带来更大的问题。

三、Batch-Constrained RL

当前的off-policy的DRL算法在选择动作时只考虑value,而不考虑value估计的准不准。如果我们在估计当前batch中不存在或者在batch的分布之外的动作值时,将会带来很大的误差,但如果我们只选择那些在batch的数据中有的动作空间,就会估计的很准。Batch-Constrained,顾名思义,就是在batch的限制下选择策略。idea很简单:to avoid extrapolation error a policy should induce a similar state-action visitation to the batch。意思就是选择策略的时候要使得state-action分布和batch相似。因此batch constrained策略有以下3个目标:

(1) Minimize the distance of selected actions to the data in the batch.

(2) Lead to states where familiar data can be observed.

(3) Maximize the value function.

其中(1)最重要,因为如果不限制在相关的transition下的话,value的估计将会很差,从而(2)(3)也不会好。因此本文在优化value函数时加入了future certainty的衡量,同时加入了距离限制,通过一个state conditioned generative model完成。这个generative model用一个网络来optimally perturb the generated actions in a small range,再加上Q网络来选择最高价值的动作。为了评估相似状态,在价值更新时利用两个Q网络的估计再取soft minimum。

文章随后从finite MDP出发推导了Extrapolation Error的数学形式,并分析了batch-constrained policy的理论性质,然后给出了BCQ算法。这里就暂时略去这些定理和引理,直接说结论。结论就是对于确定性MDP,BCQ可以保证至少match,甚至超过behavioral policy(就是经验池用来采样的策略)。

BCQ算法详细步骤如图:

算法和一般的DQN相比,BCQ使用了两个Q网络和两个targetQ网络,一个扰动网络和对应的target扰动网络以及一个VAE生成模型(conditionnal VAE)。在训练时,首先从batch中采样transition,然后训练VAE,生成和batch中相似的action,然后从生成器中采样,用扰动网络扰动action取值。最后更新Q和targetQ。

扰动网络的目的在于提供action的多样性,这样可以采样一定adjustment的region内( [公式] )的动作,而不单单依靠生成器生成。因此policy是对区域内的action取max,如下式:

[公式] 和n提供了模仿学习和强化学习的trade-off:若[公式]=0且n=1,则成为behavior cloning(选择的动作就是采样出来的动作);若[公式]且n=[公式],则即为Q学习(注意是没法实现的连续动作空间下的dqn)。

惩罚future states的uncertainty是借鉴了Clipped Double Q-Learning的做法(也是本文的一作提出的),利用两个Q网络的估计的最小值。注意用的不是hard minimum而是convex combination,如下式:

四、实验结果

作者对比了在之前所述的三个训练集上的表现,对比了一些baseline,验证了算法的有效性。可以看到BCQ甚至超越了behavioral agent的效果。说明在固定的batch上学习仍可以学习得到更好的策略。

此外,可以看到,BCQ的价值估计也十分准确而且稳定。这说明推断误差得到了很好的解决。

BCQ可以从不好的数据示例中进行学习,并可以超过示例;此外,相较于一般的DRL算法,BCQ需要的迭代次数很少。总之,BCQ既能从专家示例中学习,也可以避免噪声的影响。

BCQ这篇工作理论扎实,提出的视角值得思考,但对于采样较为容易的场景其实没必要。此外,由于只能从有限的数据中学习,而不与环境交互,其可以学习到的最优策略应当是有上界的(文中没有证明,只给了下界)。有兴趣的同学可以继续研究一下batch RL。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值