论文理解【Offline RL】——【One-step】Offline RL Without Off-Policy Evaluation

2023-05-16

  • 标题:Offline RL Without Off-Policy Evaluation
  • 文章链接:Offline RL Without Off-Policy Evaluation
  • 代码:davidbrandfonbrener/onestep-rl
  • 发表:NIPS 2021
  • 领域:离线强化学习(offline/batch RL)—— RL-Based / One-step

  • 摘要:先前的大多数 Offline-RL 方法都采用了涉及 Off-policy evaluation 的迭代 Actor-Critic (AC) 方法。本文中我们证明了只需简单地基于 behavior policy 的 on-policy Q Q Q 价值估计做一步 constrained/regularized policy improvement,就会表现得惊人地好。这种 One-step 算法在大部分 D4RL benchmark 上击败了之前的迭代算法。这种 One-step baseline 在实现强大性能的同时,比以前提出的迭代算法简单很多,且对超参数更鲁棒。我们认为,迭代方法之所以性能较差,一方面是因为执行 Off-policy evaluation 时固有的高方差导致价值估计不准,另一方面是因为基于这些低质量价值估计迭代进行 policy improvement 会放大价值估计问题。此外,我们认为 One-step 算法的强大性能是由于它结合了 “环境中的有利结构” 和 “行为策略”

文章目录

  • 1. 背景
    • 1.1 Offline RL
    • 1.2 One-step & Multi-step
    • 1.3 Related work
  • 2. 本文方法
  • 3. 实验
  • 4. 讨论
    • 4.1 迭代算法的问题
      • 4.1.1 问题的表现
      • 4.1.2 Distribution shift
      • 4.1.3 Iterative error exploitation
    • 4.2 迭代方法的优势

1. 背景

1.1 Offline RL

  • Offline RL 是这样一种问题设定:Learner 可以获取由一批 episodes 或 transitions 构成的固定交互数据集,要求 Learner 直接利用它训练得到一个好的策略,而且禁止 Learner 和环境进行任何交互,示意图如下
    在这里插入图片描述
    关于 Offline RL 的详细介绍,请参考 Offline/Batch RL简介
  • Offline RL 是近年来很火的一个方向,下图显示了 2019 年以来该领域的重要工作
    在这里插入图片描述
    本文出现在 21 年,严格地讲作者其实没有提出新方法,只是发现了 “Offline 设定下,One-step 这种 train schedule,作为广义策略迭代(GPI)的一个特例,可以取得高性能” 这一现象,并深入探究分析了其原因,揭示了 Offline RL 训练的一些规律和特点,有较强的启发性
  • 本文给出的 Offline RL Preliminaries 如下

    考虑有限 MDP M = { S , A , ρ , P , R , γ } \mathcal{M}=\{\mathcal{S,A},\rho,P,R,\gamma\} M={S,A,ρ,P,R,γ},离线数据集 D N D_N DN 由某 behavior policy β \beta β 收集的 ( s i , a i , r i ) (s_i,a_i,r_i) (si,ai,ri) 组成,期望奖励为 r ( s , a ) = E r ∣ s , a [ r ] r(s,a)=\mathbb{E}_{r|s,a}[r] r(s,a)=Ers,a[r],任意策略 π \pi π Q Q Q 价值定义为
    Q π ( s , a ) : = E P , π ∣ s 0 = s , a 0 = a [ ∑ t = 0 ∞ γ t r ( s t , a t ) ] Q^{\pi}(s, a):=\mathbb{E}_{P, \pi \mid s_{0}=s, a_{0}=a}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(s_{t}, a_{t}\right)\right] Qπ(s,a):=EP,πs0=s,a0=a[t=0γtr(st,at)] 目标是最大化学得策略的期望 return
    J ( π ) : = E ρ , P , π [ ∑ t = 0 ∞ γ t r ( s t , a t ) ] = E s ∼ ρ a ∼ π ∣ s [ Q π ( s , a ) ] J(\pi):=\underset{\rho, P, \pi}{\mathbb{E}}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(s_{t}, a_{t}\right)\right]=\underset{\substack{s \sim \rho \\ a \sim \pi \mid s}}{\mathbb{E}}\left[Q^{\pi}(s, a)\right] J(π):=ρ,P,πE[t=0γtr(st,at)]=sρaπsE[Qπ(s,a)] 允许访问环境来调优一组少量的(< 10)超参数集

