《Reinforcement Learning: An Introduction》第5章笔记

news2024/9/22 11:39:16

Chapter 5 Monte Carlo Methods

Monte Carlo 方法不假设拥有完备的环境知识,它仅仅需要经验–从与环境的实际或模拟交互中得到的一系列的状态、动作、和奖励的样本序列。

Monte Carlo方法是基于平均采样回报的来解决强化学习问题的方法。

5.1 Monte Carlo Prediction

Monte Carlo 方法的基本思想:一个状态的价值是它的期望回报,也就是从那个状态开始能得到的期望的未来累积折扣奖励。因此一种简单的实现方法是将从访问到状态开始观察到的回报平均化。随着越来越多的回报被观察到,这个平均值肯定会收敛到期望值。

假设我们要估计在策略 π \pi π下的状态s的价值 v π ( s ) v_{\pi}(s) vπ(s),并且给定一个遵循策略 π \pi π并且经过状态s的episodes集合。 将一个episode中状态s的每一次出现称为对s的一次访问(visit)。可想而知,在同一个episode里,状态s可能会被访问多次,我们将一个episode里状态s第一次被访问称为s的首次访问(first visit to s)。

  • 首次访问MC方法(The first-visit MC method)将首次访问后的平均回报作为 v π ( s ) v_{\pi}(s) vπ(s)的估计。

  • 每次访问MC方法(every-visit MC method)将其估计为所有访问 s 之后的平均回报。

  • 首次访问MC方法和每次访问MC方法非常相似但有些许不同的理论性质。 当s的访问次数趋于无穷时,两者都可以收敛到 v π ( s ) v_{\pi}(s) vπ(s)

下图是首次访问MC方法的流程图,每次访问MC方法除了去检查 S t S_t St是否已经出现过之外,是一样的。

在这里插入图片描述

【Example 5.1: Blackjack】 是一个用MC方法的例子。

Monte Carlo算法能用回溯图表示吗?当然可以,对于Monte Carlo 的估计值 v π v_{\pi} vπ, 状态节点是根节点,而它下面的是一个特定的单个序列的整个转移轨迹(以终止状态结束),如下图所示。

在这里插入图片描述

Monte Carlo 方法不是自举(bootstrap)的,它对于每个状态的估计是独立的。因为这个特点,当只想知道一个状态或一小部分状态的价值时,Monte Carlo方法就特别有吸引力;此时只需要从这些感兴趣的状态出发生成很多样本序列,并只对这些状态进行平均回报的计算。(这是Monte Carlo 方法的第三个优点,可以从实际经验学习,也可以从模拟经验学习是另外两个优点)

5.2 Monte Carlo Estimation of Action values

Monte Carlo 方法的最优目标之一是估计 q ∗ q_* q,为了实现它,考虑对动作价值的策略评估问题。

对动作价值的策略评估问题是估计 q π ( s , a ) q_{\pi}(s, a) qπ(s,a), 即遵循策略 π \pi π,从状态s出发,采取动作a的期望回报。 Marlo Carlo方法估计动作价值的方法与上一节估计状态价值时是一样的。如果在状态s被访问,并且采取了动作a时,称状态-价值对在一个序列中被访问:

  • 每次访问MC(every-visit MC)方法将所有动作-价值对得到的回报的平均值作为动作价值函数的近似。
  • 首次访问MC(first-visit MC)方法将每个序列中第一次在这个状态下采取这个动作得到的回报的平均值作为动作价值函数的近似。

此时我们面临的唯一复杂情况是许多状态-价值对可能从来没有被访问过。当 π \pi π是一个确定性策略,那么遵循 π \pi π意味着在每个状态只会观测到一个状态的回报。当无法获取回报进行平均时,Monte Carlo将无法根据经验来改善其他动作的估计。所以与第2章讨论过k臂赌博机问题一样,这是如何保持探索(maintaining exploration)的普遍问题。解决这个问题的一个方法是:
​ exploring starts:使序列从一个指定的状态-价值对开始,同时保证所有状态-价值对都有一个非零概率被选择成起点。这个方法保证了,在采样序列的数目趋向无穷时,所有状态-价值对都会被访问无数次。

5.3 Monte Carlo Control

在第4章 提到过广义策略迭代GPI(generalized policy iteration,GPI),GPI同时维护一个近似的策略和近似的价值函数。价值函数不断迭代使其更精确地近似对应当前策略的价值函数,而策略也根据当前的价值函数不断调优,就如下图显示的那样,这两个过程最终会使策略和价值函数趋向最优解。
在这里插入图片描述

