RL-赵-(八)-Value-Based02:Sarsa Function Approximation【与基于表格的区别:不是用于计算q,而是用于更新“值函数”的参数,使得通过参数计算出的q值最优】

在这里插入图片描述
在这里插入图片描述
到目前为止,我们仅仅是考虑 state value estimation的问题,也就是我们希望

v ^ ≈ v π \hat{v}\approx v_{\pi} v^vπ

为了搜索最优策略,我们需要估计action values。

我们知道:
“TD learning” with “value function approximate”:
w t + 1 = w t + α t [ r t + 1 + γ v ^ ( s t + 1 , w t ) − v ^ ( s t , w t ) ] ∇ w v ^ ( s t , w t ) \color{red}{w_{t+1}=w_t+\alpha_t\left[r_{t+1}+\gamma\hat{v}(s_{t+1},w_t)-\hat{v}(s_t,w_t)\right]\nabla_w\hat{v}(s_t,w_t)} wt+1=wt+αt[rt+1+γv^(st+1,wt)v^(st,wt)]wv^(st,wt)
那么:
“Sarsa算法” with “value function approximate”:
w t + 1 = w t + α t [ r t + 1 + γ q ^ ( s t + 1 , a t + 1 , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) \color{red}{w_{t+1}=w_t+\alpha_t\left[r_{t+1}+\gamma\hat{q}(s_{t+1},a_{t+1},w_t)-\hat{q}(s_t,a_t,w_t)\right]\nabla_w\hat{q}(s_t,a_t,w_t)} wt+1=wt+αt[rt+1+γq^(st+1,at+1,wt)q^(st,at,wt)]wq^(st,at,wt)

这个上一节介绍的TD算法是一样的,只不过将 v ^ \hat{v} v^换成了 q ^ \hat{q} q^

为了寻找最优策略,我们将policy evaluation(上面算法做的事儿)和policy improvement结合。

下面给出Sarsa with function approximation的伪代码:

在这里插入图片描述
对每一个episode我们做如下的操作:

  • 如果当前的这个状态 s t s_t st 还不是 target state,那我们做如下的操作,这个任务实际上就是对应我从一个状态出发,然后我要到目标状态找到一个好的路径过去就可以。所以第一步是要生成数据:

    • 我在 s t s_t st 的时候我要根据这个 π t ( s t ) π_t(s_t) πt(st) 策略然后采用 action a t a_t at,然后和环境进行交互得到 r t + 1 , s t + 1 r_{t+1},s_{t+1} rt+1,st+1,之后在 s t + 1 s_{t+1} st+1 根据在 s t + 1 s_{t+1} st+1 的策略 π t ( s t + 1 ) π_t(s_{t+1}) πt(st+1) 采用 action a t + 1 a_{t+1} at+1
    • 然后根据这个数据下面我们来做value update:
      w t + 1 = w t + α t [ r t + 1 + γ q ^ ( s t + 1 , a t + 1 , w t ) − q ^ ( s t , a t , w t ) ] ∇ w q ^ ( s t , a t , w t ) w_{t+1}\quad=\quad w_{t}\quad+\quad\alpha_{t}\left[r_{t+1}+\gamma\hat{q}(s_{t+1},a_{t+1},w_{t})-\hat{q}(s_t,a_t,w_t)\right]\nabla_w\hat{q}(s_t,a_t,w_t) wt+1=wt+αt[rt+1+γq^(st+1,at+1,wt)q^(st,at,wt)]wq^(st,at,wt)
      注意这儿我们并不是直接更新 q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) q^(st+1,at+1),不是要计算 q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) q^(st+1,at+1)应该等于什么,而是我们要更新它的这个权重参数 w w w,这是和之前tabular的Sarsa的一个唯一的区别。
  • 有了这个之后我们就可以来做policy update,这个和之前的tabular的Sarsa是一模一样的。也就是说我会选择在 s t s_t st 所有action当中所对应的action value最大的那个action,然后我会给它一个比较大的概率,这里边的策略是ε-Greedy,其它的action会给一个比较小的一个概率。

    • 值得注意的是在之前在tabular的情况下,其实我可以直接去索引就可以得到这个 q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) q^(st+1,at+1)
    • 现在我需要去算一下,把这个s和所对应的这个a代到这个函数里边去算一下这个函数值 q ^ ( s t + 1 , a t + 1 ) \hat{q}(s_{t+1},a_{t+1}) q^(st+1,at+1) 然后再做比较;

在这里插入图片描述




参考资料:
【强化学习】强化学习数学基础:值函数近似
6. 值函数近似(Value Function Approximation)
第六讲 价值函数的近似法(Value Function Approximation)

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/135027517