1.2 One-step & Multi-step

  • 解释一下 One-step 概念,这是针对要做 policy evaluation 价值评估的 RL-based 类 Offline RL 方法而言的。大多数这类方法都是基于 Bellman 等式做 TD-Learning 来评估价值的,整个过程服从广义策略迭代(GPI)框架,即迭代进行 policy evaluation 和 policy improvement 两步,其中

    1. policy evaluation 阶段:先用上一步迭代的价值估计 Q ^ π k − 2 \hat{Q}^{\pi_{k-2}} Q^πk2 进行 warm-start,然后用数据集 Q N Q_N QN 估计当前策略 π k − 1 \pi_{k-1} πk1 的价值 Q ^ π k − 1 \hat{Q}^{\pi_{k-1}} Q^πk1
    2. policy improvement 阶段:先用上一步迭代的最新策略 π k − 1 \pi_{k-1} πk1 进行 warm-start,然后根据估计价值 Q ^ π k − 1 \hat{Q}^{\pi_{k-1}} Q^πk1、估计的行为策略 β \beta β 和数据集 D N D_N DN 来更新得到策略 π k \pi_k πk

    归纳得到如下通用算法模板
    在这里插入图片描述
    根据 GPI 迭代的次数和程度,作者区分了以下几个概念

    1. One-step:迭代次数 K = 1 K=1 K=1。首先通过最大似然(比如 MC)得到 behavior policy 的估计 β ^ \hat{\beta} β^,然后做 Policy evaluation 至价值收敛,得到 behavior policy 的价值估计 Q ^ β \hat{Q}^\beta Q^β,最后做一步 Policy improvement 得到 π 1 \pi_1 π1 就结束。注意这个过程完全避免了 off-policy 的 bootstrap 计算
    2. Multi-step:迭代次数 K > 1 K>1 K>1,其他都和 One-step 一样,注意每一次 Policy evaluation 都要评估至收敛。由于 Offline 数据集是由 behavior policy β \beta β 收集的, π k , k ≥ 2 \pi_k, k\geq 2 πk,k2 进行的 Policy evaluation 一定都是 Off-policy 的
    3. Iterative actor-critic:这个很类似 Multi-step,区别在于使用更大的超参数 K K K,且不要求每次迭代中的 Policy evaluation 收敛。通常这里 evaluation 和 improvement 两步都使用梯度方法,具体使用的 operators 可以和 Multi-step 中相同
  • 下图(来自 R_BVE 论文)展示了 One-step 和其他两种涉及 Off-policy evaluation 的 Iterative 方法在流程上的区别
    在这里插入图片描述
    下图(来自本文)显示了策略空间上的区别,注意学得策略 π i \pi_i πi 被约束在 behavior policy β \beta β 附近的安全范围内
    在这里插入图片描述