经典策略迭代的Monte Carlo 版本,从任意策略 π 0 \pi_0 π0开始,交替完成策略迭代和策略提升,以最优策略和动作价值函数作为终止:
π 0 ⟶ E q π 0 ⟶ I π 1 ⟶ E q π 1 ⟶ I π 2 ⟶ E ⋯ ⟶ I π ∗ ⟶ E q ∗ \pi_0 \stackrel{E}{\longrightarrow} q_{\pi0} \stackrel{I}{\longrightarrow} \pi_1 \stackrel{E}{\longrightarrow} q_{\pi1} \stackrel{I}{\longrightarrow} \pi_2 \stackrel{E}{\longrightarrow} \cdots \stackrel{I}{\longrightarrow} \pi_* \stackrel{E}{\longrightarrow} q_* π0Eqπ0Iπ1Eqπ1Iπ2EIπEq
上式中的 ⟶ E \stackrel{E}{\longrightarrow} E是策略评估, ⟶ I \stackrel{I}{\longrightarrow} I是策略提升。策略评估可以按照5.2节所述执行。如果基于两个假设:1. 序列是由探索性出发(exploring start)生成的;2. 进行策略评估时可以在无限多的序列中进行探索。Monte Carlo方法可以对任意 π k \pi_k πk 精确的计算对应的 q π k q_{\pi_k} qπk
策略提升方法是在当前价值函数上贪心地选择动作。对于任意的动作价值函数q,对应的贪心策略为:对于任意的 s ∈ S s \in \mathcal{S} sS,一定选择具有最大动作价值的动作:
π ( s ) = ˙ a r g m a x a   q ( s , a ) ( 5.1 ) \pi(s) \dot{=} \mathop{argmax}\limits_a \ q(s, a) \qquad (5.1) π(s)=˙aargmax q(s,a)(5.1)

策略提升能够通过将 q π k q_{\pi_k} qπk的贪心策略作为 π k + 1 \pi_{k+1} πk+1 来实现,这样的 π k \pi_k πk π k + 1 \pi_{k+1} πk+1满足4.2节的策略提升定理,对于所有状态 s ∈ S s \in \mathcal{S} sS:
q π k ( s , π k + 1 ( s ) )   =   q π k ( s , a r g m a x a   q π k ( s , a ) )   =   max ⁡ a q π k ( s , a )   ≥   q π k ( s , π k ( s ) )   ≥   v π k ( s ) \begin{aligned} q_{\pi_k}(s, \pi_{k+1}(s)) &\ = \ q_{\pi_k}(s, \mathop{argmax}\limits_a\ q_{\pi_k}(s, a)) \\ &\ = \ \max\limits_a q_{\pi_k}(s, a) \\ &\ \ge \ q_{\pi_k}(s, \pi_k(s)) \\ &\ \ge \ v_{\pi_k}(s) \end{aligned} qπk(s,πk+1(s)) = qπk(s,aargmax qπk(s,a)) = amaxqπk(s,a)  qπk(s,πk(s))  vπk(s)

在之前章节学到过,这个定理保证了 π k + 1 \pi_{k+1} πk+1 一定比 π k \pi_k πk更优,除非 π k \pi_{k} πk已经是最优策略,这样两者都是最优策略。所以在只能得到若干个回合采样序列而不知道环境动态知识时, Marte Carlo方法就可以用来寻找最优策略。

前面我们提到作了两个假设来保证Marte Carlo方法的收敛,但是为了得到一个实际可用的算法,我们必须去除这两个假设,我们先考虑如何去掉第一个假设。

去掉第一个假设,即策略评估时可以在无限多的序列中进行探索,有两种方法(DP和Monte Carlo方法都适用):

  • 在每次策略评估中对 q π k q_{\pi_k} qπk做出尽量好的逼近。这要求做一些假设并定义一些测度,来获取逼近误差的幅度和出现概率的上下界,然后采取足够多的步数来保证这些边界足够小。这个方法可以保证收敛到令人满意的近似水平,但是在实际使用中,即使问题足够小,也可能需要太多的序列用于计算。
  • 不再要求在策略改进之前就完成策略评估。在每一个评估步骤中,我们让动作价值函数逼近 q π k q_{\pi_k} qπk,但我们并不期望它在经过很多步之前非常接近真实的值。 在第4章中的价值迭代就是一种极端实现方式。

