离线强化学习(Offline RL)系列3: (算法篇) REM(Random Ensemble Mixture)算法详解与实现

【更新记录】

论文信息:Rishabh Agarwal, Dale Schuurmans, Mohammad Norouzi: “An Optimistic Perspective on Offline Reinforcement Learning”, 2019, Proceedings of the 37th International Conference on Machine Learning, PMLR 119:104-114, 2020; arXiv:1907.04543.

本文是Google Brain团队与Alberta大学合作,在2020年提出的一篇基于DQN replay dataset的鲁棒(roboust)离线强化学习解决方法,发表于ICML顶会上,此工作发布了60多个Offline强化学习dataset,该团队号称规模化是ImageNet的60 × \times × 3.5倍(一如既往的Google风格,规模就是大,不服来干),另外文章如其名 “An Optimistic Perspective”, 说明OfflineRL还是不错的!

摘要: 前几篇博客介绍的BCQ、BEAR等方法都是去讨论如何消除distribution mismatch问题的方法,本文作者大胆的提出了在不去修正该问题(without an explicit correction for distribution mismatch)的情况下能否达到state of the art的效果问题,并提出了随机集成混合方法(Random Ensemble Mixture, REM) 方法,它是一种使用多个参数化 Q Q Q 函数来估计 Q Q Q 值,并将多个 Q Q Q 值估计的凸组合看作是 Q Q Q 值估计本身,强制执行最佳的贝尔曼一致性的方法,结果表明效果不错。

1. 问题及数据集

1.1 问题描述

老生常谈一下offLine RL和off-policy 的区别以及优势,老爷子曾经说过一句话,挺有意思的,mark一下,也是作为off-policy和offline发展的一个引子吧:

The potential for off-policy learning remains tantalizing, the best way to achieve it still a mystery.” —— Sutton & Barto

在离线强化学习中目前存在的几个经典问题就是: 分布偏移,OOD、不稳定、没有探索导致效果很难达到Online等。如何解决这些问题呢?作者首先制作了一个最全的atari数据集,然后在上面搞起来。

1.2 数据集制作

作者在所有 60 款 Atari 2600 游戏上训练一个 DQN 智能体,并按照标准格式将 2 亿帧经验元组(观察、动作、奖励、下一步) 观察)(大约 5000 万)保存起来(其中seed=5)

数据的使用方式如下查看详细过程

2. 论文方法

2.1 基础方法总结

2.1.1 Ensemble-DQN方法

DQN算法大家再熟悉不过了,上过顶会,登过Nature, 其中有经典的一种变种改进就是Ensemble-DQN,其核心思想是: Q Q Q 函数从不同的参数初始化开始,以相同的顺序使用相同的小批进行优化。损失 L ( θ ) \mathcal{L}(\theta) L(θ) 采用下面公式,最终训练多个 Q 值估计并将它们平均以进行评估。
L ( θ ) = 1 K ∑ k = 1 K E s , a , r , s ′ ∼ D [ ℓ λ ( Δ θ k ( s , a , r , s ′ ) ) ] Δ θ k ( s , a , r , s ′ ) = Q θ k ( s , a ) − r − γ max ⁡ a ′ Q θ ′ k ( s ′ , a ′ ) \begin{gathered} \mathcal{L}(\theta)=\frac{1}{K} \sum_{k=1}^{K} \mathbb{E}_{s, a, r, s^{\prime} \sim \mathcal{D}}\left[\ell_{\lambda}\left(\Delta_{\theta}^{k}\left(s, a, r, s^{\prime}\right)\right)\right] \\ \Delta_{\theta}^{k}\left(s, a, r, s^{\prime}\right)=Q_{\theta}^{k}(s, a)-r-\gamma \max _{a^{\prime}} Q_{\theta^{\prime}}^{k}\left(s^{\prime}, a^{\prime}\right) \end{gathered} L(θ)=K1k=1KEs,a,r,sD[λ(Δθk(s,a,r,s))]Δθk(s,a,r,s)=Qθk(s,a)rγamaxQθk(s,a)

2.1.2 Distributional RL

这篇文章是Bellemare提出的将值函数一个值转变为一个分布去表示,避免了值得单一影响,更新过程如下,原文可参考 A distributional perspective on reinforcement learning(ICML2017)
Z ∗ ( s , a ) = D r + γ Z ∗ ( s ′ , argmax ⁡ a ′ ∈ A Q ∗ ( s ′ , a ′ ) ) ,  where  r ∼ R ( s , a ) , s ′ ∼ P ( ⋅ ∣ s , a ) . \begin{array}{r} Z^{*}(s, a) \stackrel{D}{=} r+\gamma Z^{*}\left(s^{\prime}, \operatorname{argmax}_{a^{\prime} \in \mathcal{A}} Q^{*}\left(s^{\prime}, a^{\prime}\right)\right), \\ \text { where } r \sim R(s, a), s^{\prime} \sim P(\cdot \mid s, a) . \end{array} Z(s,a)=Dr+γZ(s,argmaxaAQ(s,a)), where rR(s,a),sP(s,a).