1.3 Related work

  • Iterative 方法:这类方法涉及到 Q Q Q 函数的多步 iterative & off-policy 评估,涵盖了上文提到的 Multi-step 和 Iterative actor-critic,过去大多数 RL-based 类算法都属此类。为了减轻 Extrapolation Error(见 BCQ 论文解析 2.1 节) 问题对价值估计质量的影响,这些方法提出各种措施来确保学得策略不会偏离 behavior policy 太远,大致可以分成以下三类
    1. policy constraints/regularization: 直接优化 policy,使之和 behavior policy 接近。一类做法是对策略网络施加强约束,使其只选择 “能使 ( s , a ) (s,a) (s,a) 具有足够数据集支撑” 的动作 a a a(比如在 BC 的基础上加一个随机扰动),代表方法有 BCQ、SPIBB 等;另一类做法是在策略网络的优化目标中增加 KL、MMD 等正则化项,鼓励学得策略和 behavior policy 接近,代表方法有 BEAR 等
    2. modifications of imitation learning:基本都是 BC 的变体,比如先过滤掉低 Q Q Q 价值数据再做模仿学习,或者根据 Q Q Q 价值进行加权模仿。代表方法有 ABM、BAIL、COIL 等
    3. Q regularization:这类方法主要从 Q Q Q 函数估计(或者说 critic 的优化目标)入手,通过引入正则化措施,对未知或不确定的 ( s , a ) (s,a) (s,a) 保持悲观态度,从而间接地鼓励学得策略呆在 behavior policy 附近。比如 BRAC、CQL、Fisher-BRC、R_BVE 等
  • one-step 方法:这类方法只对 behavior policy 做一次 on-policy 的 Q Q Q 价值评估,然后优化一步 policy 结束,不涉及任何 iterative & off-policy 评估操作,不存在 Extrapolation Error 问题。过去的方法有
    1. 在 D4RL 上做连续控制的 YOEO,该方法比较复杂,涉及 distributional Q Q Q 函数及其 ensembles,以及一种新正则化器,本文考虑的设定在能取得相似性能的情况下更简单,且更侧重分析
    2. 针对 Atari 等离散问题的 R_BVE,这种情况下 policy improvement 可以基于 Q Q Q 估计精确地进行,本文则主要针对连续控制问题;另外 R_BVE 将 Iterative 方法的问题归结于对 Q Q Q 价值的高估,本文则进一步探讨了导致高估的原因
  • 其实理解 One-step 的做法之后,熟悉 RL 的读者应该对它的性能有一个大概的估计了,One-step 只对 behavior policy 做了一步提升,其实不会比 behavior policy 好太多,特别是 behavior policy 比较差的时候,One-step 学到的策略 π 1 \pi_1 π1 应该也是挺差的。但人们发现很多时候 One-step 的性能常比 Multi-step 和 Iterative actor-critic 等 Off-policy 迭代方法强很多,这就说明一定有一些因素破坏了多步方法的性能,本文对此现象进行进一步分析,贡献包括
    1. 提出了一个简单的 one-step baseline,其在很多 Offline RL 问题上优于更复杂的 Iterative 方法
    2. 检查了 Iterative 方法中 off-policy 价值评估的失效模式
    3. 描述了何时 one-step 算法可能优于 Iterative 方法