在每一个序列结束后,使用观测到的回报进行策略评估,并在该序列访问到的每一个状态上进行策略的改进,基于这个思路的算法,被称为Monte Carlo ES(Monte Carto with Exploring Starts),伪代码如下图:

在这里插入图片描述

5.4 Monte Carlo Control without Exploring Starts

如何避免很难被满足的探索性出发假设呢?唯一的一般性方法是保证agent能够持续地选择所有动作,有两种方法可以保证这一点,被称为在线策略(on-policy)方法和离线策略(off-policy)方法:

  • 在线策略方法尝试评估和提升用来决策的策略。也就是用于生成采样数据序列的策略和用于实际决策的待评估和改进的策略是相同的。前文的Monte Carlo ES 方法是一个在线策略的例子。
  • 离线策略方法评估和提升的策略不同于用来生成数据的策略。

本节讨论在线Monte Carlo 方法如何用来去除不实际的探索性出发假设。

在线策略控制方法的策略通常是soft的,也就是说对于对于所有 s ∈ S s \in \mathcal{S} sS a ∈ A ( s ) a \in \mathcal{A}(s) aA(s),有 π ( a ∣ s ) > 0 \pi(a | s) >0 π(as)>0,但它们会逐渐逼近到一个确定性策略。在线策略算法使用 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略,在大多数时候选择具有最大预估动作价值的动作,以一个小的概率 ϵ \epsilon ϵ 来从所有动作中等概率的随机选择一个动作。也就意味着所有非贪心动作有一个最小概率 ϵ ∣ A ( s ) ∣ \frac{\epsilon}{|\mathcal{A}(s)|} A(s)ϵ被选中,而贪心动作有概率 1 − ϵ + ϵ ∣ A ( s ) ∣ 1- \epsilon + \frac{\epsilon}{|\mathcal{A}(s)|} 1ϵ+A(s)ϵ ϵ − g r e e d y \epsilon-greedy ϵgreedy策略是 ϵ − s o f t \epsilon-soft ϵsoft策略的一个例子,即对某个 ϵ > 0 \epsilon > 0 ϵ>0,对于所有状态和动作满足 π ( a ∣ s ) ≥ ϵ ∣ A ( s ) ∣ \pi(a|s) \ge \frac{\epsilon}{|\mathcal{A}(s)|} π(as)A(s)ϵ

在线策略的首次访问MC控制算法的伪代码如下图,对于任意的 ϵ − s o f t \epsilon-soft ϵsoft策略 π \pi π,根据 q π q_{\pi} qπ生成的任意一个 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略保证优于或等于 π \pi π

在这里插入图片描述

根据策略提升定理,对于任意 ϵ − s o f t \epsilon-soft ϵsoft策略 π \pi π,任意根据 q π q_{\pi} qπ生成的 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略都是对其的提升。假设 π ′ \pi^{\prime} π是一个 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略, 策略提升定理的条件成立,因为对于任意的状态 s ∈ S s \in \mathcal{S} sS
q π ( s , π ′ ( s ) )   = ∑ a π ′ ( a ∣ s ) q π ( s , a )   =   ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ϵ ) max ⁡ a q π ( s , a ) ( 5.2 )   ≥ ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ϵ ) ∑ a π ( a ∣ s ) − ϵ ∣ A ( s ) ∣ ( 1 − ϵ ) q π ( s , a ) ( t h e   s u m   i s   a   w e i g h t e d   a v e r a g e   w i t h   n o n n e g a t i v e   w e i g h t s   s u m m i n g   t o   1 ,   a n d   a s   s u c h   i t   m u s t   b e   l e s s   t h a n   o r   e q u a l   t o   t h e   l a r g e s t   n u m b e r   a v e r a g e d ) = ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) − ϵ ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ∑ a π ( a ∣ s ) q π ( s , a )   =   v π ( s ) \begin{aligned} q_{\pi}(s, \pi^{\prime}(s)) &\ = \sum_a \pi^{\prime}(a|s) q_{\pi}(s, a) \\ &\ = \ \frac{\epsilon}{|\mathcal{A}(s)|} \sum_a q_{\pi}(s, a) + (1- \epsilon)\max\limits_a q_{\pi}(s, a) \qquad (5.2) \\ &\ \ge \frac{\epsilon}{|\mathcal{A}(s)|} \sum_a q_{\pi}(s, a) + (1- \epsilon) \sum_a \frac{\pi(a|s) - \frac{\epsilon}{|\mathcal{A}(s)|}}{(1- \epsilon)} q_{\pi}(s, a) \\ &(the\ sum\ is\ a\ weighted\ average\ with\ nonnegative\ weights\ summing\ to\ 1,\ and\ as\ such\ it\ must\ be\ less\ than\ or\ equal\ to\ the\ largest\ number\ averaged) \\ & = \frac{\epsilon}{|\mathcal{A}(s)|} \sum_a q_{\pi}(s, a) - \frac{\epsilon}{|\mathcal{A}(s)|} \sum_a q_{\pi}(s, a) + \sum_a \pi(a|s) q_{\pi}(s, a)\\ &\ = \ v_{\pi}(s) \end{aligned} qπ(s,π(s)) =aπ(as)qπ(s,a) = A(s)ϵaqπ(s,a)+(1ϵ)amaxqπ(s,a)(5.2) A(s)ϵaqπ(s,a)+(1ϵ)a(1ϵ)π(as)A(s)ϵqπ(s,a)(the sum is a weighted average with nonnegative weights summing to 1, and as such it must be less than or equal to the largest number averaged)=A(s)ϵaqπ(s,a)A(s)ϵaqπ(s,a)+aπ(as)qπ(s,a) = vπ(s)

