RL-赵-(八)-Value-Based03:Q-learning Function Approximation【目标:计算出最优“值函数”参数,通过该“值函数”计算出的Action Value最优】

在这里插入图片描述
在这里插入图片描述
我们知道:
“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)

类似地,tabular Q-learning也可以扩展到value function approximation的情况,The q-value更新规则是:

“Q-learning算法” with “value function approximate”:

w t + 1 = w t + α t [ r t + 1 + γ max ⁡ a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , 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\max_{a\in\mathcal{A}(s_{t+1})}\hat{q}(s_{t+1},a,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+γaA(st+1)maxq^(st+1,a,wt)q^(st,at,wt)]wq^(st,at,wt)

这与Sarsa with Function Approximation算法相同,除了 q ^ ( s t + 1 , a t + 1 , w t ) \hat{q}\left(s_{t+1},a_{t+1},w_t\right) q^(st+1,at+1,wt) 被替换为 m a x a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , w t ) \mathrm{max}_{a\in\mathcal{A}(s_{t+1})}\hat{q}\left(s_{t+1},a,w_t\right) maxaA(st+1)q^(st+1,a,wt)

在这里插入图片描述
Q-learning with function approximation伪代码(on-policy version):

对每一个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
    • 然后根据这个数据下面我们来做value update:
      w t + 1 = w t + α t [ r t + 1 + γ max ⁡ a ∈ A ( s t + 1 ) q ^ ( s t + 1 , a , 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\max_{a\in\mathcal{A}(s_{t+1})}\hat{q}(s_{t+1},a,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+γaA(st+1)maxq^(st+1,a,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)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值