2. 本文方法

  • 先回顾一下前面的算法模板
    在这里插入图片描述
    • 对于 policy improvement,作者考察了以下常用算子
      1. Behavior cloning:直接返回 β ^ \hat{\beta} β^ 作为新的策略 π \pi π,其它算子应至少超过这个最简单的 baseline。这个算子和上文的 “modifications of imitation learning” 相关
      2. Constrained policy updates:BCQ 和 SPIBB 等算法使用这类算子将 policy 限制在 behavior policy 附近,作者这里用了一个简化版本的 BCQ 算子,称之 easy BCQ,它去掉了扰动网络,改成从 β ^ \hat{\beta} β^ 中采样 M M M 个样本,然后根据 Q ^ β \hat{Q}^{\beta} Q^β 贪心地更新策略,如下
        π ^ k M ( a ∣ s ) = 1 [ a = arg ⁡ max ⁡ a j { Q ^ π k − 1 ( s , a j ) : a j ∼ π k − 1 ( ⋅ ∣ s ) , 1 ≤ j ≤ M } ] \hat{\pi}_{k}^{M}(a \mid s)=\mathbb{1}\left[a=\arg \max _{a_{j}}\left\{\widehat{Q}^{\pi_{k-1}}\left(s, a_{j}\right): a_{j} \sim \pi_{k-1}(\cdot \mid s), 1 \leq j \leq M\right\}\right] π^kM(as)=1[a=argajmax{Q πk1(s,aj):ajπk1(s),1jM}] 这个算子和上文的 “policy constraints/regularization” 相关

        Note:这里我感觉公式有点问题,策略的优化过程没有被约束到 behavior policy 附加,候选动作 a j a_j aj 应当采样自 β ^ \hat{\beta} β^,即改成
        π ^ k M ( a ∣ s ) = 1 [ a = arg ⁡ max ⁡ a j { Q ^ π k − 1 ( s , a j ) : a j ∼ β ^ , 1 ≤ j ≤ M } ] \hat{\pi}_{k}^{M}(a \mid s)=\mathbb{1}\left[a=\arg \max _{a_{j}}\left\{\widehat{Q}^{\pi_{k-1}}\left(s, a_{j}\right): a_{j} \sim \hat{\beta}, 1 \leq j \leq M\right\}\right] π^kM(as)=1[a=argajmax{Q πk1(s,aj):ajβ^,1jM}]

      3. Regularized policy updates:BRAC 等算法使用这类算子向 Offline RL 的最大化 return 目标中引入正则项,来控制策略优化过程中和 behavior policy 的偏离程度。给定任意散度 D D D,如下进行 policy improvement
        π ^ k α = arg ⁡ max ⁡ π ∑ i E a ∼ π ∣ s [ Q ^ π k − 1 ( s i , a ) ] − α D ( β ^ ( ⋅ ∣ s i ) , π ( ⋅ ∣ s i ) ) \hat{\pi}_{k}^{\alpha}=\arg \max _{\pi} \sum_{i} \underset{a \sim \pi \mid s}{\mathbb{E}}\left[\hat{Q}^{\pi_{k-1}}\left(s_{i}, a\right)\right]-\alpha D\left(\hat{\beta}\left(\cdot \mid s_{i}\right), \pi\left(\cdot \mid s_{i}\right)\right) π^kα=argπmaxiaπsE[Q^πk1(si,a)]αD(β^(si),π(si)) 过去的研究发现 D D D 的不同选择影响不大,实践中通常使用 reverse KL divergence K L ( π ( ⋅ ∣ s i ) ∣ ∣ β ^ ( ⋅ ∣ s i ) ) KL(\pi(·|s_i)||\hat{\beta}(·|s_i)) KL(π(si)∣∣β^(si))。直观上看,这种正则化迫使 π \pi π 保持在 β \beta β 的支持下,而 2 中的正则化鼓励 π \pi π 覆盖 β \beta β。此算子和上文的 “Q regularization” 相关
      4. Variants of imitation learning:这类算子通过对观察到的行为进行过滤或加权来修改模仿学习算法,以进行 policy improvement。作者这里使用优势估计的指数来加权动作
        π ^ k τ = arg ⁡ max ⁡ π ∑ i exp ⁡ ( τ ( Q ^ π k − 1 ( s i , a i ) − V ^ ( s i ) ) ) log ⁡ π ( a i ∣ s i ) \hat{\pi}_{k}^{\tau}=\arg \max _{\pi} \sum_{i} \exp \left(\tau\left(\widehat{Q}^{\pi_{k-1}}\left(s_{i}, a_{i}\right)-\widehat{V}\left(s_{i}\right)\right)\right) \log \pi\left(a_{i} \mid s_{i}\right) π^kτ=argπmaxiexp(τ(Q πk1(si,ai)V (si)))logπ(aisi) 这个算子和上文的 “modifications of imitation learning” 相关
    • 对于 policy evaluation,本文作者仅考虑了 DDPG 那种简单的配合 target 网络进行的 td-style learning,没有使用更复杂的 Double Q Learning 或 Q ensembles 等做法,作者认为这些值得未来进一步研究

3. 实验

  • 作者将 one-step、multi-step、iterative 等算法模板和 Easy BCQ、reverse KL regularization、exponentially weighted imitation 等 improvement operator 进行各种组合,并在 D4RL 数据集上测试性能
    在这里插入图片描述
    这里第一列是 D4RL 里几种 Iterative 算法经过超参数调优后的最佳结果,后面是使用不同 policy improvement 算子的 one-step 方法。可见大多数情况下 one-step 都超过了 Iterative 方法,唯一的例外是在 random 数据集上
  • 为了进一步探索 one-step 的性能特点,作者对使用 Rev KL Reg 算子的 one-step 方法进行了更多迭代,性能如下
    在这里插入图片描述
    发现更多的迭代计算往往破坏性能,这启发我们:在尝试一些更复杂的东西之前,将 one-step 算法作为 baseline 运行是值得的,这种简单的方法经常取得更好的性能