​ 所以,通过策略提升定理,有 π ′ ≥ π \pi^{\prime} \ge \pi ππ,也就是对于所有状态 s ∈ S s \in \mathcal{S} sS,有 v π ′ ( s ) ≥ v π ( s ) v_{\pi^{\prime}}(s) \ge v_{\pi}(s) vπ(s)vπ(s),而该式等号成立的条件是:当且仅当 π ′ \pi^{\prime} π π \pi π都是最优的 ϵ − s o f t \epsilon-soft ϵsoft策略,也就是它们比所有其他的 ϵ − s o f t \epsilon-soft ϵsoft策略都更优或相同(证明略,见原书)。

5.5 Off-policy Prediction via Importance Sampling

所有的学习控制算法有一个困境:它们希望学习到的动作可以使随后的智能体行为是最优的,但是为了探索所有的动作,以保证找到最优动作,它们需要采取非最优的行动。那怎么解决这个困境呢? 离线策略(off-policy)的解决办法是使用两个策略,一个策略用来学习并成为最优策略,被称为目标策略(target policy);另一个策略做更多探索,用来产生智能体的行动样本,被称为行为策略(behavior policy)。这种情况下认为学习所用的数据“off"了目标策略,因此整个过程被称为离线策略学习。

在线策略和离线策略的对比:

  • 在线策略通常更简单,且首先被考虑。
  • 离线策略需要额外的概念和记号。并且因为其数据来自一个不同的策略,所以离线策略方法方差更大,收敛更慢。
  • 但是离线策略更强大更通用,可以将在线策略看做是目标策略和行为策略是相同的离线策略方法的特例。

假设将目标策略记为 π \pi π, 行为策略记为 b b b,两个策略是已知且固定。

覆盖假设(assumption of coverage): 为了使用从 b b b得到的序列来估计 π \pi π,我们要求在 π \pi π下采取的每个动作都至少偶尔能在 b b b下发生,也就是说当 π ( a ∣ s ) > 0 \pi(a|s) >0 π(as)>0时,要求 b ( a ∣ s ) > 0 b(a|s)>0 b(as)>0。 在这个假设下,在与 π \pi π不同的状态下, b b b必须是随机的。而目标策略 π \pi π可能是确定的。

几乎所有的离线策略都使用重要性采样(importance sampling),一种给定来自其他分布的样本的条件下,来估计某种分布的期望值的通用技术。

