RL-赵-(七)-不基于模型4:n-step Sarsa【TD算法】【Sarsa与MC的折中形式:采样n步就更新π】【Sarsa只需要一步的数据就更新;MC需等到一个episode数据搜集结束再更新】

在这里插入图片描述
在这里插入图片描述
n-Step Sarsa是Sarsa的一个变型或者是一个推广,因为n-step Sarsa包含了Sarsa和蒙特卡洛两种方法,也就是can unify Sarsa and Monte Carlo learning。

Action Value 的定义如下:
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a] qπ(s,a)=E[GtSt=s,At=a]

其中的 discounted return G t G_t Gt 有很多种写法【 G t ( 1 ) G_t^{(1)} Gt(1)表示第一种写法, G t ( n ) G_t^{(n)} Gt(n)表示第 n n n中写法】:
Sarsa ⟵ G t ( 1 ) = R t + 1 + γ q π ( S t + 1 , A t + 1 ) , 【第 t + 1 时间步后的所有 r e w a r d 都汇总到 q π ( S t + 1 , A t + 1 ) 】 G t ( 2 ) = R t + 1 + γ R t + 2 + γ 2 q π ( S t + 2 , A t + 2 ) , 【第 t + 2 时间步后的所有 r e w a r d 都汇总到 q π ( S t + 2 , A t + 2 ) 】 : n -step Sarsa ⟵ G t ( n ) = R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) , 【第 t + n 时间步后的所有 r e w a r d 都汇总到 q π ( S t + n , A t + n ) 】 MC ⟵ G t ( ∞ ) = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … \begin{aligned} \text{Sarsa}\longleftarrow G_t^{(1)}& =R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1}), 【第t+1时间步后的所有reward都汇总到q_{\pi}(S_{t+1},A_{t+1})】\\ G_{t}^{(2)}& =R_{t+1}+\gamma R_{t+2}+\gamma^2q_\pi(S_{t+2},A_{t+2}), 【第t+2时间步后的所有reward都汇总到q_{\pi}(S_{t+2},A_{t+2})】\\ \text{:} \\ n\text{-step Sarsa}\longleftarrow G_t^{(n)}& =R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n}), 【第t+n时间步后的所有reward都汇总到q_{\pi}(S_{t+n},A_{t+n})】 \\ \text{MC}\longleftarrow G_t^{(\infty)}& =R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\ldots \end{aligned} SarsaGt(1)Gt(2):n-step SarsaGt(n)MCGt()=Rt+1+γqπ(St+1,At+1),【第t+1时间步后的所有reward都汇总到qπ(St+1,At+1)=Rt+1+γRt+2+γ2qπ(St+2,At+2),【第t+2时间步后的所有reward都汇总到qπ(St+2,At+2)=Rt+1+γRt+2++γnqπ(St+n,At+n),【第t+n时间步后的所有reward都汇总到qπ(St+n,At+n)=Rt+1+γRt+2+γ2Rt+3+

  • R t + 1 , R t + 2 , . . . R t + n , . . . R_{t+1},R_{t+2},...R_{t+n},... Rt+1,Rt+2,...Rt+n,... 表示 immediatly reward。
  • 注意这里边所有含有上标的这些 G t G_t Gt 都是等价的。只不过它们之间的不同是基于它们怎么样去分解。
    在这里插入图片描述
  • 使用 G t ( 1 ) G_t^{(1)} Gt(1) 带入action value,得到Sarsa的action value公式:
    q π ( s , a ) = E [ G t ( 1 ) ∣ s , a ] = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ s , a ] \begin{aligned}q_\pi(s,a)=\mathbb{E}[G_t^{(1)}|s,a]=\mathbb{E}[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1})|s,a]\end{aligned} qπ(s,a)=E[Gt(1)s,a]=E[Rt+1+γqπ(St+1,At+1)s,a]
  • 使用 G t ( ∞ ) G_t^{(∞)} Gt() 带入action value,得到 MC learning 的 action value公式:
    q π ( s , a ) = E [ G t ( ∞ ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … ∣ s , a ] q_{\pi}(s,a)=\mathbb{E}[G_{t}^{(\infty)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\ldots|s,a] qπ(s,a)=E[Gt()s,a]=E[Rt+1+γRt+2+γ2Rt+3+s,a]
  • 因此,一个中间的算法称为n-step Sarsa,其action value求解公式为:
    q π ( s , a ) = E [ G t ( n ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) ∣ s , a ] q_\pi(s,a)=\mathbb{E}[G_t^{(n)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n})|s,a] qπ(s,a)=E[Gt(n)s,a]=E[Rt+1+γRt+2++γnqπ(St+n,At+n)s,a]

因此 n-step Sarsa算法 是:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t ( s t + n , a t + n ) ] ] . \begin{aligned} \color{red}{q_{t+1}(s_t,a_t)=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_t(s_{t+n},a_{t+n})]\Big]. }\end{aligned} qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γrt+2++γnqt(st+n,at+n)]].

n = 1 n=1 n=1 的时候,n-step Sarsa就变成了(one-step)Sarsa算法,如果 n = ∞ n=\infty n=,n-step Sarsa变成了MC learning算法。

在这里插入图片描述
对Sarsa的一些性质分析:

  • Sarsa只需要一步的数据,就更新,所以说是实时的;MC需要等到一个episode的数据搜集结束再更新,所以也是offline的;
  • n-step Sarsa折中,需要n步的数据: ( s t , a t , r t + 1 , s t + 1 , a t + 1 , . . . , r t + n , s t + n , a t + n ) (s_t,a_t,r_{t+1},s_{t+1},a_{t+1},...,r_{t+n},s_{t+n},a_{t+n}) (st,at,rt+1,st+1,at+1,...,rt+n,st+n,at+n)
  • 因为在时刻 t t t,不知道 ( r t + n , s t + n , a t + n ) (r_{t+n},s_{t+n},a_{t+n}) (rt+n,st+n,at+n),所以在 t t t 时间步,不能实现n-step Sarsa。我们必须等待 t + n t+n t+n 时刻才能更新 ( s t , a t ) (s_t,a_t) (st,at)的 q-value:
    q t + n ( s t , a t ) = q t + n − 1 ( s t , a t ) − α t + n − 1 ( s t , a t ) [ q t + n − 1 ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t + n − 1 ( s t + n , a t + n ) ] ] \begin{aligned}q_{t+n}(s_t,a_t)&=q_{t+n-1}(s_t,a_t)\\&-\alpha_{t+n-1}(s_t,a_t)\Big[q_{t+n-1}(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_{t+n-1}(s_{t+n},a_{t+n})]\Big]\end{aligned} qt+n(st,at)=qt+n1(st,at)αt+n1(st,at)[qt+n1(st,at)[rt+1+γrt+2++γnqt+n1(st+n,at+n)]]
  • 因为MC learning和Sarsa实际上是n-step Sarsa的两个极端情况,因此,它的性质是Sarsa和MC learning性质的混合:
    • 如果 n 较大,它的性质接近MC learning,因此具有一个较大的variance,但是有一个较小的bias;
    • 如果 n 较小,它的性质接近Sarsa,因此由于initial guess具有一个相对大的bias,但是具有相对较低的variance。
  • 最终, n-step Sarsa实际上还是在做policy evaluation,因此它需要和policy improvement step结合以寻找最优策略。



参考资料:
【强化学习】强化学习数学基础:时序差分方法

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值