17.蒙特卡洛强化学习之批量式策略评估

文章目录

  • 1. 是什么
  • 2. 为什么直接估计Q而不是V
  • 2. 根据多条完整轨迹计算Q(s,a)
  • 3. 初访法和每访法哪个更好?

1. 是什么

智能体利用完整轨迹数据估计出 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)的过程

2. 为什么直接估计Q而不是V

因为策略评估的目的在于改进现有策略 π ( a ∣ s ) \pi(a|s) π(as),而改进策略就涉及到选取最优行为 a , Q ( s , a ) a,Q(s,a) aQ(s,a)刚好能衡量状态s时,采取各种动作a的价值(累积回报期望)。如果采用 V ( s ) V(s) V(s),则最终还是要由 V ( s ) V(s) V(s)(参考贝尔曼方程)计算出Q(s,a),而由于立即回报矩阵和状态转移数组未知,这一点做不到。因此,干脆直接从Q(s,a)出发进行策略评估和控制。

2. 根据多条完整轨迹计算Q(s,a)

在当前策略 π \pi π下,假设我们获得了K条完整轨迹数据 [ ( s k , 0 , a k , 0 , r k , 1 ) , ⋯   , ( s k , L k , a k , L k , r k , L k + 1 ) , ( s T , a k , L k + 1 , r k , L k + 2 ) ] ‾ , k = 0 , 1 , ⋯   , K − 1 \underline{[(s_{k,0},a_{k,0},r_{k,1}),\cdots,(s_{k,L_k},a_{k,L_k},r_{k,L_k+1}),(s_T,a_{k,L_k+1},r_{k,L_k+2})]},k=0,1,\cdots,K-1 [(sk,0,ak,0,rk,1),,(sk,Lk,ak,Lk,rk,Lk+1),(sT,ak,Lk+1,rk,Lk+2)],k=0,1,,K1
则估计Q(s,a)的批处理算法流程如下:

  • step 1:把所有完整轨迹中的立即回报 r k , m r_{k,m} rk,m的值替换为累积回报值 G k , m G_{k,m} Gk,m
    G k , m = ∑ n = m L k + 2 γ n − m r k , n G_{k,m}=\sum_{n=m}^{L_k+2}\gamma^{n-m}r_{k,n} Gk,m=n=mLk+2γnmrk,n
  • step 2:计算各个**状态行为对(s,a)**的函数值V(s,a)
    • 初访法(first-visit)
      V(s)=全部轨迹中状态行为对的值**首次等于(s,a)**的所有三元组中的累积回报的均值

    • 每访法(every-visit)
      V(s)=全部轨迹中状态行为对的值**等于(s,a)**的所有三元组中的累积回报的均值

根据大数定律可知:如果求一个状态的累积回报时,找到的状态值为s的三元组的个数越多,所得的均值越接近Q(s,a)真实值。

3. 初访法和每访法哪个更好?

  • 每方法能更充分地利用轨迹数据,但需耗费更多的计算资源
  • 实际使用时,要根据具体场景合理选择。

你可能感兴趣的:(我的强化学习笔记,强化学习,蒙特卡洛)