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[Gt∣St=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}
Sarsa⟵Gt(1)Gt(2):n-step Sarsa⟵Gt(n)MC⟵Gt(∞)=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+n−1(st,at)−αt+n−1(st,at)[qt+n−1(st,at)−[rt+1+γrt+2+⋯+γnqt+n−1(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结合以寻找最优策略。
参考资料:
【强化学习】强化学习数学基础:时序差分方法