17.蒙特卡洛强化学习-根据轨迹估计状态值函数(1)

发布时间:2024年01月11日

1. 状态值函数的作用

状态值函数在强化学习中一直扮演者“价值评估”的角色,这有点像深度学习训练中所采用的误差函数。

2. 根据轨迹计算V(s)

在当前策略 π \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,?,K?1
则估计V(s)的批处理算法流程如下:

  • 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?γn?mrk,n?
  • step 2:计算各个状态s的状态值函数V(s)
    • 初访法(first-visit)
      V(s)=全部轨迹中状态值首次等于s的所有三元组中的累积回报的均值

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

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

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

  • 每方法能更充分地利用轨迹数据,但需耗费更多的计算资源
  • 实际使用时,要根据具体场景合理选择。
文章来源:https://blog.csdn.net/caijungan/article/details/135520469
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。