4. 讨论

4.1 迭代算法的问题

4.1.1 问题的表现

  • 作者通过调整 Rev KL Reg 算子中逆 KL 散度正则化项的系数来调整约束强度,考察不同强度下的训练曲线
    在这里插入图片描述
    可见
    1. Iterative & multi-step 方法的训练过程在约束强度不足时会迅速崩溃,加强正则化可以帮助防止这种崩溃,因为对行为策略的足够强的正则化确保了评估几乎是 on-policy 的
    2. one-step 方法关于约束强度要鲁棒得多,且其最优约束强度也要低一些
    3. 当约束足够强时,各种方法的性能差不多,这是因为学得策略被严格约束到 behavior policy 附近,policy evaluation 过程几乎变成和 one-step 一样的 on-policy 了
  • 作者将迭代算法崩溃的原因归咎于 Distribution shiftIterative error exploitation,下面分别说明

4.1.2 Distribution shift

  • 这个老生常谈了,任何依赖于 off-policy evaluation 的算法都会遇到 Distribution shift 问题,这会减少有效样本量,并增加估计的方差。过去有一些文章对此进行了理论分析,BCQ 论文中将这个问题称作 Extrapolation Error,为了减轻此问题,大多数 RL-based 方法都要对 policy 施加约束,这也产生了这类方法的一个核心矛盾:为了得到并利用更准确的价值估计,学得策略不能离 behavior policy 太远,而我们又想学得策略性能尽量超越 behavior policy,因此二者又不能离得太近,需要估计并利用那些 OOD 的 ( s , a ) (s,a) (s,a) 对应的价值,这里就产生了一个 trade-off
  • 作者检查了 off-policy 评估过程中 Distribution shift 发生的过程。先用 behavior policy 采样一个数据集从头训练 Q Q Q 价值,然后从 reply buffer 中采样 1000 个数据检查 Q Q Q 估计质量
    在这里插入图片描述
    可见约束越弱,Distribution shift 问题越严重, Q Q Q 估计质量越低;而约束足够强时,off-policy 评估的 Q Q Q 估计质量又和 on-policy 差不多了

