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

news2024/7/2 4:03:32
  • 标题: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 的性能了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】知识蒸馏原理以及实践从0到1

文章目录前言1、知识蒸馏1.1 是什么&#xff1f;1.2 训练流程1.3 问题与挑战2、落地使用2.1 后续问题&#xff1a;总结前言 有没有什么方法可以在不扩展硬件的情况下利用这些强大但庞大的模型来训练最先进的模型&#xff1f;目前&#xff0c;有三种方法可以压缩神经网络&#…

一文搞懂JDK8 HashMap源码

目录前言常量和变量构造器put方法resize扩容get方法前言 HashMap的源码非常经典&#xff0c;里面用到了哈希表、链表、红黑树等数据结构&#xff0c;而且又是用纯Java实现的&#xff0c;所以成为了Java程序员必读的源码之一。 事先了解下哈希表&#xff08;散列表&#xff09…

portraiture2023手动磨皮的p图插件

可以手动磨皮的p图软件&#xff0c;大部分美颜软件只能一键磨皮或简单调整磨皮强度&#xff0c;本文会介绍一款可自动、可手动磨皮的p图软件。人像p图软件哪个好用&#xff1f;本文还会盘点一下好用的人像p图软件。 portraiture2023功能特点 2x性能和精细的输出质量将您的皮肤…

AES加密算法

AES算法原理 对称加密算法&#xff08;用于取代DES算法&#xff0c;发展历史DES-3DES-AES&#xff09; 明文长度固定为128位&#xff08;DES&#xff1a;64位&#xff09;&#xff0c;密钥长度可128位、192位、256位&#xff08;DES&#xff1a;64位&#xff09; 加密原理 …

你是如何对待植物神经紊乱的?

大家好&#xff0c;你们是如何对待植物神经紊乱这种疾病的&#xff1f; 你们知道吗&#xff1f;植物神经紊乱是一种情绪情志障碍伴躯体化症状的特殊且复杂的疾病&#xff0c;这种疾病可能会导致浑身的不适。 并且&#xff0c;很多植物神经紊乱的患者发现&#xff0c;这种疾病是…

【GD32F427开发板试用】硬件SPI通信驱动CH376芯片,用单片机实现U盘数据下载

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;周文杰 SPI通信作为单片机多种基础数据传输模式中的一种&#xff0c;驱动外部芯片CH376实现数据导出到U盘功能在实际工程项目中是很方便的。本…

字符设备驱动之mmap、select

一、mmap mmap&#xff0c;简而言之就是将内核空间的一段内存区域映射到用户空间。映射成功后&#xff0c;用户对这段内存区域的修改可以直接反映到内核空间&#xff0c;相反&#xff0c;内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间与用户空间两者之…

Prometheus + Grafana + Alertmanager 本地安装调试

一、简介 Prometheus 是一款强大的监控软件&#xff0c;一般会与Grafana和Alertmanager一起配合使用&#xff0c;而且多用于k8s集群。简介的话网上很多&#xff0c;官网 更是详细&#xff0c;这里就不班门弄斧了。k8s集群环境下的安装网上很多&#xff0c;但是k8s集群搭建时间…

【实际开发10】- 远程调用 ( Feign )

目录 1. Feign 调用注意事项 - ★★★ 1. 【原则】: 禁止遍历 - 多次跨服务调用接口 ( 提需求 : idList ) 1. 单一数据查询 , 可直接用 Feign单一查询接口 2. List数据查询 , 需进行 Feign 数据转换 , 禁止遍历 Feign 3. stream() : 从List<对象> , 取出 id 和 name…

关于PS VR2和独占,开发者和分析师都怎么看

近期&#xff0c;索尼正式宣布了PS VR2首发游戏列表&#xff0c;共计37款游戏&#xff0c;其中包括备受关注的IP大作《地平线&#xff1a;山之召唤》等。从这37款首发阵容中可以看到一个现象&#xff0c;大部分游戏是非新作&#xff0c;而是已经在PS VR1或其它VR平台上线&#…

C++基础——C++数组

C基础——C数组C 数组声明数组初始化数组访问数组元素C 中数组详解C 数组 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的…

【数据结构基础】线性表 - 链表

n个节点离散分配&#xff0c;彼此通过指针相连&#xff0c;每个节点只有一个前驱节点&#xff0c;每个节点只有一个后续节点&#xff0c;首节点没有前驱节点&#xff0c;尾节点没有后续节点。确定一个链表我们只需要头指针&#xff0c;通过头指针就可以把整个链表都能推出来。知…

设计模式-UML图

目录 2&#xff0c;UML图 2.1 类图概述 2.2 类图的作用 2.3 类图表示法 2.3.1 类的表示方式 2.3.2 类与类之间关系的表示方式 2&#xff0c;UML图 统一建模语言&#xff08;Unified Modeling Language&#xff0c;UML&#xff09;是用来设计软件的可视化建模语言。它的特…

Matlab pdetool

云溪岩绵迎彩霞,博主精神压力大呀,没人说说知心话啊,SCU物理要命啦........基本物理方程静电磁场交流电磁场热传导Options->ApplicationGeneric Scalar泛型标量Generic System通用系统Structural Mechanics,Plane Stress结构力学 - 平面应力Structural Mechanics,Plane Stra…

Flashback Oracle文档阅读

和Flashback相关的文档大多位于备份和恢复用户指南 和Oracle 数据库开发指南中。 基本概念 请参看备份和恢复用户指南的1.4 About Oracle Flashback Technology。 Oracle Flashback Technology的定义&#xff1a; A set of Oracle Database features that provide an additi…

Verilog HDL门级建模

⭐本专栏针对FPGA进行入门学习&#xff0c;从数电中常见的逻辑代数讲起&#xff0c;结合Verilog HDL语言学习与仿真&#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计&#xff0c;对状态机FSM进行剖析与建模。 &#x1f525;文章和代码已归档至【Github仓库&#xf…

数字电路设计:Logicly 最新版Crack

Logicly有效地教授逻辑门 数字电路 — 使用 Logicly 现代直观的用户界面支持拖放、复制/粘贴、缩放等功能&#xff0c;可快速轻松地设计电路。 通过暂停模拟并在您逐步推进时观察信号传播来控制调试。 不用担心学生计算机上的多个平台。在 Windows 和 macOS 上安装 创建引人入…

子查询-MySQL

文章目录理解举例基本使用语法分类分类方式1单行子查询多行子查询分类方式2&#xff1a;单行子查询单行比较操作符代码示例HAVING 中的子查询CASE中的子查询子查询中的空值问题非法使用子查询多行子查询多行比较操作符代码示例相关子查询相关子查询执行流程代码示例EXISTS 与 N…

USART学习笔记

目录 1. USART框图 2. 传输帧图 3. 配置步骤 4.配置编码&#xff08;使用库函数&#xff09; 5. 函数调用缩略图 1. USART框图 2. 传输帧图 起始位的特征&#xff1a;时钟引脚CK处于低电平&#xff0c;TX引脚处于低电平&#xff0c;持续1个SCLK长度&#xff08;位长度&…

2020-ICLR-Memory-Based Graph Networks

2020-ICLR-Memory-Based Graph Networks Paper&#xff1a;https://arxiv.org/abs/2002.09518 Code: https://github.com/amirkhas/GraphMemoryNet 基于内存的图网络 图神经网络&#xff08;GNN&#xff09;是一类可对任意拓扑结构的数据进行操作的深度模型。 作者为GNN引入了…