重要度采样比(importance-sampling ratio):轨迹在目标策略和行为策略中出现的相对概率。离线策略学习将回报用重要度采样比来加权的方式来应用重要性采样。给定起始状态 S t S_t St,后续的状态-价值轨迹 A t , S t + 1 , A t + 1 , ⋯   , S T A_t, S_{t+1},A_{t+1},\cdots,S_T At,St+1,At+1,,ST在策略 π \pi π下发生的概率是:
P r { A t , S t + 1 , A t + 1 , ⋯   , S T ∣ S t , A t : T − 1 ∼ π } = π ( A t ∣ S t ) p ( S t + 1 ∣ S t , A t ) π ( A t + 1 ∣ S t + 1 ) ⋯ p ( S T ∣ S T − 1 , A T − 1 ) = ∏ k = t T − 1 π ( A k ∣ S t ) p ( S k + 1 ∣ S k , A k ) \begin{aligned} &Pr\{A_t, S_{t+1}, A_{t+1}, \cdots, S_T|S_t, A_{t:T-1} \sim \pi \} \\ & = \pi(A_t|S_t)p(S_{t+1}|S_t,A_t) \pi(A_{t+1}|S_{t+1}) \cdots p(S_T|S_{T-1}, A_{T-1}) \\ & = \prod^{T-1}_{k=t} \pi(A_k|S_t) p(S_{k+1}|S_k, A_k) \end{aligned} Pr{At,St+1,At+1,,STSt,At:T1π}=π(AtSt)p(St+1St,At)π(At+1St+1)p(STST1,AT1)=k=tT1π(AkSt)p(Sk+1Sk,Ak)
式中的 p p p是第3章中的式(3.4)定义过的状态转移概率,因此在目标策略和行为策略下的轨迹的相对概率(重要度采样比)为:
ρ t : T − 1   = ˙   ∏ k = t T − 1 π ( A k ∣ S t ) p ( S k + 1 ∣ S k , A k ) ∏ k = t T − 1 b ( A k ∣ S t ) p ( S k + 1 ∣ S k , A k )   =   ∏ k = t T − 1 π ( A k ∣ S t ) b ( A k ∣ S t ) ( 5.3 ) \rho_{t:T-1}\ \dot{=}\ \frac {\prod^{T-1}_{k=t} \pi(A_k|S_t) p(S_{k+1}|S_k, A_k)} {\prod^{T-1}_{k=t} b(A_k|S_t) p(S_{k+1}|S_k, A_k)} \ = \ \prod_{k=t}^{T-1} \frac {\pi(A_k|S_t)}{b(A_k|S_t)} \qquad (5.3) ρt:T1 =˙ k=tT1b(AkSt)p(Sk+1Sk,Ak)k=tT1π(AkSt)p(Sk+1Sk,Ak) = k=tT1b(AkSt)π(AkSt)(5.3)
尽管整体轨迹的概率值依赖于MDP的状态转移概率,并且MDP的状态转移概率通常是不可知的,但是它们在分子和分母中是完全相同的,所以可被约分。重要度采样比最终仅依赖于两个策略及其数据,而不依赖于MDP。

我们希望估计目标策略下的期望回报(价值),但是我们只有从行为策略得到的回报 G t G_t Gt,这些从行为策略得到的回报有错误的期望 E [ G t ∣ S t = s ]   =   v b ( s ) \mathbb{E}[G_t|S_t=s]\ = \ v_b(s) E[GtSt=s] = vb(s),所以不能用它们的平均来得到 v π v_{\pi} vπ。解决方法是使用重要性采样,使用重要度采样比 ρ t : T − 1 \rho_{t:T-1} ρt:T1可以调整回报使其有正确的期望值:
E [ ρ t : T − 1 G t ∣ S t = s ] = v π ( s ) ( 5.4 ) \mathbb{E}[\rho_{t:T-1}G_t|S_t=s] = v_{\pi}(s) \qquad (5.4) E[ρt:T1GtSt=s]=vπ(s)(5.4)

介绍完基础概念后,终于到了本节算法出场的时候了,也就是平均化一批遵循策略 b b b的观测序列的回报来估计 v π ( s ) v_{\pi}(s) vπ(s)的Monte Carlo 算法。对于每次访问MC方法,定义所有访问过的状态s的时刻集合为 T ( s ) \mathcal{T}(s) T(s); 对于首次访问MC方法, T ( s ) \mathcal{T}(s) T(s)只包含在序列内首次访问状态s的时刻。用 T ( t ) T(t) T(t)表示时刻t后的首次终止, G t G_t Gt表示在t之后到达 T ( t ) T(t) T(t)的回报。则 { G t } t ∈ T ( s ) \{G_t\}_{t \in \mathcal{T}(s)} {Gt}tT(s)是状态s对应的回报值,而 { ρ t : T ( t ) − 1 } t ∈ T ( s ) \{\rho_{t:T(t)-1}\}_{t \in \mathcal{T}(s)} {ρt:T(t)1}tT(s) 是对应的重要度采样比,为了估计 v π ( s ) v_{\pi}(s) vπ(s),有两种方法:

  • 普通重要性采样(ordinary importance sampling): 根据重要度采样比来调整回报值并对结果进行平均:
    V ( s )   = ˙   ∑ t ∈ T ( s ) ρ t : T ( t ) − 1 G t ∣ T ( s ) ∣ ( 5.5 ) V(s)\ \dot{=} \ \frac{\sum_{t \in \mathcal{T}(s)} \rho_{t:T(t)-1} G_t }{|\mathcal{T}(s)|} \qquad (5.5) V(s) =˙ T(s)tT(s)ρt:T(t)1Gt(5.5)
  • 加权重要性采样(weighted importance sampling):根据重要度采样比来调整回报值并对结果进行加权平均,式中如果分母为零,则值也为零:

V ( s )   = ˙   ∑ t ∈ T ( s ) ρ t : T ( t ) − 1 G t ∑ t ∈ T ( s ) ρ t : T ( t ) − 1 ( 5.6 ) V(s)\ \dot{=} \ \frac{\sum_{t \in \mathcal{T}(s)} \rho_{t:T(t)-1} G_t }{\sum_{t \in \mathcal{T}(s)} \rho_{t:T(t)-1}} \qquad (5.6) V(s) =˙ tT(s)ρt:T(t)1tT(s)ρt:T(t)1Gt(5.6)

那这两种重要度采样方法有什么区别呢?

  • 对于首次访问MC方法,普通重要性采样是无偏的,加权重要性采样是有偏的
  • 对于首次访问MC方法,普通重要性采样的方差一般是无界的,而如果假设回报有界,即使重要性采样比是无界的,加权重要性采样的方差也能收敛到零。
  • 在实际应用中,加权重要性采样因为低方差被偏好使用,但是普通重要性采样因为更容易扩展到本书后面的函数逼近的近似方法也不会被放弃使用。
  • 在每次访问MC方法中,两种重要性采样方法都是有偏的,但是随着样本数增加,偏差会逐渐趋近于0。

实际使用中,每次访问MC方法更常被使用,因为它不需要跟踪状态是否被访问过,并且更容易扩展到近似。使用加权重要性采样的用于off-policy的策略评估的完整版每次访问MC算法在下一节5.6节会学到。

5.6 Incremental Implementation

在第2章的2.4节学过的增量式实现可以直接应用到Monte Carlo方法,在那里是计算平均奖励,在Monte Carlo方法中我们计算平均回报。对于在线策略Monte Carlo方法可以直接使用已经学过的增量式实现方法,而对于离线策略Monte Carlo方法,需要分别讨论一下普通重要性采样和加权重要性采样。

普通重要性采样方法,可以直接使用第2章的增量式方法,只是将奖励替换成缩放后的回报就可以了。

加权重要性采样方法,因为需要对回报加权平均,就需要一个略微不同的增量式算法。

假设有一个回报序列 G 1 , G 2 , ⋯   , G n − 1 G_1, G_2, \cdots, G_{n-1} G1,G2,,Gn1,都从相同的状态开始,并且每一个回报都对应一个随机权重 W i W_i Wi(例如, W i = ρ t i : T ( t i ) − 1 ) W_i=\rho_{t_i:T(t_i)-1}) Wi=ρti:T(ti)1)。希望得到如下估计,并且在获得了一个额外的回报值 G n G_n Gn时能保持更新:
V n = ˙ ∑ k = 1 n − 1 W k C k ∑ k = 1 n − 1 W k , n ≥ 2   ( 5.7 ) V_n \dot{=} \frac {\sum^{n-1}_{k=1} W_kC_k} {\sum^{n-1}_{k=1}W_k}, \quad n\ge 2 \ \qquad (5.7) Vn=˙k=1n1Wkk=1n1WkCk,n2 (5.7)

为了能不断跟踪 V n V_n Vn的变化,必须为每一个状态维护前n个回报对应的权值的累加值和 C n C_n Cn V n V_n Vn的更新规则为:
V n + 1   = ˙   V n + W n C n [ G n − V n ] ,   n ≥ 1   ( 5.8 ) a n d      C n + 1   = ˙   C n + W n + 1 ,   C 0   = ˙   0 V_{n+1}\ \dot{=}\ V_n + \frac{W_n}{C_n}[G_n - V_n], \ n\ge1 \ \qquad (5.8) \\ and\ \ \ \ C_{n+1}\ \dot{=}\ C_n + W_{n+1},\ C_0\ \dot{=}\ 0 Vn+1 =˙ Vn+CnWn[GnVn], n1 (5.8)and    Cn+1 =˙ Cn+Wn+1, C0 =˙ 0