4.1.3 Iterative error exploitation

  • Iterative & multi-step 方法在 policy evaluation 时会使用上一轮迭代的价值估计进行 warm-start,并使用和 policy improvement 步骤相同的数据,这导致了步骤间的依赖性,并引发 Iterative error exploitation 问题。简而言之,产生该问题的原因是 policy improvement 步骤中 π i π_i πi 倾向于选择 overestimate 的动作(这些动作通常是 OOD 的),然后这种高估会由于重用数据而在 policy evaluation 步骤中通过动态规划传播,R_BVE 论文中对此问题有清晰的解释
    在这里插入图片描述
    另一张相当直观的示意图如下
    在这里插入图片描述
  • 作者也做了一点理论分析,考虑在每个 ( s , a ) (s,a) (s,a) 处,基于行为策略 β \beta β 收集的固定数据集,对当前策略 π \pi π 进行policy evaluation 时会有 ε β π ( s , a ) \varepsilon_\beta^\pi(s,a) εβπ(s,a) 的误差,即价值估计为
    Q ^ π ( s , a ) = r ( s , a ) + γ E s ′ ∣ s , a a ′ ∼ π ∣ s ′ [ Q ^ π ( s ′ , a ′ ) ] + ε β π ( s , a ) . \widehat{Q}^{\pi}(s, a)=r(s, a)+\gamma \underset{\substack{s^{\prime}\left|s, a \\ a^{\prime} \sim \pi\right| s^{\prime}}}{\mathbb{E}}\left[\widehat{Q}^{\pi}\left(s^{\prime}, a^{\prime}\right)\right]+\varepsilon_{\beta}^{\pi}(s, a) . Q π(s,a)=r(s,a)+γss,aaπsE[Q π(s,a)]+εβπ(s,a). 这里误差 ε β π ( s , a ) \varepsilon_\beta^\pi(s,a) εβπ(s,a) 吸收了包括 函数近似误差缺乏样本导致的误差 等所有误差,它通常随着数据集覆盖程度减小而增大。只要 ε β π ( s , a ) \varepsilon_\beta^\pi(s,a) εβπ(s,a) 在在不同的 π \pi π 之间高度相关就会导致 Iterative error exploitation,为了简单起见,这里假设 ε β π ( s , a ) \varepsilon_\beta^\pi(s,a) εβπ(s,a) 对于使用固定数据集评估的所有策略 π \pi π 都是相同的,并把符号简化为 ε β \varepsilon_\beta εβ这种情况下估计误差不依赖于被评估的策略 π \pi π,因而可以将其看作辅助 reward,即有
    Q ^ π ( s , a ) = Q π ( s , a ) + Q ~ β π ( s , a ) , Q ~ β π ( s , a ) : = E π ∣ s 0 , a 0 = s , a [ ∑ t = 0 ∞ γ t ε β ( s t , a t ) ] \widehat{Q}^{\pi}(s, a)=Q^{\pi}(s, a)+\widetilde{Q}_{\beta}^{\pi}(s, a), \quad \widetilde{Q}_{\beta}^{\pi}(s, a):=\underset{\pi \mid s_{0}, a_{0}=s, a}{\mathbb{E}}\left[\sum_{t=0}^{\infty} \gamma^{t} \varepsilon_{\beta}\left(s_{t}, a_{t}\right)\right] Q π(s,a)=Qπ(s,a)+Q βπ(s,a),Q βπ(s,a):=πs0,a0=s,aE[t=0γtεβ(st,at)] 这样一来,当使用上一步的 Q ^ \widehat{Q} Q 构造 TD target 进行 warm-start 时,误差 ε β \varepsilon_{\beta} εβ 就会自然地传播。下面我们可以概括一下 Iterative error exploitation 的过程:
    1. 给定固定数据集,就会决定一个随着距离数据集支撑范围而增大的 “辅助奖励” ε β \varepsilon_{\beta} εβ
    2. 在不加约束的情况下,迭代算法会不断增大这个 “辅助奖励”,导致当前学得策略 π i \pi_i πi 越来越远离行为策略 β \beta β,使得 Q ~ β π i ( s , a ) \widetilde{Q}_{\beta}^{\pi_i}(s, a) Q βπi(s,a) 相对 Q π i ( s , a ) Q^{\pi_i}(s, a) Qπi(s,a) 变得更大
    3. 尽管随着迭代进行, Q π i ( s , a ) Q^{\pi_i}(s, a) Qπi(s,a) 可能给出比 Q β ( s , a ) Q^\beta(s, a) Qβ(s,a) 更好的信号,但它很容易被 Q ~ β π i ( s , a ) \widetilde{Q}_{\beta}^{\pi_i}(s, a) Q βπi(s,a) 淹没
    4. 相比而言, Q ~ β β ( s , a ) \widetilde{Q}_{\beta}^{\beta}(s, a) Q ββ(s,a) 的幅度更小,因此 one-step 算法对误差更有鲁棒性
  • 作者同时给出了例子说明
    在这里插入图片描述
    这个网格环境有一个确定性奖励为 1 的好状态和一系列奖励分布为 N ( − 0.5 , 1 ) N(-0.5,1) N(0.5,1) 的坏状态,因为所有的误差都来自缺乏样本导致的奖励估计错误,所以 ε β ε_β εβ 确实在所有的 π \pi π 上都是恒定的。直观地说,当有这么多的噪声状态时,很可能其中的一些会被高估,由于重用数据,这些高估持续存在并在状态空间中传播,产生 Iterative error exploitation,实验也表明这时 one-step 确实常优于 Iterative 方法。在 benchmark 中的许多高维控制问题中,这种 “具有许多估计不佳的状态” 的特性很可能也存在,特别是当 Offline 数据分布狭窄时更是如此
  • 另外作者发现,如果打破迭代过程中由于 “重用数据” 和 “用上轮 Q Q Q 估计进行 warm-start” 而引入的依赖性,Iterative error exploitation 问题可以缓解
    在这里插入图片描述
    这里右图中每次 policy evaluation 都是重新独立采样数据,从头开始进行的,可见价值高估得到有效缓解,不过这不影响 4.2 节中的 Distribution shift 问题