2.1.3 QR-DQN

Z θ ( s , a ) : = 1 K ∑ i = 1 K δ θ i ( s , a ) , Q θ ( s , a ) = 1 K ∑ i = 1 K θ i ( s , a ) Z_{\theta}(s, a):=\frac{1}{K} \sum_{i=1}^{K} \delta_{\theta_{i}(s, a)}, Q_{\theta}(s, a)=\frac{1}{K} \sum_{i=1}^{K} \theta_{i}(s, a) Zθ(s,a):=K1i=1Kδθi(s,a),Qθ(s,a)=K1i=1Kθi(s,a)

2.2 随机集成混合方法(Random Ensemble Mixture, REM)

Random Ensemble Mixture (REM) 是受 Dropout 启发的 DQN方法的一种易于实现的扩展。 REM 的关键是访问多个 Q Q Q 值的估计,并将其加权组合得到 Q Q Q 值的估计。 因此,在每个训练步骤中,REM 随机组合多个 Q Q Q 值估计进行训练。

2.2.1 方法原理

从图中可以明显看到REM和DQN、QR-DQN、Ensemble-DQN的区别,

  • DQN、Ensemble-DQN 和REM属于同一类,且都未使用Distribution;
  • 相对于Ensemble-DQN , REM最后做了一个 ∑ i α i Q i \sum_{i} \alpha_{i}Q_{i} iαiQi 操作, 其中 α 1 : k ∼ P Δ \alpha_{1:k} \sim P_{\Delta} α1:kPΔ & ∑ α i = 1 \sum \alpha_{i}=1 αi=1

对应到计算公式上来讲,REM 对于每个 mini-batch 随机抽取一个分类分布 α \alpha α,它定义了一个 K K K 估计的凸组合来近似最优的 Q Q Q 函数。该近似器对其相应的目标进行训练,以最小化TD误差。损失 L ( θ ) \mathcal{L}(\theta) L(θ) 的形式:

L ( θ ) = E s , a , r , s ′ ∼ D [ E α ∼ P Δ [ ℓ λ ( Δ θ α ( s , a , r , s ′ ) ) ] ] , Δ θ α = ∑ k α k Q θ k ( s , a ) − r − γ max ⁡ a ′ ∑ k α k Q θ ′ k ( s ′ , a ′ ) \begin{aligned} \mathcal{L}(\theta) &=\mathbb{E}_{s, a, r, s^{\prime} \sim \mathcal{D}}\left[\mathbb{E}_{\alpha \sim \mathrm{P}_{\Delta}}\left[\ell_{\lambda}\left(\Delta_{\theta}^{\alpha}\left(s, a, r, s^{\prime}\right)\right)\right]\right], \\ \Delta_{\theta}^{\alpha} &=\sum_{k} \alpha_{k} Q_{\theta}^{k}(s, a)-r-\gamma \max _{a^{\prime}} \sum_{k} \alpha_{k} Q_{\theta^{\prime}}^{k}\left(s^{\prime}, a^{\prime}\right) \end{aligned} L(θ)Δθα=Es,a,r,sD[EαPΔ[λ(Δθα(s,a,r,s))]],=kαkQθk(s,a)rγamaxkαkQθk(s,a)

L ( θ ) \mathcal{L}(\theta) L(θ) 可以看作是一个对应于不同混合概率分布的无限约束集, ℓ λ \ell_{\lambda} λ 是Huber loss, P Δ P_{\Delta} PΔ 表示在标准 ( K − 1 ) (K-1) (K1) 单纯形 Δ K − 1 = { α ∈ R K : α 1 + α 2 + ⋯ + α K = 1 , α k ≥ 0 , k = 1 , … , K } \Delta^{K-1}=\{\alpha \in \mathbb{R}^{K}: \alpha_{1}+\alpha_{2}+\cdots+ \alpha_{K}=1, \alpha_{k} \geq 0, k=1, \ldots, K\} ΔK1={αRK:α1+α2++αK=1,αk0,k=1,,K} 上的概率分布。

这里实现分三步

# 第一步: 求取Huber loss
loss = tf.losses.huber_loss(
       target, replay_chosen_q, reduction=tf.losses.Reduction.NONE)
# 第二步,求取(k-1)个单纯性上的loss
q_head_losses = tf.reduce_mean(loss, axis=0)
# 第三步:
final_loss = tf.reduce_mean(q_head_losses)

对于动作的选择,作者使用了 K K K 个值函数估计值的平均值作为 Q Q Q 函数,即
Q ( s , a ) = 1 K ∑ k Q θ k ( s , a ) Q(s, a)=\frac{1}{K}\sum_{k} Q_{\theta}^{k}(s, a) Q(s,a)=K1kQθk(s,a)

此外,作者使用一个非常简单的分布 P Δ P\Delta PΔ:从正态分布 N ( 0 , 1 ) N(0,1) N(0,1) 中获取 K K K 个独立同分布的值,并且将他们归一化为一个遵循 α k = α k ′ / ∑ α i ′ \alpha_{k}=\alpha_{k}^{\prime} / \sum \alpha_{i}^{\prime} αk=αk/αi 的分类分布 α k ′ ∼ U ( 0 , 1 ) \alpha_{k}^{\prime} \sim U(0,1) αkU(0,1)

