zoukankan      html  css  js  c++  java
  • Model-Free Control

    Control(making decisions) without a model of how the world works.
    Control的意思是寻求最佳策略,这可以被视为对agent的一种控制。

    Evaluation to Control

    前面的博文介绍了如何衡量一个特定的策略(即对它进行评估)

    • 没有给予访问决策过程模型参数的权限
    • 取而代之的是,能够从数据/经验中估计

    这篇博文:如何学习一个好的策略

    Recall: Reinforcement Learning Involves

    • 优化(Optimization) (这里涉及)
    • 效果延迟(Delayed consequences) (planning阶段)
    • 探索(Exploration) (这里涉及)
    • 泛化(Generalization目前不涉及)

    Learning to Control Involves

    • 优化:目标是找出一个具有高回报的策略(跟给定决策过程模型计算最优策略相似)
    • 效果延迟:可能需要很多个时间步才能评估之前的决定是好是坏
    • 探索:需要尝试不同的动作去学习什么样的动作能带来高回报

    Model-free Control Examples

    许多应用可以被建模为MDP:Backgammon,围棋,机器人定位,直升机飞行,机器人足球运动员,自动驾驶,客户广告选择,入侵物种管理,病患治疗。

    对于上述及其他的一些问题:

    • MDP模型未知但可以被采样
    • MDP模型已知但是直接计算上不可行,除非采样

    On and Off-Policy Learning

    • On-policy learning

      • 直接经验
      • 学习去通过遵循一个策略得到的经验估计和评估该策略
    • Off-Policy learning

      • 学习去通过遵循一个其他的策略得到的经验估计和评估一个策略。
    Off-Policy的一个例子:

     
    已有:
    s 1 , a 1 , s 1 , a 1 s_1,a_1,s_1,a_1 s1,a1,s1,a1
    s 1 , a 2 , s 1 , a 2 s_1,a_2,s_1,a_2 s1,a2,s1,a2

    可以使用这两个策略来评估下面这个策略:
    s 1 , a 1 , s 1 , a 2 s_1,a_1,s_1,a_2 s1,a1,s1,a2

    很容易理解,因为下面这个policy由第一个policy的左半部分加第二个右半部分组成,你可以利用这两个policy的数据对目标policy做评估。

    Generalized Policy Iteration

    回顾策略迭代:

    • Initialize policy π pi π
    • Repeat:
      • Policy evaluation: Compute V π V^pi Vπ
      • Policy improvement: update π pi π
        π ′ ( s ) = a r g m a x a R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) = a r g m a x a Q π ( s , a ) pi'(s)=mathop{argmax}limits_{a} R(s,a) + gammasum_{s'in S}P(s'|s,a)V^pi(s') = mathop{argmax}limits_{a} Q^pi(s,a) π(s)=aargmaxR(s,a)+γsSP(ss,a)Vπ(s)=aargmaxQπ(s,a)

    一般而言这个算法会初始化一个随机策略,该算法能保证单调的策略提升,最多需要迭代 ∣ A ∣ ∣ s ∣ |A|^{|s|} As得到最优策略。

    现在,我们想在没有权限访问真实的动态和回报模型的条件下实现上面的两个步骤。

    而且在前面的博文里也已经介绍了model-free policy evaluation。

    Model Free Policy Iteration

    • Initializ policy π pi π
    • Repeat:
      • Policy evaluation: compute Q π ^{pi} π

    Q Q Q always represent Q ( s , a ) Q(s,a) Q(s,a), as the value of taking action a in state s.

    MC for On Policy Q Evaluation

    • Initialize N ( s , a ) = 0 , G ( s , a ) = 0 , Q π ( s , a ) = 0 , ∀ s ∈ S , ∀ a ∈ A N(s,a)=0, G(s,a)=0, Q^pi(s,a) = 0, forall s in S, forall a in A N(s,a)=0,G(s,a)=0,Qπ(s,a)=0,sS,aA
    • Loop
      • 使用策略 π pi π采样周期 i = s i , 1 , a i , 1 , r i , 1 , s i , 2 , a i , 2 , r i , 2 , . . . , s i , T i i=s_{i,1},a_{i,1},r_{i,1},s_{i,2},a_{i,2},r_{i,2},...,s_{i,T_i} i=si,1,ai,1,ri,1,si,2,ai,2,ri,2,...,si,Ti
      • G i , t = r i , t + γ r i , t + 1 + γ 2 r i , t + 2 + . . . + γ T i − 1 r i , T i G_{i,t}=r_{i,t}+gamma r_{i,t+1}+gamma^2r_{i,t+2}+...+gamma^{T_i-1}r_{i,T_i} Gi,t=ri,t+γri,t+1+γ2ri,t+2+...+γTi1ri,Ti
      • For each state,action pair ( s , a ) (s, a) (s,a) visited in episode i
        • For first or every time t that ( s , a ) (s, a) (s,a) is visited in episode i
          • N ( s , a ) = N ( s , a ) + 1 , G ( s , a ) = G ( s , a ) + 1 N(s,a)=N(s,a)+1, G(s,a) = G(s,a)+1 N(s,a)=N(s,a)+1,G(s,a)=G(s,a)+1
          • Update estimate Q π ( s , a ) = G ( s , a ) / N ( s , a ) Q^pi(s, a) = G(s,a)/N(s,a) Qπ(s,a)=G(s,a)/N(s,a)

    MC for policy evaluation相比非常类似,但由评估一个状态的价值变成了评估状态-动作二元组的Q值:

    1. N计数二元组 ( s , a ) (s,a) (s,a)而不是 s s s
    2. G表示二元组 ( s , a ) (s,a) (s,a)的奖励而不是 s s s
    3. V函数变成了Q函数

    Model-free Generalized Policy Improvement

    • Given an estimate Q π i ( s , a )   ∀ ( s , a ) Q^{pi_i}(s,a) forall(s,a) Qπi(s,a) (s,a)
    • Update new policy
      • π i + 1 ( s ) = a r g m a x a Q π i ( s , a ) pi_{i+1}(s) = mathop{argmax}limits_{a}Q^{pi_i}(s,a) πi+1(s)=aargmaxQπi(s,a)

    这里提到的所有的策略都假定所有的world都是马尔科夫的。策略都是仅仅从当前状态映射到动作,它们不是历史的函数。

    Model-free Policy Iteration

    • Initialize policy π pi π
    • Repeat:
      • Policy Evaluation: compute Q π Q^pi Qπ
      • Policy improvement: update π pi π given Q π Q^pi Qπ

    可能需要修改策略评估:

    • 如果 π pi π是确定的,不能计算任何 a ≠ π ( s ) a ot=pi(s) a=π(s) Q ( s , a ) Q(s,a) Q(s,a)

    如何交替执行策略评估和改进?

    • 策略改进当前在使用一个估计的Q值

    Importance Of Exploration

    Policy Evaluation with Exploration

    希望计算不依赖模型的一个 Q π Q^pi Qπ的估计。
    通常看起来是巧妙的:

    • 需要尝试所有的 ( s , a ) (s,a) (s,a)二元组但还要接着遵循 π pi π
    • 希望确保得到结果的估计 Q π Q^pi Qπ是足够好的,以使得策略改进是一个单调的操作符

    对于某些种类的策略来说,能够确保所有的 ( s , a ) (s,a) (s,a)对都被尝试过,使得渐进地 Q π Q^pi Qπ收敛到真实值。

    ϵ epsilon ϵ-greedy Policies

    非常简单的平衡探索(Explotation)和利用(Exploitation)的思想是通过确保整个过程随机来实现的。

    实际上这个策略在论文里一般一句话就可以概括: ϵ epsilon ϵ-greedy policy that selects a random action with probability ϵ epsilon ϵ or otherwise follows the greedy policy a = a r g m a x a Q π ( s , a ) a = mathop{argmax}limits_{a}Q^pi(s,a) a=aargmaxQπ(s,a)

    • 简单的去平衡探索和利用的思想
    • ∣ A ∣ |A| A是所有可能的动作的数量
    • 那么针对state-action的价值 Q π ( s , a ) Q^pi(s,a) Qπ(s,a) ϵ epsilon ϵ-greedy策略是:
      π ( a ∣ s ) = { a r g m a x a Q π ( s , a ) w i t h   p r o b a b i l i t y   1 − ϵ a w i t h   p r o b a b i l i t y   ϵ ∣ A ∣ pi(a|s) = egin{cases} mathop{argmax}limits_{a}Q^pi(s,a) quad with probability 1-epsilon \ a qquad qquad qquad qquad with probability frac{epsilon}{|A|} end{cases} π(as)=aargmaxQπ(s,a)with probability 1ϵawith probability Aϵ

      这是一个非常简单的策略,但好的地方在它够用了。
    例题

    在这里插入图片描述
    Q ( − , a 1 ) = [ 1010000 ] Q(-, a_1)=[1 0 1 0 0 0 0] Q(,a1)=[1010000]
    Q ( − , a 2 ) = [ 0010000 ] Q(-, a_2)=[0 0 1 0 0 0 0] Q(,a2)=[0010000]

    首先是first-visit算法,然后在 s 1 s_1 s1采取动作 a 1 a_1 a1能得到回报1,所以所有采样得到的 s , a s,a s,a对都是1,所有没有采样到的都是0。

    Every-visit算法下的该例结果也一样,但不是说first-visit和every-visit就没有什么区别,只是在这个例子里计算结果恰好相同而已。

    证明 ϵ epsilon ϵ-greedy策略能单调提升

    在这里插入图片描述

    Greedy in the Limit of Infinite Exploration(GLIE)

    证明了 ϵ epsilon ϵ-greedy确实能确保单增之后,我们能有什么样的保证呢?

    GLIE的定义

    • 所有的state-action对都是无限次的被访问即
      l i m i → ∞ N i ( s , a ) → ∞ mathop{lim}limits_{i ightarrow infty}N_i(s,a) ightarrow infty ilimNi(s,a)

    • 那么行为策略会收敛到贪心策略
      l i m i → ∞ π ( a ∣ s ) → a r g m a x   Q ( s , a ) w i t h p r o b a b l i t y   1 mathop{lim}limits_{i ightarrow infty} pi(a|s) ightarrow mathop{argmax} Q(s,a) quad with probablity 1 ilimπ(as)argmax Q(s,a)withprobablity 1
      即百分之百收敛到贪心策略

    • 一个简单的GLIE策略是 ϵ epsilon ϵ-greedy,其中 ϵ epsilon ϵ ϵ i = 1 i epsilon_i = frac{1}{i} ϵi=i1的比率逐渐减小到0

    补充点:你可以保证在没有收敛到最佳策略的条件下收敛到最佳的Q函数,保持高的 ϵ epsilon ϵ值能获得大量最优Q函数是什么样的信息,但是不一定遵循相应的策略。稍后会解释,这里先提一提。

    Monte Carlo Control

    Monte Carlo Online Control / On Policy Improvement

    1 :   I n i t i a l i z e Q ( s , a ) = 0 , N ( s , a ) = 0   ∀ ( s , a ) , S e t   ϵ = 1   k = 1 1: Initialize Q(s,a)=0, N(s,a)=0 forall(s,a), Set epsilon = 1 k = 1 1: InitializeQ(s,a)=0,N(s,a)=0 (s,a),Set ϵ=1 k=1
    2 :   π k = ϵ − g r e e d y ( Q ) 2: pi_k = epsilon-greedy(Q) 2: πk=ϵgreedy(Q) // create intial epsilon-greedy policy
    3 :   l o o p 3: loop 3: loop
    4 :   4: quad 4:  Sample k-th episode ( s k , 1 , a k , 1 , r k , 1 , s k , 2 . . . , s k , T ) (s_{k,1},a_{k,1},r_{k,1},s_{k,2}...,s_{k,Tau}) (sk,1,ak,1,rk,1,sk,2...,sk,T)
    5 :   G k , t = r k , t + γ r k , t + 1 + γ 2 r k , t + 2 + . . . + γ T i − 1 r k , T i 5: quad G_{k,t}=r_{k,t}+gamma r_{k,t+1}+gamma^2 r_{k,t+2}+...+gamma^{Tau_{i-1}}r_{k,Tau_i} 5: Gk,t=rk,t+γrk,t+1+γ2rk,t+2+...+γTi1rk,Ti
    6 :   f o r   t = 1 , . . . . , T   d o 6: quad for t = 1,....,Tau do 6: for t=1,....,T do
    7 :   i f 7: quad quad if 7: if First visit to ( s , a ) (s,a) (s,a) in epsilon k k k t h e n then then
    8 :   N ( s , a ) = N ( s , a ) + 1 8: quad quad quad N(s,a)=N(s,a)+1 8: N(s,a)=N(s,a)+1
    9 :   Q ( s t , a t ) = Q ( s t , a t ) + 1 N ( s , a ) ( G k , t − Q ( s t , a t ) ) 9: quad quad quad Q(s_t,a_t)=Q(s_t,a_t)+frac{1}{N(s,a)}(G_{k,t}-Q(s_t,a_t)) 9: Q(st,at)=Q(st,at)+N(s,a)1(Gk,tQ(st,at))
    10 :   e n d i f 10: quad quad end if 10: endif
    11 :   e n d f o r 11: quad end for 11: endfor
    12 :   k = k + 1 ,   ϵ = 1 k 12: quad k = k+1, epsilon=frac{1}{k} 12: k=k+1, ϵ=k1
    13 :   π k = ϵ − g r e e d y ( Q ) 13: quad pi_k=epsilon-greedy(Q) 13: πk=ϵgreedy(Q) // Policy improvement
    14 : e n d l o o p 14: end loop 14:endloop

    例题

    在这里插入图片描述
    Q1:
    π g r e e d y   1   2   1   t i e . . . pi_greedy quad 1 2 1 tie... πgreedy 1 2 1 tie...
    s 1 , s 3 s_1,s_3 s1,s3都选 Q ϵ − π ( − , a 1 ) Q^{epsilon-pi}(-,a_1) Qϵπ(,a1) s 2 s_2 s2 Q ϵ − π ( − , a 2 ) Q^{epsilon-pi}(-,a_2) Qϵπ(,a2),这时候 G = Q ( s 3 , a 1 ) + Q ( s 2 , a 2 ) = 2 G=Q(s_3,a_1)+Q(s_2,a_2)=2 G=Q(s3,a1)+Q(s2,a2)=2,那么 Q ϵ − π ( s 2 , a ) = 1 2 Q^{epsilon-pi}(s_2,a)=frac{1}{2} Qϵπ(s2,a)=21

    Q2:
    三分之一的概率随机选择一个动作,三分之二的概率选择 π pi π贪心策略。

    GLIE Monte-Carlo Control

    定理:
    GLIE Monte-Carlo control 收敛到最优的state-action价值函数 Q ( s , a ) → Q ∗ ( s , a ) Q(s,a) ightarrow Q^{*}(s,a) Q(s,a)Q(s,a)

    Model-free Policy Iteration

    回顾前面的:

    • Initialize policy π pi π
    • Repeat:
      • Policy Evaluation: compute Q π Q^pi Qπ
      • Policy improvement: update π pi π given Q π Q^pi Qπ

    那么TD方法是怎么做的呢?
    V π ( s ) = V π ( s ) + α ( r + γ V π ( s ′ ) − V π ( s ) ) V^pi(s)=V^pi(s)+alpha(r+gamma V^pi(s')-V^pi(s)) Vπ(s)=Vπ(s)+α(r+γVπ(s)Vπ(s))
    每次迭代采样 r + γ V π ( s ′ ) r+gamma V^pi(s') r+γVπ(s)并bootstrap。

    所以TD learning有两个关键点,即bootstraping和sampling都要做。但在蒙特·卡罗尔只做sampling。TD的优势在于每获得一个元组就可以更新,而不必等到当前整个周期结束。

    把V替换成Q,就是TD版本的Policy control。

    Model-free Policy Iteration with TD Methods

    在这里插入图片描述

    SARSA Algorithm

    SARSA代表state,action,reward,next state,action taken in next state,算法在每次采样到该五元组时更新,所以得名SARSA。

    1 :   S e t 1: Set 1: Set Initial ϵ epsilon ϵ-greedy policy π , t = 0 pi,t=0 π,t=0, initial state s t = s 0 s_t=s_0 st=s0
    2 :   T a k e   a t ∼ π ( s t ) 2: Take a_t sim pi(s_t) 2: Take atπ(st) // Sample action from policy
    3 :   O b s e r v e   ( r t , s t + 1 ) 3: Observe (r_t, s_{t+1}) 3: Observe (rt,st+1)
    4 :   l o o p 4: loop 4: loop
    5 :   T a k e 5: quad Take 5: Take action a t + 1 ∼ π ( s t + 1 ) a_{t+1}sim pi(s_{t+1}) at+1π(st+1)
    6 :   O b s e r v e   ( r t + 1 , s t + 2 ) 6: quad Observe (r_{t+1},s_{t+2}) 6: Observe (rt+1,st+2)
    7 :   Q ( s t , a t ) ← Q ( s t , a t ) + α ( r t + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ) 7: quad Q(s_t,a_t) leftarrow Q(s_t,a_t)+alpha(r_t+gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t)) 7: Q(st,at)Q(st,at)+α(rt+γQ(st+1,at+1)Q(st,at))
    8 :   π ( s t ) = a r g m a x a   Q ( s t , a )   w . p r o b   1 − ϵ , e l s e   r a n d o m 8: quad pi(s_t) = mathop{argmax}limits_{a} Q(s_t,a) w.prob 1-epsilon, else random 8: π(st)=aargmax Q(st,a) w.prob 1ϵ,else random
    9 :   t = t + 1 9: t=t+1 9: t=t+1
    10 : e n d   l o o p 10: end loop 10:end loop
    在这里插入图片描述

    Q-learing: Learning the Optimal State-Action Value

    我们能在不知道 π ∗ pi^* π的情况下估计最佳策略 π ∗ pi^* π的价值吗?

    可以。使用Q-learning。

    核心思想: 维护state-action Q值的估计并且使用它来bootstrap最佳未来动作的的价值。

    回顾SARSA
    Q ( s t , a t ) ← Q ( s t , a t ) + α ( ( r t + γ Q ( s t + 1 , a t + 1 ) ) − Q ( s t , a t ) ) Q(s_t,a_t)leftarrow Q(s_t,a_t)+alpha((r_t+gamma Q(s_{t+1},a_{t+1}))-Q(s_t,a_t)) Q(st,at)Q(st,at)+α((rt+γQ(st+1,at+1))Q(st,at))

    Q-learning
    Q ( s t , a t ) ← Q ( s t , a t ) + α ( ( r t + γ m a x a ′ Q ( s t + 1 , a ′ ) − Q ( s t , a t ) ) ) Q(s_t,a_t)leftarrow Q(s_t,a_t)+alpha((r_t+gamma mathop{max}limits_{a'}Q(s_{t+1},a')-Q(s_t,a_t))) Q(st,at)Q(st,at)+α((rt+γamaxQ(st+1,a)Q(st,at)))

    Off-Policy Control Using Q-learning

    • 在上一节中假定了有某个策略 π b pi_b πb可以用来执行
    • π b pi_b πb决定了实际获得的回报
    • 现在在来考虑如何提升行为策略(policy improvement)
    • 使行为策略 π b pi_b πb是对(w.r.t)当前的最佳 Q ( s , a ) Q(s,a) Q(s,a)估计的- ϵ epsilon ϵ-greedy策略

    Q-learning with ϵ epsilon ϵ-greedy Exploration

    1 :   I n t i a l i z e   Q ( s , a ) , ∀ s ∈ S , a ∈ A   t = 0 , 1: Intialize Q(s,a), forall s in S, a in A t=0, 1: Intialize Q(s,a),sS,aA t=0, initial state s t = s 0 s_t=s_0 st=s0
    2 :   S e t   π b 2: Set pi_b 2: Set πb to be ϵ epsilon ϵ-greedy w.r.t. Q$
    3 :   l o o p 3: loop 3: loop
    4 :   T a k e   a t ∼ π b ( s t ) 4: quad Take a_t simpi_b(s_t) 4: Take atπb(st) // simple action from policy
    5 :   O b s e r v e   ( r t , s t + 1 ) 5: quad Observe (r_t, s_{t+1}) 5: Observe (rt,st+1)
    6 :   U p d a t e   Q 6: quad Update Q 6: Update Q given ( s t , a t , r t , s t + 1 ) (s_t,a_t,r_t,s_{t+1}) (st,at,rt,st+1)
    7 :   Q ( s r , a r ) ← Q ( s t , r t ) + α ( r t + γ m a x a Q ( s t 1 , a ) − Q ( s t , a t ) ) 7: quad Q(s_r,a_r) leftarrow Q(s_t,r_t)+alpha(r_t+gamma mathop{max}limits_{a}Q(s_{t1},a)-Q(s_t,a_t)) 7: Q(sr,ar)Q(st,rt)+α(rt+γamaxQ(st1,a)Q(st,at))
    8 :   P e r f o r m 8: quad Perform 8: Perform policy impovement: s e t   π b set pi_b set πb to be ϵ epsilon ϵ-greedy w.r.t Q
    9 :   t = t + 1 9: quad t=t+1 9: t=t+1
    10 : e n d   l o o p 10: end loop 10:end loop

    如何初始化 Q Q Q重要吗?
    无论怎样初始化 Q Q Q(设为0,随机初始化)都会收敛到正确值,但是在实际应用上非常重要,以最优化初始化形式初始化它非常有帮助。会在exploration细讲这一点。

    例题

    在这里插入图片描述
    在这里插入图片描述

    Maximization Bias 1 ^1 1

    即使在使用Q-Learning时,都是采用无偏估计器,最终得到的结果也会是有偏的,证明如下:
    在这里插入图片描述

    Maximization Bias 2 ^2 2

    MDPs上同样也会发生这个问题。
    在这里插入图片描述

    Double Q-Learning

    为了解决上面的问题,提出了Double-Q Learning的方法:

    • 有限采样学习时应用于估计Q值的贪心策略会产生一个最大化偏差
    • 所以要避免使用估计的最大值最为真实值最大值的估计
    • 因此我们把采样分成两部分,并使用它们创建两个独立的无偏估计 Q 1 ( s 1 , a i ) Q_1(s_1,a_i) Q1(s1,ai) Q 2 ( s 1 , a i ) Q_2(s_1,a_i) Q2(s1,ai)
      • 使用一个估计来选择最大动作: a ∗ = a r g m a x a Q 1 ( s 1 , a ) a^*=argmax_a Q_1(s_1,a) a=argmaxaQ1(s1,a)
      • 使用另一个估计 a ∗ a^* a的值: Q 2 ( s , a ∗ ) Q_2(s,a^*) Q2(s,a)
      • 产生一个无偏估计: E ( Q 2 ( s , a ∗ ) ) = Q ( s , a ∗ ) mathbb{E}(Q_2(s,a^*))=Q(s,a^*) E(Q2(s,a))=Q(s,a)
    • 为什么这产生了一个最大state-action价值的无偏估计?
    • 如果是在线采取动作的,这能交替的采样去更新 Q 1 Q_1 Q1 Q 2 Q_2 Q2,用另外一个去选择动作
    • 下一个小节将扩展到全MDP例子(超过一个状态)

    Double Q-Learning

    这个算法仅供你参考,实际实现不是按照下面的算法而来的,而是通常更改TD target来实现的。

    1 :   I n t i a l i z e   Q 1 ( s , a ) 1: Intialize Q_1(s,a) 1: Intialize Q1(s,a) and Q 2 ( s , a ) , ∀ s ∈ S , a ∈ A   t = 0 , Q_2(s,a), forall s in S, a in A t=0, Q2(s,a),sS,aA t=0, initial state s t = s 0 s_t=s_0 st=s0
    2 :   l o o p 2: loop 2: loop
    3 :   S e l e c t 3: quad Select 3: Select a t a_t at using ϵ epsilon ϵ-greedy π ( s ) = a r g m a x a Q 1 ( s t , a ) + Q 2 ( s t , a ) pi(s)=argmax_a Q_1(s_t,a)+Q_2(s_t,a) π(s)=argmaxaQ1(st,a)+Q2(st,a)
    4 :   O b s e r v e   ( r t , s t + 1 ) 4: quad Observe (r_t,s_{t+1}) 4: Observe (rt,st+1)
    5 :   i f 5: quad if 5: if(with 0.5 probability) then
    6 :   Q 1 ( s a , a t ) ← Q 1 ( s t , a t ) + α 6: quad quad Q_1(s_a,a_t) leftarrow Q_1(s_t,a_t)+alpha 6: Q1(sa,at)Q1(st,at)+α
    7 :   e l s e 7: quad else 7: else
    8 :   Q 2 ( s t , a t ) ← Q 2 ( s t , a t ) + α 8: quad quad Q_2(s_t,a_t) leftarrow Q_2(s_t,a_t)+alpha 8: Q2(st,at)Q2(st,at)+α
    9 :   e n d i f 9: quad end if 9: endif
    10 :   t = t + 1 10: quad t= t+1 10: t=t+1
    11 : e n d   l o o p 11: end loop 11:end loop
    在这里插入图片描述

    Q-Learning和Double Q-Learnig的区别:
    在这里插入图片描述

    Recall: Off Policy, Policy Evaluation

    给定遵循行为策略 π b pi_b πb的数据,我们能估计另外一个行为策略 π e pi_e πe的价值 V π e V^{pi_e} Vπe吗?
    优雅的思想:我们能学习与我们真正使用的做事情的某方法不同的其他方法来做事情的方法吗?
    思考一下对Monte Carlo评估来说如何实现这点: 使用重要性采样
    先来看一下怎么使用TD做off policy评估

    Importance Sampling for Off Policy TD (Policy Evaluation)

    回顾时序差分(TD)算法,它用于对策略 π b pi_b πb进行递增式无模型评估。更确切地讲,给定从 π b ( s t ) pi_b(s_t) πb(st)采样的一个状态 s t s_t st,一个动作 a t a_t at和观察到的回报 r t r_t rt和下一个状态 s t + 1 s_{t+1} st+1,TD执行下列更新:
    V π b ( s t ) = V π b ( s t ) + α ( r t + γ V π b ( s t + 1 ) − V π b ( s t ) ) ) V^{pi_b}(s_t)=V^{pi_b}(s_t)+alpha(r_t+gamma V^{pi_b}(s_{t+1})-V^{pi_b}(s_t))) Vπb(st)=Vπb(st)+α(rt+γVπb(st+1)Vπb(st)))

    现在想使用从遵循 π b pi_b πb采样而来的数据去估计一个不同的策略 π e pi_e πe的价值估计 V π e V^{pi_e} Vπe

    通过单步重要采样比率变更TD target r t + γ V ( s t + 1 ) r_t+gamma V(s_{t+1}) rt+γV(st+1)到加权目标

    新的更新方式:
    V π e ( s t ) = V π e ( s t ) + α [ π e ( a t ∣ s t ) π b ( a t ∣ s t ) ( r t + γ V π e − V π e ( s t ) ) ] V^{pi_e}(s_t)=V^{pi_e}(s_t)+alpha[frac{pi_e(a_t|s_t)}{pi_b(a_t|s_t)}(r_t+gamma V^{pi_e}-V^{pi_e}(s_t))] Vπe(st)=Vπe(st)+α[πb(atst)πe(atst)(rt+γVπeVπe(st))]

    Importance Sampling for Off Policy TD Cont.

    • Off Policy TD update:
      V π b ( s t ) = V π b ( s t ) + α ( r t + γ V π b ( s t + 1 ) − V π b ( s t ) ) ) V^{pi_b}(s_t)=V^{pi_b}(s_t)+alpha(r_t+gamma V^{pi_b}(s_{t+1})-V^{pi_b}(s_t))) Vπb(st)=Vπb(st)+α(rt+γVπb(st+1)Vπb(st)))
    • 比MC IS相比更小得多得多的方差(为什么?)
    • π b pi_b πb在每一个时间步都必须是一样的吗?
    • Off Policy TD收敛到 V π e V^{pi_e} Vπe需要 π b pi_b πb π e pi_e πe满足什么条件呢?
  • 相关阅读:
    Glide优化
    Java多线程知识点
    Android知识点
    Gradle的一些技巧和遇到的问题
    Python用Django写restful api接口
    Python写爬虫爬妹子
    用最简单的例子说明设计模式(三)之责任链、建造者、适配器、代理模式、享元模式
    【Python】扫描指定文件夹下特定后缀的文件
    【Python】生成多级树结构的xml文件
    【转】【Linux】安装pyinstaller
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842445.html
Copyright © 2011-2022 走看看