论文理解【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 的相关文章

  • python中步长什么意思_python步长什么意思【Python教程】,Python,step,步长

    在Python的序列中 列表和元组都是序列 xff0c 都能够能够运用切片操纵 sequence start end step 前面两个好明白 xff0c 分别为最先索引的位置和完毕索引的位置 Python中供应两种索引 xff1a 从左向
  • AFNetworking 2.0 并且仅在离线时使用缓存

    当用户使用我的应用程序但失去连接或使用飞行模式时 我遇到了问题 我的应用程序服务器端没有设置任何缓存策略 目前我无法更改它 我从 AFNetworking 1 x 迁移到 2 0 现在我正在使用AFHTTPRequestOperationM
  • 使用 jQuery 检查互联网连接是否存在? [复制]

    这个问题在这里已经有答案了 如何使用 jQuery 检查是否有互联网连接 这样我就可以有一些条件说 在生产过程中使用 google 缓存版本的 JQuery 在开发过程中使用该版本或本地版本 具体取决于互联网连接 针对您的具体情况的最佳选择
  • 在 Linux 中离线安装 r 中的 stringi 软件包时出现 icudt 错误

    我已经在我的系统 RedHat Linux 7 中下载了 stringi 1 4 3 tar gz 软件包 但是当我尝试离线安装时 出现如下错误 执行停止 icudt 下载失败 停止 错误 包 stringi 配置失败 这是一个新环境Red
  • 与 Service Worker 一起存储 REST 请求以同步它们

    我正在考虑使用服务人员将我的应用程序离线 我已经通过缓存资源获得了令人满意的结果 但我还必须检查 onfetch 是否连接到互联网 如果没有 存储请求 并将其推送到同步 我知道 未来的 onsync 将对此有所帮助 但我需要 即使是临时 解
  • 您可以将 JavaScript 和 CSS 文件存储在 localStorage 中以提高在线 Web 应用程序的性能吗?

    我正在开发一个 Web 应用程序 它的行为非常类似于 iOS 和 Android 的本机应用程序 然而 Javascript 文件 jQuery 我自己的 和 css 文件对于移动使用来说相当大 如果用户没有启用 3G 这会使应用程序加载缓
  • 获取本地文件的内容而不上传[重复]

    这个问题在这里已经有答案了 我正在编写一个离线网络应用程序 允许用户选择本地文件 修改它 然后也在本地保存副本 是否可以在没有任何服务器的情况下 我可以上传文件并返回其base64 但它不是离线的 应用程序只需要在 Google Chrom
  • iOS 13 设备上语音识别(支持OnDevice Recognition 标志)

    我正在尝试让 iOS 13 OnDevice 语音识别正常工作 但是 验证 supportOnDeviceRecognition 标志 这是启用 OnDevice 识别的初步步骤 始终返回 false 我使用的是装有 iOS 13 3 的第
  • Visual Studio 2017 无法脱机安装,并显示“无法下载安装文件”

    因此 我使用以下命令在我的笔记本电脑上创建了 VS 2017 Community 的离线安装 vs community exe layout D Downloads VS Community 2017 lang en US add Micr
  • 离线使用 Firebase 时观察者挂起

    我正在尝试向我们的 iOS 应用程序 简单地说 一个管理用户和项目的应用程序 添加离线功能 该应用程序依赖于 Firebase 这是使用 Swift 3 0 我已按照指南进行操作并执行了以下操作 在 FIRApp configure 之后将
  • 将离线地图嵌入 IOS 应用程序

    如何将离线地图嵌入到 iOS 应用程序中 苹果地图或谷歌地图提供这种能力吗 我遇到过 MapBox 但不太了解它是如何工作的以及它是否提供了这种功能 您还可以使用替代地图套件 例如 Nutiteq Maps SDK http develop
  • Angular:服务工作者配置

    我正在尝试将 PWA 功能添加到在 Angular 8 上运行的网站 我遵循了很多官方和非官方的教程 但我不明白我做错了什么 ngsw config json 是这样的 schema node modules angular service
  • 离线同步和事件源

    我们的应用程序中基于 CRUD 的部分需要 离线双向 双向 同步 能够修改数据直到准备好然后 发布 审核日志 我正在寻找事件溯源 或 命令模式 来完成这些项目 我觉得用这个来解决 2 3 很舒服 但对于第一个项目同步还不清楚 如果每个命令都
  • 浏览器关闭时的通知

    我有一个 chrome 扩展 当用户访问特定页面时 它会向用户发送通知 我希望在浏览器关闭或在后台运行时发送通知 类似于智能手机 任何想法或提示都会很棒 在 Chrome 扩展中 您可以使用 2 个工具 chrome gcm API htt
  • 实现 AVAssetDownloadURLSession 下载 HLS 流时出错

    我正在尝试为流应用程序实现离线模式 目标是能够在用户的设备上下载 HLS 流 以便即使用户离线时也可以观看流 我最近偶然发现本教程 https developer apple com library content documentatio
  • 适用于 Android 和 iOS 的离线地图 SDK [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想为我的应用程序使用离线地图功能 有人会推荐任何有用的地图 SDK 吗 我找到了这些 Skobbler http developer skob
  • 如何将上传的STEP文件转换为其他格式?

    如何将上传的 STEP 文件转换为其他 CAD 格式 最好使用 PHP 我将一个小型 STEP 文件上传到 3dContentCentral 并立即看到新上传的 STEP 文件的 20 种不同文件类型格式 示例网址 希望你们中的一些人能给我
  • 使用 sqlite 离线存储数据的 Web 表单应用程序

    我有一个 asp net Web 表单应用程序 它在远程服务器上使用 sql server 2005 所有控件均使用 linq to sql 绑定 我正在尝试提供完整的离线功能 所以我想知道是否可以像 sql server db 一样创建一
  • Osmdroid:如何从我自己的位图(图块)创建和加载地图?

    我开始使用 Osmdroid 我想使用这项技术来显示有关 F1 赛道的地图 我有一张大图片 我可以将它切割成更小的图块 我可以修改osmdroid库来上传这些图片吗 我想将这些位图 图块 保存在我的资产文件夹中 我非常不知道如何做到这一点
  • 即使成功固定后,ParseQuery 在从本地数据存储查询时也给出 0 个对象

    我正在使用 parse com 的 Android SDK 并且遇到了一个特殊的问题 从片段的 onCreate 中 从服务器获取一个对象 Pin it 从本地数据存储中获取对象 以下是 onCreate 中的代码片段 ParseObjec

随机推荐