def _build_train_op(self):
    """Builds a training op.
    Returns:
      train_op: An op performing one step of training from replay data.
    """
    actions = self._replay.actions
    indices = tf.stack([tf.range(actions.shape[0]), actions], axis=-1)
    replay_chosen_q = tf.gather_nd(
        self._replay_net_outputs.q_heads, indices=indices)
    target = tf.stop_gradient(self._build_target_q_op())
    loss = tf.losses.huber_loss(
        target, replay_chosen_q, reduction=tf.losses.Reduction.NONE)
    q_head_losses = tf.reduce_mean(loss, axis=0)
    final_loss = tf.reduce_mean(q_head_losses)
    if self.summary_writer is not None:
      with tf.variable_scope('Losses'):
        tf.summary.scalar('HuberLoss', final_loss)
    return self.optimizer.minimize(final_loss)

2.2.2 理论证明

2.3 衡量指标

 Score  normalized  =  Score  Agent  −  Score  min ⁡  Score  max ⁡ −  Score  min ⁡  Score  min ⁡ = min ⁡ (  Score  D Q N ,  Score  Random  )  Score  max ⁡ = max ⁡ (  Score  D Q N ,  Score  Random  ) \begin{aligned} \text { Score }_{\text {normalized }}=& \frac{\text { Score }_{\text {Agent }}-\text { Score }_{\min }}{\text { Score }_{\max }-\text { Score }_{\min }} \\ \text { Score }_{\min } &=\min \left(\text { Score }_{\mathrm{DQN}}, \text { Score }_{\text {Random }}\right) \\ \text { Score }_{\max } &=\max \left(\text { Score }_{\mathrm{DQN}}, \text { Score }_{\text {Random }}\right) \end{aligned}  Score normalized = Score min Score max Score max Score min Score Agent  Score min=min( Score DQN, Score Random )=max( Score DQN, Score Random )

这里的 S c o r e D Q N Score_{DQN} ScoreDQN , S c o r e R a n d o m Score_{Random} ScoreRandom S c o r e A g e n t Score_{Agent} ScoreAgent 表示 5次以上的平均评估得分。

2.4 影响Offline RL的重要因素

2.4.1 数据集大小(Dataset Size)和数据多样性(Diversity)

结论
(1)为研究离线数据集大小的作用,作者进行了一个可变重放大小的消融实验。通过从记录的DQN经验中对整个轨迹进行随机子采样,从而训练QR-DQN和REM,保持相同的数据分布。图6显示了离线REM和QR-DQN智能体的性能,其中在DQN重放数据集中有N个百分比的元组,其中 N ∈ { 1 、 10 、 20 、 50 、 100 } N \in \{1、10、20、50、100\} N{1102050100} 。正如预期的那样,性能倾向于随着数据的比例的增加而增加(这个好像和BEAR方法中结论有点矛盾了)。 N ≤ 10 % N \le10\% N10%,REM和QR-DQN在这些游戏中的表现仍然与在线DQN相当。然而, N = 1 % N=1\% N=1% 的性能急剧恶化。
(2)为了了解离线数据集质量的影响,作者执行了另一个消融实验,在DQN重放数据集的前2000万帧上训练离线智能体(这是一个质量较低的数据集),大致近似于具有次优回报的探索数据。与整个数据集的离线结果类似,在大多数Atari游戏中,离线REM和QRDQN的性能优于该数据集中的最佳策略(图7),这表明标准的RL代理在足够多样化的离线数据集上工作得很好。

2.4.2 算法的选择(algorithm choice)

图8结论:
离线TD3的性能明显优于收集离线数据的行为策略以及离线DDPG智能体。值得注意的是,离线TD3的性能也与BCQ相当。

3. 实验结果分析

3.1 超参数和实验细节

3.2 结果分析

图4结论:
(1)离线DQN在所有游戏上都表现不如充分训练的在线DQN
(2)离线QR-DQN在大多数游戏上的表现都优于离线DQN和在线DQN
(3)使用DQN回放数据集训练的离线C51也在离线DQN上大大改进了DQN(图3),离线QR-DQN的性能优于离线C51。




4. 实验源代码

Github: An Optimistic Perspective on Offline Reinforcement Learning


参考文献

[1]. Rishabh Agarwal, Dale Schuurmans, Mohammad Norouzi: “An Optimistic Perspective on Offline Reinforcement Learning”, 2019, Proceedings of the 37th International Conference on Machine Learning, PMLR 119:104-114, 2020; arXiv:1907.04543.
[2]. Google Blog: Rishabh Agarwal, An Optimistic Perspective on Offline Reinforcement Learning, 2020.4 Blog Access


OfflineRL推荐阅读

离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BEAR算法原理详解与实现
离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BCQ算法详解与实现
离线强化学习(Offline RL)系列2: (环境篇)D4RL数据集简介、安装及错误解决
离线强化学习(Offline RL)系列1:离线强化学习原理入门

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值