- 标题:Off-Policy Deep Reinforcement Learning without Exploration
- 文章链接:Off-Policy Deep Reinforcement Learning without Exploration
- 发表:ICML 2019
- 领域:离线强化学习(offline/batch RL)—— RL-Based 策略约束
- 代码:Batch-Constrained Deep Q-Learning (BCQ)
- 摘要:强化学习的许多实际应用限制了 agent 只能从已经收集到的固定批数据中学习,并且禁止进一步收集数据。在本文中,我们证明了由于外推错误(Extrapolation Error),DQN 和 DDPG 等标准 off-policy 深度强化学习算法无法在缺少与当前策略诱导的 (s,a) 分布相关联的数据的情况下学习,这使得它们在 offline/batch RL 设定中无效。我们引入了一类新的 off-policy 算法,即批约束强化学习(Batch-constrained RL),它限制了动作空间,以迫使 agent 对给定数据的一个子集的行为接近于行为策略。我们提出了第一个连续控制深度强化学习算法,它可以有效地从任意的、固定的批处理数据中进行学习,并经验性地证明了它在多个任务中的行为质量
1. Offline RL 背景
Offline RL
是这样一种问题设定:Learner 可以获取由一批 episodes 或 transitions 构成的固定交互数据集,要求 Learner 直接利用它训练得到一个好的策略,而且禁止 Learner 和环境进行任何交互,示意图如下
关于 Offline RL 的详细介绍,请参考 Offline/Batch RL简介- Offline RL 是近年来 RL 领域非常火的一个方向,下图显示了 2019 年以来该领域的重要工作,可见本文是这一轮火热的开篇文章,是第一个实用的 Offline RL 方法
2. 动机
2.1 外推误差及其成因
-
如果对问题范式比较了解,可以发现 Offline RL 和 Online Off-policy RL 很相似,二者都是在用行为策略收集的数据来优化另一个目标策略,区别仅仅在于前者禁止进一步交互收集数据,而后者的 replay buffer 是按最近最少使用思想不断更新的。某种程度上,至少可以从形式上把 Offline RL 看做 Online Off-policy RL 的一个切片,要求用某一时刻 replay buffer 中的轨迹数据直接学出好策略,因此 DQN、DDPG 等过去的 Online Off-policy RL 方法都是可以直接拿过来用的,问题形式上不存在冲突
-
但是直接把 Online Off-policy RL 方法拿来用,就会出现
外推错误Extrapolation Error
,即由于数据集和当前(被评估的)策略所诱导的真实 (s,a) 分布之间的不匹配而引入的价值估计误差,作者将其仅一步细化为三个原因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 价值函数,RL 方法隐含着两个假设 “可以观测到无限多的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′ 对应的 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) 部分,最终导致价值估计整体崩溃
-
反观 Online Off-policy RL 方法,虽然它也是用行为策略收集的数据来评估和优化另一个目标策略,但是二者通常足够接近(比如设置为 ϵ \epsilon ϵ-greedy 和 greedy),而且数据集(replay buffer 数据)会随着策略提升不断更新,因此目标策略诱导的 ( s , a ) (s,a) (s,a) 分布不会和数据中的分布相差太多,也就几乎没有 Extrapolation Error 问题
另外有些文章会从 RL 的 “致命三要素” 角度进行分析,所谓 “致命三要素”,是指 bootstrap、off-policy 和函数近似方法一起用时,RL 的价值估计会缺少收敛性保障,通常认为如果行为策略和目标策略足够接近则此问题不严重,但 offline 设定下二者可能相差很多
2.2 外推误差的危害
- 接下来作者通过实验验证了online off-policy 方法在 offline 设定下会由于外推误差而失败,如下所示
这里的 Behavior Policy 是一个普通的 DDPG 算法,off-policy DDPG 是指 offline 设定下的 DDPG,它不和环境做任何交互,只在 Behavior Policy 的交互数据上学习。实验环境为 Hopper-v1,三种数据设定为- Final buffer:Behavior Policy 进行一百万步训练,将全部交互样本保存下来作为离线数据集,这个数据集保证有足够的状态动作空间覆盖率
- Concurrent:这个设定下 Behavior Policy 和 off-policy DDPG 同步训练,它们使用的数据都是 Behavior Policy 交互产生的,离线数据集会按 online 学习过程不断扩展
- Imitation:该设定下 Behavior Policy 先训练好,然后用训好的策略交互一百万步作为离线数据集供 off-policy DDPG 训练。这个数据集具有专家级质量,但多样性和覆盖性差
- 上面的三幅图显示了 Behavior Policy 和 off-policy DDPG 的 return 曲线,下图三幅图显示了两个算法下 agent 的价值估计和真实价值,可以发现
- online 训练的 behavioral DDPG 在三种情况下均的平均收益都远超 offline 设定下的 off-policy DDPG
- 即使在 Concurrent 数据下,off-policy DDPG 表现还是很差,说明在初始策略下的状态分布的差异足以导致严重的外推误差,以至于彻底破坏原本在 online 情况下表现良好的 off-policy 算法的性能
这里可以多想一点
- online 设定下,无论是 value-based 类方法中 Bellman optimal equation 中的 max 运算,还是 Actor-Critic 类方法中 Actor 的梯度运算(可参考 TD3 论文),都会导致 agent 高估价值
- 高估在价值收敛之前,即对价值不确定度高时尤其严重,然后随着对高估位置的访问/计算增加会有所缓解(可以参考 RL 圣经书里对 Online RL “致命三要素” 的分析)
- 某种程度上,价值高估代表着对不确定性的 “乐观” 态度,早期的高估价值会促使策略进一步探索这些不确定度高的位置,然后高估程度会随着交互增加逐渐减小(虽然不能彻底消除)
- 在这个实验中,Behavior Policy 能实现上述有效的 “高估->探索->缓解” 反馈,而 off-policy DDPG 则不行。由于不同的网络初始值,二者价值高估位置不同,基于前者价值高估进行的探索对于缓解后者价值高估是没有指向性的,这会导致价值高估的非均匀缓解(这其实还不如均匀地高估,因为均匀高估不影响策略),基于这样很差的价值估计,自然得不到好的策略。在其他固定数据集的 offline 设定下也是如此,即使像 Final buffer 实验那样有覆盖度足够的数据也学不好
- 在 Imitation 设定下,因为数据集中都是专家数据,此时 Off-policy DDPG 被好的数据冲昏了头脑,自信、乐观地外推,快速学习到采取非专家动作
3. 本文方法
3.1 思想:消除外推误差
-
为了要消除外推误差,作者提出了
批约束 batch-constrained
概念:让学到的策略所诱导的 ( s , a ) (s,a) (s,a) 分布尽量和离线数据集相似(To avoid extrapolation error a policy should induce a similar state-action visitation to the batch.)。基于此思想,策略在选择动作时要满足三个目标- 最小化所选动作和数据集中的动作的距离(Minimize the distance of selected actions to the data in
the batch) - 能转移到和数据集中状态相似的状态(Lead to states where familiar data can be observed.)
- 最大化价值估计(Maximize the value function)
- 最小化所选动作和数据集中的动作的距离(Minimize the distance of selected actions to the data in
-
作者认为以上三点中 (1) 最重要,因为如果 (1) 不满足,(2) 和 (3) 也没法正确估计,基于这个想法,作者提出四个定理,证明了
- 确定性有限 MDP 中,batch-constrained 策略可以消除外推误差
- 确定性有限 MDP 中,只要满足标准 Q-Learning 收敛条件,batch-constrained 版 Q-Learning(如下)也可以收敛到最优价值
Q
∗
Q^*
Q∗
Q ( s , a ) ← ( 1 − α ) Q ( s , a ) + α ( r + γ max a ′ s.t. ( s ′ , a ′ ) ∈ B Q ( s ′ , a ′ ) ) Q(s, a) \leftarrow(1-\alpha) Q(s, a)+\alpha\left(r+\gamma \max _{a^{\prime} \text { s.t. }\left(s^{\prime}, a^{\prime}\right) \in \mathcal{B}} Q\left(s^{\prime}, a^{\prime}\right)\right) Q(s,a)←(1−α)Q(s,a)+α(r+γa′ s.t. (s′,a′)∈BmaxQ(s′,a′)) - 确定性有限 MDP 中,从数据集中包含的任何状态开始,batch-constrained 版 Q-Learning 学到的策略一定相当于或优于行为策略
这几个定理的条件还是有些苛刻的,要求离线数据集必须覆盖行为策略有可能到达的所有 ( s , a ) (s,a) (s,a),而且对于任何 ( s , a , s ′ ) ∈ B (s,a,s')\in\mathcal{B} (s,a,s′)∈B,都要满足 s ′ ∈ B s'\in\mathcal{B} s′∈B。具体请参考原文
3.2 本文方法
- 作者的最终方法就是把上面证明收敛的 batch-constrained 版 Q-Learning 拓展到连续空间,并且放宽覆盖度的严格限制,具体而言
- 使用一个 Encoder-Decoder 结构的 VAE 生成模型 G ω = { E ω 1 , D ω 2 } G_\omega=\{E_{\omega_1},D_{\omega_2}\} Gω={Eω1,Dω2},对任意给定状态 s 生成类似行为策略的动作 a,其实就是对离线数据集做了个行为克隆
- 使用一个扰动网络
ξ
ϕ
(
s
,
a
,
Φ
)
\xi_\phi(s,a,\Phi)
ξϕ(s,a,Φ) 将 VAE 输出的动作进一步扰动到
[
−
Φ
,
Φ
]
[-\Phi,\Phi]
[−Φ,Φ] 范围内,增加动作的多样性,可以理解为在 batch-constrained 的前提下加入一点探索。扰动网络的优化目标是最大化生成的
a
a
a 所对应的
Q
Q
Q value,即
ϕ ← argmax ϕ ∑ ( s , a ) ∈ B Q θ ( s , a + ξ ϕ ( s , a , Φ ) ) . \phi \leftarrow \underset{\phi}{\operatorname{argmax}} \sum_{(s, a) \in \mathcal{B}} Q_{\theta}\left(s, a+\xi_{\phi}(s, a, \Phi)\right) . ϕ←ϕargmax(s,a)∈B∑Qθ(s,a+ξϕ(s,a,Φ)). 这个扰动网络和上面的生成模型合在一起可以看做 actor,具体使用时先用这个 actor 生成 n n n 个动作,再选出价值最高的动作执行,这种策略可以如下形式化
π ( s ) = argmax a i + ξ ϕ ( s , a i , Φ ) Q θ ( s , a i + ξ ϕ ( s , a i , Φ ) ) , { a i ∼ G ω ( s ) } i = 1 n . \pi(s)= \underset{a_{i}+\xi_{\phi}\left(s, a_{i}, \Phi\right)}{\operatorname{argmax}} Q_{\theta}\left(s, a_{i}+\xi_{\phi}\left(s, a_{i}, \Phi\right)\right), \space\space\space \left\{a_{i} \sim G_{\omega}(s)\right\}_{i=1}^{n} . π(s)=ai+ξϕ(s,ai,Φ)argmaxQθ(s,ai+ξϕ(s,ai,Φ)), {ai∼Gω(s)}i=1n. 注意到这里超参数 n n n 和 Φ \Phi Φ 的取值在强化学习和模仿学习间产生了一个 trade-off, n = 1 , Φ = 0 n=1, \Phi=0 n=1,Φ=0 时就是模仿学习; n → ∞ , Φ → a m a x − a m i n n\to\infin,\Phi\to a_{max}-a_{min} n→∞,Φ→amax−amin 时就是强化学习 - 设置两对不同初始化的
Q
Q
Q 网络
{
Q
θ
1
,
Q
θ
2
}
\{Q_{\theta_1},Q_{\theta_2}\}
{Qθ1,Qθ2} 和目标网络
{
Q
θ
1
′
,
Q
θ
2
′
}
\{Q_{\theta_1'},Q_{\theta_2'}\}
{Qθ1′,Qθ2′},如下计算 TD target 来优化价值网络
TD Target = r + γ max a i [ λ min j = 1 , 2 Q θ j ′ ( s ′ , a i ) + ( 1 − λ ) max j = 1 , 2 Q θ j ′ ( s ′ , a i ) ] \text{TD \space Target} = r+\gamma \max _{a_{i}}\left[\lambda \min _{j=1,2} Q_{\theta_{j}^{\prime}}\left(s^{\prime}, a_{i}\right)+(1-\lambda) \max _{j=1,2} Q_{\theta_{j}^{\prime}}\left(s^{\prime}, a_{i}\right)\right] TD Target=r+γaimax[λj=1,2minQθj′(s′,ai)+(1−λ)j=1,2maxQθj′(s′,ai)] 这里 λ \lambda λ 应取接近 1 的值,当 λ = 1 \lambda=1 λ=1 就是 TD3 里那个 Clipped Double Q-Learning。这里 a i a_i ai 就是从上面 actor 里采样的动作,这个式子是想在计算 TD target 时更偏好取值较小的目标网络,这可以简单理解为避免价值高估,但更好的角度是将其理解为一种面对不确定性的 “悲观” 态度,因为不确定度高的 Q ( s ′ , a i ) Q(s',a_i) Q(s′,ai) 通常会更加高估,这里通过惩罚不确定性,减小对不熟悉的 s ′ s' s′ 的 Q ( s ′ , a ′ ) Q(s',a') Q(s′,a′) 估计,从而避免转移去不熟悉状态,这个惩罚力度可以通过 λ \lambda λ 控制
- 下面给出完整伪代码
其中蓝色部分是训练 VAE 做模仿学习;橙色部分是训练价值网络;绿色部分是训练扰动网络
4. 实验
- 作者在 MuJoCo 中的几个经典连续控制任务上进行了实验(应该都是确定性环境),数据集设定除了上面 2.2 节的三种设定外,还增加了一个使用训练好的专家策略加上两个噪声源后构造的 Imperfect 数据集,结果如下
发现 BCQ 效果最好,而且除了 Imitation 设定外,都可以超过收集数据的行为策略性能 - 作者还用 BCQ 重新进行了上面 2.2 节的实验,在 Hopper-v1 环境下价值估计情况如下
可见 BCQ 相比 online off-policy 方法估计得准确多了
5. 总结
- 这篇文章应该是最早对 Offline RL 进行理论分析并提出实用算法的文章之一,本文对外推误差的分析和 “策略约束” 思想都非常漂亮,后续带动了一系列走这个思路的文章。美中不足在理论分析仅限于确定性的表格环境,限制比较严格
- 另外,这篇文章已经体现出来 Offline RL 中 RL-based 路线的优越性,通过价值函数作为中介,学到的策略有机会超越行为策略,IL-based 路线实现这个比较困难