下图是一个完整的Monte Carlo 策略评估的增量式算法,虽然命名为离线策略场景,并使用加权重要性采样,但是可以适用于在线策略场景(通过使目标和行为策略一样,并且W总是为1)。

在这里插入图片描述

5.7 Off-policy Monte Carlo Control

下图是离线Monte Carlo控制算法的伪代码,使用行为策略生成数据,学习和提升目标网络。为了探索所有的可能性,要求行为策略一定是的soft的。
在这里插入图片描述

这个方法一个潜在的问题是,当回合中的所有其余动作都是贪心的,此方法只能从回合的尾部学习。如果非贪心的行为很普遍,那么学习将会很慢,尤其是对长回合早期出现的状态,这可能会大大减慢学习速度。解决这个问题的最重要方法可能是结合下一章会学到的时间差分学习。如果 γ \gamma γ小于1,下一节提出的想法可能也有很大帮助。

5.8 *Discounting-aware Importance Sampling

TODO,后面再看

5.9 *Per-decision Importance Sampling

TODO,后面再看

5.10 Summary

关键知识点

  • Monte Carlo 方法的三个优点
  • Monte Carlo 方法的第四个优点:不符合马尔科夫性时损害较小,因为它们不是自举的(boostrap)
  • 探索式出发
  • 在线策略(on-policy)算法
  • 离线策略(off-policy)算法
  • 重要性采样、普通重要性采样、加权重要性采样

参考资料

  1. 《Reinforcement Learning: An Introduction》Sutton, Richard S. and Andrew G. Barto. 第2版, 书籍网站
  2. https://github.com/ShangtongZhang/reinforcement-learning-an-introduction
  3. https://github.com/YunlianMoon/reinforcement-learning-an-introduction-2nd-edition/tree/master

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

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

相关文章

NFS服务器

文章目录 NFS服务器NFS的由来与功能什么是NFS(Network File System)什么是RPC(Remote Procedure Call)NFS启动的RPC daemons NFS Server 端的配置所需要的软件NFS的软件结构/etc/exports配置文件的语法与参数 启动NFSRPC服务的注册状况怎么查看(rpcinfo) NFS的连接查看showmoun…

认识服务器

1、查看操作系统的信息 CentOS 输入:cat /etc/os-release 字段含义解释NAME操作系统名称CentOS LinuxVERSION操作系统版本7 (Core)ID操作系统标识centosID_LIKE相关操作系统标识rhel fedoraVERSION_ID操作系统版本号7PRETTY_NAME可读性较好的操作系统名称CentOS L…

产品如何有效把控产品上线质量

很多人乍看这个标题,可能有些惊讶。产品上线质量不是由测试来主要负责的么,怎么产品也需要来把控这个事情? 诚然,从具体分工而言,产品的线上质量主要由测试来负责,产品按时按量完成由项目项目经理把控。但…

详谈数据中心网络中的四种虚拟化技术:VXLAN、NVGRE、STT和SPBM

概要 在现代的数据中心网络中,虚拟化技术被广泛应用以提供更高的可扩展性、灵活性和效率。数据中心网络虚拟化允许多个虚拟网络在共享的物理基础设施上运行,使得网络资源的管理更为简单和高效。本文将详细介绍数据中心网络中的四种不同类型的虚拟化技术&…

全网超全,接口测试用例设计——常见问题和风险,测试不背锅...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口测试用例设计…

【开源工具】使用Whisper提取视频、语音的字幕

这里写目录标题 一、语音转字幕操作步骤1、下载安装包Assets\WhisperDesktop.zip[^2]2、加载模型2.1 下载模型2.1.1 进入Hugging Face[^3]的仓库2.1.2 选择需要下载的模型2.1.3 配置模型路径 3、语音转字幕4、实时语言转录功能 二、相关简介[^1]特点开发人员指南构建说明其他注…

【MySql】表的内连接和外连接

文章目录 内连接外连接左外连接右外连接 OJ题目 本篇博客主要介绍的内容是表的连接,在MySql中表的连接分为内连接和外连接,下面,我们直接进入主题把 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前…