4.2 迭代方法的优势

  • 根据上一节的讨论,我们知道 multi-step 和 iterative 方法会传播估计误差 Q ~ β π i ( s , a ) \widetilde{Q}_{\beta}^{\pi_i}(s, a) Q βπi(s,a),但不应忽视它们在传播噪声的同时也传播了有用的信号 Q π i ( s , a ) Q^{\pi_i}(s, a) Qπi(s,a),如果数据集有足够的覆盖范围来降低噪声的大小,信号的传播相对来说就不容易被误差 Q ~ β π i ( s , a ) \widetilde{Q}_{\beta}^{\pi_i}(s, a) Q βπi(s,a) 淹没,这可以帮助迭代算法的训练。如下示例
    在这里插入图片描述
    这里仅仅将 behavior policy 改成了更倾向于走向带噪声状态,使得 Offline 数据能充分覆盖这些状态,就能有效降低价值估计的误差,使多步 Iterative 方法能进行可靠的,更积极的规划;另一方面由于降低了 behavior policy 进入右上角良好状态的概率,损害了 one-step 方法的奖励信号传播,这两个变化使得 Iterative 方法的性能显著优于 one-step
  • 另一个更加直观的实验如下
    在这里插入图片描述
    如图可见这里将来自 random behavior policy 的数据与来自 medium behavior policy 的数据按不同比例进行混合来构造 Offline 数据集,可见只需引入一点 medium 数据,就能破坏 Iterative 方法使之不如 one-step 的性能了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文理解【Offline RL】——【One-step】Offline RL Without Off-Policy Evaluation 的相关文章

  • 3. Longest Substring Without Repeating Characters

    Longest Substring Without Repeating Characters Given a string find the length of the longest substring without repeating
  • RuntimeError: Cannot initialize CUDA without ATen_cuda library.

    RuntimeError Cannot initialize CUDA without ATen cuda library PyTorch splits its backend into two shared libraries a CPU
  • Can I become a good programmer without math and algorithms knowledge?

    Knowledge of algorithms has very little to do with programming skill As some random dude on the internet once said 34 Wh
  • HTTP/HTTPS, without index.php, using htaccess, plus XHR

    http ellislab com forums viewthread 86113 Removing index php and forcing HTTP HTTPS I have read many posts about people
  • 无人机仿真—PX4编译,gazebo仿真及简单off board控制模式下无人机起飞

    无人机仿真 PX4编译 xff0c gazebo仿真及简单off board控制模式下无人机起飞 前言 在上篇记录中 xff0c 已经对整体的PX4仿真环境有了一定的了解 xff0c 现如今就要开始对无人机进行起飞等仿真环境工作 xff0c
  • C++11条件变量:notify_one()与notify_all()的区别

    notify one 与notify all 常用来唤醒阻塞的线程 notify one xff1a 因为只唤醒等待队列中的第一个线程 xff1b 不存在锁争用 xff0c 所以能够立即获得锁 其余的线程不会被唤醒 xff0c 需要等待再次
  • 与 Service Worker 一起存储 REST 请求以同步它们

    我正在考虑使用服务人员将我的应用程序离线 我已经通过缓存资源获得了令人满意的结果 但我还必须检查 onfetch 是否连接到互联网 如果没有 存储请求 并将其推送到同步 我知道 未来的 onsync 将对此有所帮助 但我需要 即使是临时 解
  • 3DM/OFF格式在线转换

    3D模型在线转换 https 3dconvert nsdt cloud 是一个可以进行3D模型格式转换的在线工具 支持多种3D模型格式进行在线预览和互相转换 3DM与OFF格式简介 3DM是一种常用的三维模型文件格式 具有多种几何体和材质
  • 获取本地文件的内容而不上传[重复]

    这个问题在这里已经有答案了 我正在编写一个离线网络应用程序 允许用户选择本地文件 修改它 然后也在本地保存副本 是否可以在没有任何服务器的情况下 我可以上传文件并返回其base64 但它不是离线的 应用程序只需要在 Google Chrom
  • 如何在两个视图之间生成离线差异输出?

    我正在分析 Clearcase 中两个视图之间的不同文件 我需要生成输出 以便我可以在没有互联网连接的情况下完成此任务 我想要的是运行一个命令 递归地遍历每个视图 并为从视图 A 到视图 B 的每次更改生成一个合并 差异输出文件 这可以像合
  • 我们如何检查请求的响应是否来自 Service Worker

    在 Google Chrome 控制台中 HTTP 状态代码旁边Request我们有信息 from ServiceWorker Can Request以某种方式意识到Response来自 ServiceWorker 比较date from
  • Firebase + React Native:离线身份验证

    我在 React Native iOS 应用程序中使用 Firebase 主要用于存储用户数据和用户身份验证 效果很好当设备确实有可用的网络连接时 当谈到Firebase的离线功能时 它看起来像这样 问题 在没有网络连接的情况下启动应用程序
  • 浏览器关闭时的通知

    我有一个 chrome 扩展 当用户访问特定页面时 它会向用户发送通知 我希望在浏览器关闭或在后台运行时发送通知 类似于智能手机 任何想法或提示都会很棒 在 Chrome 扩展中 您可以使用 2 个工具 chrome gcm API htt
  • 如何制作本地离线数据库

    我正在使用 HTML CSS 和 JavaScript 制作一个待办事项列表应用程序 我认为存储数据的最佳方式是本地数据库 我知道如何使用localStorage and sessionStorage 而且我也知道如何使用在线MySQL h
  • OSMDroid 从资产文件夹加载自定义离线图块

    我想知道是否可以做这样的事情 我知道需要修改一些现有代码才能实现这一目标 但我想知道是否有人知道在哪里查看以及如何执行此操作 我在地图上的特定区域放置了一些自定义图块 作为 OSM 图块提供程序的替代品 但需要将它们存储在 assets 文
  • Vuetify 离线文档

    我已经开始使用 Vuetify 添加 ui 组件并使用预定义的布局 问题是我必须时不时地查看在线文档 并且要求我永远连接到互联网 有没有办法获取 Vuetify 的离线文档 就像使用 doxygen javadocs 构建的 html 或
  • 下载/缓存 Google 地图以供离线使用[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在 Android 应用程序中实现这一点 并且我认为最新的 Google Maps API 版本可以实现这一点 但我还没有看到关
  • Blazor - Web 程序集加载时间

    我开发了 Blazor Server 服务器应用程序 客户显然不喜欢 无法重新连接到服务器 重新加载页面以恢复功能 的消息 这就是我尝试探索迁移到 Web Assembly 的原因 我正在努力 如何加快 Web 程序集加载时间 因为主页无法
  • 强制 applicationCache 重新加载缓存文件

    我使用 HTML5 applicationCache 来存储页面的许多 Javascript CSS 图像等文件 如果我更新其中一个文件 浏览器永远不会重新加载它 我已经尝试过以下方法 在页面加载时调用 applicationCache u
  • 如何将上传的STEP文件转换为其他格式?

    如何将上传的 STEP 文件转换为其他 CAD 格式 最好使用 PHP 我将一个小型 STEP 文件上传到 3dContentCentral 并立即看到新上传的 STEP 文件的 20 种不同文件类型格式 示例网址 希望你们中的一些人能给我

随机推荐