Ubuntu Win10 github.com访问很慢的解决办法

win10 请看这里: 解决国内 github.com 打不开的最最最准确方法_github打不开_杨大脸I的博客-CSDN博客 Ubuntu 请看这里: 看了上面的就应该知道, 需要两步骤:1、修改host文件;2、刷新DNS 1、修改host文件 Ubuntu修改hosts文件_ub…

PySpark集群环境安装(HA-Standalone模式)

PySpark是Python中的一个库, 由Spark官方提供. 专供用户使用Python语言操作Spark 1. 首先安装python环境 基于anaconda的虚拟环境方案,来安装python。因为anaconda可以虚拟出多个Python环境, 且各个环境相对独立,能够解决python版本的兼容性问题 1.1 …

Rust的特征对象

文章目录 Rust的特征对象前言在屏幕上绘制各种UI组件 Rust的特征对象 前言 特征对象不像泛型和impl trait这种零成本抽象,特征对象是在runtime时确定具体类型,有一定的性能开销。当我们需要函数参数是一类实现了特定trait的类型时,这时候就…

4个Camtasia2023隐藏新功能,99%的人都不知道!

在今年5月,全能录屏软件 Camtasia 迎来了2023新版,带来非常多新功能,让制作录屏视频的效果再上一层楼!所有购买过旧版 Camtasia 的老用户,都可以享受优惠升级。 Camtaisa 获取: http://souurl.cn/YWkrO7 更…

【Java高级语法】(六)内部类Inner Class:这可能是史上最全的关于内部类的学习资料~

Java高级语法详解之包装类 :one: 概念:two: 优缺点:three: 使用2.1 成员内部类2.2 局部内部类2.3 匿名内部类2.4 静态内部类2.5 小结:外部类访问四种内部类的特点2.6 小结:其他类访问四种内部类的特点 :four: 内部类与外部类的关系:five: 应用场景:six: …

云贝餐饮连锁独立版 v2.6.1+公众号+小程序端+抖音端端+全插件免授权版安装配置教程

云贝餐饮系统应该持续做好多年了,以前的版本都需要授权一直没使用,优选源码网整体测试下感觉从体验上还有逻辑设计上都非常不错,首页、会员中心支持DIY装修,配送支持多种平台对接,基本上餐饮行业需要的功能都能满足了。…

收件地址解析成 省+市+区+详细地址的形式

项目中的源代码在我的GitHub:https://github.com/weitw/address-analyzer 先看效果: 如上图,address数输入的地址,Address对象是解析后的地址。可以支持逆推上一级,且支持地址白话解析。 一、项目介绍 1、解析规则 …

13年测试老鸟,带你详探服务端的接口测试,测试内卷之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 服务器的接口测试…

Tinywebserver项目运行(docker部署mysql)

. 运行项目运行时遇到的一些其他问题重启mysql容器时发现端口被占用 前言 Tinywebserver是github上一个十分优秀的开源项目,帮助初学者学习如何搭建一个服务器. 本文讲述如何在使用docker部署mysql容器的情况下跟该项目进行连接并将项目运行起来,而不是…

萌萌哒的八戒1

拿到了一个图片,根据图片下方的字符,结合远古时期这个提示,想到了古典密码里的猪圈密码 挨个输入得到when the pig want to eat,套上flag

PyTorch 深度学习 || 2. 全连接网络 | Ch2.3 PyTorch 全连接自编码网络的无监督学习

PyTorch 全连接自编码网络的无监督学习 文章目录 PyTorch 全连接自编码网络的无监督学习1. 数据去噪1.1 计算库和数据准备工作1.2 构建自编码网络1.3 调用主函数1.4 可视化 2. 数据的重建与降维2.1 计算模块和数据的准备2.2 自编码网络数据准备2.3 自编码网络的构建2.4 自编码网…

深入理解程序的结构

文章目录 前言一、程序的组成二、未初始化和初始化变量保存地址三、栈什么时候被创建四、内存映射段总结 前言 本篇文章我们来深入的理解一下理解程序的结构。 一、程序的组成 通常情况下,一个可执行程序由以下几个不同的段组成: 1.代码段 (Text Seg…

怎么针对微服务架构做单元测试?

Martin Fowler 是国际著名的软件专家,敏捷开发方法的创始人之一,现为 ThoughtWorks 公司的首席科学家。在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都扮演着举足 什么是微服务? 微服务的由来 微服务的前身…