目录
episodic semi-SGD one-step control via Sarsa
近似的动作价值函数
q
^
≈
q
π
\hat{q}\approx q_\pi
q^≈qπ,表示为具有权值向量
w
w
w的参数化函数形式。前面的预测问题关注的是形如
S
t
→
U
t
S_t\rightarrow U_t
St→Ut的随机训练样本,而对于控制问题,样本的形态会变成
S
t
,
A
t
→
U
t
S_t,A_t\rightarrow U_t
St,At→Ut。更新目标
U
t
U_t
Ut可以是
q
π
(
S
t
,
A
t
)
q_\pi(S_t,A_t)
qπ(St,At)的任意近似,包括一些常见的回溯值,如完整的MC回报
G
t
G_t
Gt或n-step Sarsa回报。动作价值函数预测的梯度下降更新公式的一般形式是:
w
t
+
1
=
w
t
+
α
[
U
t
−
q
^
(
S
t
,
A
t
,
w
t
)
]
∇
q
^
(
S
t
,
A
t
,
w
t
)
w_{t+1}=w_t+\alpha[U_t-\hat{q}(S_t,A_t,w_t)]\nabla\hat{q}(S_t,A_t,w_t)
wt+1=wt+α[Ut−q^(St,At,wt)]∇q^(St,At,wt)
作为上面一般形式的其中一个例子,one-step Sarsa方法的更新可以表示为
w
t
+
1
=
w
t
+
α
[
R
t
+
1
+
γ
q
^
(
S
t
+
1
,
A
t
+
1
,
w
t
)
−
q
^
(
S
t
,
A
t
,
w
t
)
]
∇
q
^
(
S
t
,
A
t
,
w
t
)
w_{t+1}=w_t+\alpha[R_{t+1}+\gamma\hat{q}(S_{t+1},A_{t+1},w_t)-\hat{q}(S_t,A_t,w_t)]\nabla\hat{q}(S_t,A_t,w_t)
wt+1=wt+α[Rt+1+γq^(St+1,At+1,wt)−q^(St,At,wt)]∇q^(St,At,wt)
这种方法称为episodic semi-gradient one-step Sarsa。
这里之所以选用自举法的TD-Learning而不用MC,原因在于对于趋近于无限长的连续性任务,MC可能连一个episode都执行不完,更别说大量的更新了。
为了得到控制方法,需要将这种动作价值函数预测与策略改进及动作选择的技术结合起来。如果动作集合是离散的并且不是太大(如果是连续的,或者是离散太大,则效果不好),对于当前状态
S
t
S_t
St中的每个可能的动作
a
a
a,可以计算
q
^
(
S
t
,
a
,
w
t
)
\hat{q}(S_t,a,w_t)
q^(St,a,wt),然后贪心(
ϵ
\epsilon
ϵ-贪心策略)地选择动作
A
t
∗
=
a
r
g
m
a
x
a
q
^
(
S
t
,
a
,
w
t
)
A_t^*=argmax_a\hat{q}(S_t,a,w_t)
At∗=argmaxaq^(St,a,wt)。
Mountain Car Task(高山行车问题)
**任务描述:**让一个动力不足的小车越国山顶,但是由于动力不足,小车需要先想做开,积累势能之后加上现有的动力才能越过右边山顶。小车到达goal则episode结束,超过左边边界的话就重置task。
**目标点:**小车到达goal则episode结束,超过左边的边界则重置task。
**状态空间:**二维连续空间。
−
1.2
≤
x
t
+
1
≤
0.5
-1.2\leq x_{t+1}\leq 0.5
−1.2≤xt+1≤0.5,
−
0.07
≤
v
t
+
1
≤
0.07
-0.07\leq v_{t+1}\leq 0.07
−0.07≤vt+1≤0.07,位置和速度。
动作空间:
+
1
,
−
1
,
0
+1,-1,0
+1,−1,0。分别表示全油门前进,全油门后退,零油门。
**模型:**状态转移方程:
{
x
t
+
1
=
b
o
u
n
d
[
x
t
+
v
t
+
1
]
v
t
+
1
=
b
o
u
n
d
[
v
t
+
1
+
0.001
A
t
−
0.0025
c
o
s
(
3
x
t
)
]
\begin{cases} x_{t+1}=bound[x_t+v_{t+1}]\\ v_{t+1}=bound[v_{t+1}+0.001A_t-0.0025cos(3x_t)] \end{cases}
{xt+1=bound[xt+vt+1]vt+1=bound[vt+1+0.001At−0.0025cos(3xt)]
bound操作是为了限制
−
1.2
≤
x
t
+
1
≤
0.5
-1.2\leq x_{t+1}\leq0.5
−1.2≤xt+1≤0.5以及
−
0.07
≤
v
t
+
1
≤
0.07
-0.07\leq v_{t+1}\leq0.07
−0.07≤vt+1≤0.07。当位置到达左边界时,速度被重置为0。当位置到达右边界时,目标达成且当前episode结束。每一episode从一个随机位置
[
−
0.6
,
−
0.4
]
[-0.6,-0.4]
[−0.6,−0.4]和
0
0
0速度开始。
如上图所示,为了将这两个连续的状态变量转换成二值化特征,使用网格覆盖方法,这里使用8个tiling,每个tiling中的每个tile覆盖了每个维度边界总距离的
1
8
\frac{1}{8}
81。并使用了不对称偏移,使用瓦片编码产生的特征向量
x
(
s
,
a
)
x(s,a)
x(s,a)与参数向量的线性组合来逼近状态-动作价值函数。
q
^
(
s
,
a
,
w
)
=
w
T
x
(
s
,
a
)
=
∑
i
=
1
d
w
i
⋅
x
i
(
s
,
a
)
\hat{q}(s,a,w)=w^Tx(s,a)=\displaystyle\sum_{i=1}^dw_i·x_i(s,a)
q^(s,a,w)=wTx(s,a)=i=1∑dwi⋅xi(s,a)
上图显示了通过这种方式的函数逼近来学习解决这个任务(高山行车)会发生什么。从图的中间顶部标为“Step 428”的途中可以看到,尽管此时连一个episode都没有完成,但是车子在山谷里沿着状态空间的弧形轨迹来回摆动。所有经常访问的状态的价值函数都比未试探到的状态低,这是因为实际的收益比预期的要差,这会驱使智能体离开所在的地点,去探索新的状态,直到找到解决方案。
下图显示了高山行车的若干半梯度Sarsa学习曲线,不同的曲线有不同的步长
n-step semi-SGD n-step control via Sarsa
episodic n-step semi-gradient Sarsa使用n-step回报作为
U
t
U_t
Ut。
G
t
:
t
+
n
=
R
t
+
1
+
γ
R
t
+
2
+
.
.
.
+
γ
n
−
1
R
t
+
n
+
γ
n
q
^
(
S
t
+
n
,
A
t
+
n
,
w
w
+
n
−
1
)
,
t
+
n
<
T
G_{t:t+n}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^n\hat{q}(S_{t+n},A_{t+n},w_{w+n-1}),t+n<T
Gt:t+n=Rt+1+γRt+2+...+γn−1Rt+n+γnq^(St+n,At+n,ww+n−1),t+n<T
如果
t
+
n
≥
T
t+n\geq T
t+n≥T则有
G
t
:
t
+
n
=
G
t
G_{t:t+n}=G_t
Gt:t+n=Gt。n-step的更新公式为
w
t
+
n
=
w
t
+
n
−
1
+
α
[
G
t
:
t
+
n
−
q
^
(
S
t
,
A
t
,
w
t
+
n
−
1
)
]
∇
q
^
(
S
t
,
A
t
,
w
t
+
n
−
1
)
,
0
≤
t
<
T
w_{t+n}=w_{t+n-1}+\alpha[G_{t:t+n}-\hat{q}(S_t,A_t,w_{t+n-1})]\nabla\hat{q}(S_t,A_t,w_{t+n-1}),0\leq t<T
wt+n=wt+n−1+α[Gt:t+n−q^(St,At,wt+n−1)]∇q^(St,At,wt+n−1),0≤t<T
使用中等程度的自举法往往能得到最好的性能,也就是
n
n
n的取值,如下图所示,使用
n
=
8
n=8
n=8相比于
n
=
1
n=1
n=1学习得更快,并获得更好的性能。
上图是one-step semi-gradient Sarsa和n-step semi-gradient Sarsa在高山行车任务中的性能对比。这里使用了较好的步长参数:
n
=
1
,
α
=
0.5
8
n=1,\alpha=\frac{0.5}{8}
n=1,α=80.5以及
n
=
8
,
α
=
0.3
8
n=8,\alpha=\frac{0.3}{8}
n=8,α=80.3
平均收益:持续性任务中新的问题设定
Long Interval
连续性问题有两种,第一种是既有初始状态和终止状态,第二种是没有终止状态的,即智能体需要持续性地与环境进行交互。这种情况下,Episodic方法无法处理,但是可以在这个无终止的状态序列中,设置长时间窗口,抽取子序列(离散化)为一个个episode,只是这些episode的终止状态不再是终止时刻时的状态,而是进行轨迹采样到达的设定最终最终时刻。
Tarbular Tasks背景补充
Episodic Setting
在Tarbular (表格型)Tasks中,由于每个状态清晰可区分,我们可通过Episodic Setting来进行离散汇报的计算,从而可进行策略优劣的排序,在局部状态
s
s
s下回报最高
Q
(
s
,
a
)
Q(s,a)
Q(s,a)所对应的局部策略是当前最优的。
G
t
=
R
t
+
1
+
R
t
+
2
+
.
.
.
+
R
T
=
∑
k
=
t
+
1
T
R
k
with
T
=
constant
<
∞
,
γ
=
1
\begin{aligned} G_t&=R_{t+1}+R_{t+2}+...+R_T\\ &=\displaystyle\sum_{k=t+1}^TR_k\\ \text{ with }T&=\text{constant}<\infty,\gamma=1 \end{aligned}
Gt with T=Rt+1+Rt+2+...+RT=k=t+1∑TRk=constant<∞,γ=1
Discounted Setting
在Tarbular/Countinuing Tasks中,对于趋向于无限长的奖赏序列,为保证求累计奖赏时是有限值,并且注重即时奖励,淡化远期奖励。设置折扣因子如下
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
.
.
.
=
∑
k
=
t
+
1
T
γ
k
−
t
−
1
R
k
with
(
T
→
∞
,
γ
<
1
)
\begin{aligned} G_t&=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...\\ &=\displaystyle\sum_{k=t+1}^T\gamma ^{k-t-1}R_k\text{ with }(T\rightarrow\infty,\gamma<1) \end{aligned}
Gt=Rt+1+γRt+2+γ2Rt+3+...=k=t+1∑Tγk−t−1Rk with (T→∞,γ<1)
Approximation问题:相邻状态难以区分,状态未转移但奖励依旧累积
函数逼近使用特征向量
x
(
s
)
x(s)
x(s)来表征状态
s
s
s,在不同粒度的表示下(如Tile Coding),落在同一tile中的不同状态
(
s
,
s
′
)
(s,s')
(s,s′)对应的特征向量相同,即
x
(
s
)
=
x
(
s
′
)
=
>
v
(
s
)
=
v
(
s
′
)
x(s)=x(s')=>v(s)=v(s')
x(s)=x(s′)=>v(s)=v(s′),这使得函数逼近法比表格法更难区分不同state,这意味着如果我们在状态
s
s
s下执行动作
a
a
a,有可能达到同一特征向量的不同状态
s
′
s'
s′,由于期间没有发生实质状态转移,此时不管使用episodic setting(
+
R
t
+R_t
+Rt),还是Discounted Setting(
γ
R
t
\gamma R_t
γRt),进行参数
w
w
w更新和策略评估都会存在偏差。
解决方法是使用Average-Reward Setting via long interval,想要了解一个人或事,就需要长期接触,因此可通过长时间间隔的平均收益(Average-reward)来进行参数
w
w
w的更新和策略排序。
Average-Reward Setting
Average-Reward Setting的特点如下:
(1)理论上基于长时间间隔平均而得,实际计算是不断更新而成,可动态适应非平稳环境。
(2)不同于Discount,对任意时刻都同等重视,无远近偏好。
(3)基于遍历性(ergodicity)假设。
R-Learning是一种Model-Free的Average-Reward RL方法,比Q-Learning收敛快。策略
π
\pi
π的平均收益
r
(
π
)
r(\pi)
r(π):表示该策略的优劣,因此有
r
(
π
∗
)
≥
r
(
π
)
r(\pi^*)\geq r(\pi)
r(π∗)≥r(π),由于策略需要长时间间隔估计才能准确,因此需要求奖赏的期望如下:
r
(
π
)
=
lim
h
−
>
∞
1
h
∑
t
=
1
h
E
[
R
t
∣
A
0
:
t
−
1
∼
π
]
=
lim
t
−
>
∞
E
[
R
t
∣
A
0
:
t
−
1
∼
π
]
=
∑
s
μ
π
(
s
)
∑
a
π
(
a
∣
s
)
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
r
\begin{aligned} r(\pi)&=\displaystyle\lim_{h->\infty}\frac{1}{h}\sum_{t=1}^h\mathbb{E}[R_t|A_{0:t-1}\sim\pi]\\ &=\displaystyle\lim_{t->\infty}\mathbb{E}[R_t|A_{0:t-1}\sim\pi]\\ &=\displaystyle\sum_s\mu_{\pi}(s)\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)r \end{aligned}
r(π)=h−>∞limh1t=1∑hE[Rt∣A0:t−1∼π]=t−>∞limE[Rt∣A0:t−1∼π]=s∑μπ(s)a∑π(a∣s)s′,r∑p(s′,r∣s,a)r
上式第一步和第二步用到了数分中的平均极限定理。最后一步的
μ
π
\mu_\pi
μπ是一个稳态分布,稳态分布(steady state distribution)指的是原状态分布按照策略
π
\pi
π选择action,状态被采样或转移的概率不变。
∑
s
μ
π
(
s
)
∑
a
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
=
μ
π
(
s
′
)
\displaystyle\sum_s\mu_\pi(s)\sum_a\pi(a|s)p(s'|s,a)=\mu_\pi(s')
s∑μπ(s)a∑π(a∣s)p(s′∣s,a)=μπ(s′)
而给予稳态分布延伸出一个关于MDP的遍历性假设,每个策略
π
\pi
π均独立于初始状态
S
0
S_0
S0,这表示一个状态的期望只与
π
(
a
∣
s
)
\pi(a|s)
π(a∣s)和
p
(
s
′
,
r
∣
s
,
a
)
p(s',r|s,a)
p(s′,r∣s,a)有关。与
S
0
S_0
S0和早期决策无关。
μ
π
(
s
)
=
lim
t
−
>
∞
P
{
S
t
=
s
∣
A
0
:
t
−
1
∼
π
}
\mu_\pi(s)=\displaystyle\lim_{t->\infty}P\{S_t=s|A_{0:t-1}\sim\pi\}
μπ(s)=t−>∞limP{St=s∣A0:t−1∼π}
Differential Return(微分回报)
在平均收益设定中,回报
G
t
G_t
Gt是根据即时收益和平均收益的差来定义的:
G
t
=
R
t
+
1
−
r
(
π
)
+
R
t
+
2
−
r
(
π
)
+
R
t
+
3
−
r
(
π
)
+
.
.
.
G_t=R_{t+1}-r(\pi)+R_{t+2}-r(\pi)+R_{t+3}-r(\pi)+...
Gt=Rt+1−r(π)+Rt+2−r(π)+Rt+3−r(π)+...
上式被称为微分回报,对应one-step TD价值函数
v
π
(
s
)
v_\pi(s)
vπ(s)称为微分价值函数(differential value function),对应Bellman Equation如下:
v
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
=
E
[
R
t
−
r
(
π
)
∣
S
0
,
A
0
:
t
−
1
∼
π
]
=
∑
a
π
(
a
∣
s
)
∑
r
,
s
′
p
(
r
,
s
′
∣
s
,
a
)
[
r
−
r
(
π
)
+
v
π
(
s
′
)
]
\begin{aligned} v_\pi(s)&=\mathbb{E}_{\pi}[G_t|S_t=s]=\mathbb{E}[R_t-r(\pi)|S_0,A_{0:t-1}\sim\pi]\\ &=\displaystyle\sum_a\pi(a|s)\sum_{r,s'}p(r,s'|s,a)[r-r(\pi)+v_\pi(s')] \end{aligned}
vπ(s)=Eπ[Gt∣St=s]=E[Rt−r(π)∣S0,A0:t−1∼π]=a∑π(a∣s)r,s′∑p(r,s′∣s,a)[r−r(π)+vπ(s′)]
r
r
r为即时收益,
r
(
π
)
r(\pi)
r(π)为真实平均收益。
{
v
π
(
s
)
=
∑
a
π
(
a
∣
s
)
∑
r
,
s
′
p
(
r
,
s
′
∣
s
,
a
)
[
r
−
r
(
π
)
+
v
π
(
s
′
)
]
q
π
(
s
,
a
)
=
∑
r
,
s
′
p
(
s
′
,
r
∣
s
,
a
)
[
r
−
r
(
π
)
+
∑
a
′
π
(
a
′
∣
s
′
)
q
π
(
s
′
,
a
′
)
]
v
∗
(
s
)
=
max
a
∑
r
,
s
′
p
(
s
′
,
r
∣
s
,
a
)
[
r
−
max
π
r
(
π
)
+
v
∗
(
s
′
)
]
q
∗
(
s
,
a
)
=
∑
r
,
s
′
p
(
s
′
,
r
∣
s
,
a
)
[
r
−
max
π
r
(
π
)
+
max
a
′
q
∗
(
s
′
,
a
′
)
]
\begin{cases} v_\pi(s)=\displaystyle\sum_a\pi(a|s)\sum_{r,s'}p(r,s'|s,a)[r-r(\pi)+v_\pi(s')]\\ q_\pi(s,a)=\displaystyle\sum_{r,s'}p(s',r|s,a)[r-r(\pi)+\displaystyle\sum_{a'}\pi(a'|s')q_\pi(s',a')]\\ v_*(s)=\displaystyle\max_a\sum_{r,s'}p(s',r|s,a)[r-\max_\pi r(\pi)+v_*(s')]\\ q_*(s,a)=\displaystyle\sum_{r,s'}p(s',r|s,a)[r-\max_\pi r(\pi)+\max_{a'}q_*(s',a')] \end{cases}
⎩
⎨
⎧vπ(s)=a∑π(a∣s)r,s′∑p(r,s′∣s,a)[r−r(π)+vπ(s′)]qπ(s,a)=r,s′∑p(s′,r∣s,a)[r−r(π)+a′∑π(a′∣s′)qπ(s′,a′)]v∗(s)=amaxr,s′∑p(s′,r∣s,a)[r−πmaxr(π)+v∗(s′)]q∗(s,a)=r,s′∑p(s′,r∣s,a)[r−πmaxr(π)+a′maxq∗(s′,a′)]
具体实现时,
r
(
π
)
r(\pi)
r(π)由于无法估计全局平均奖赏而只能不断迭代得到,所以是
r
t
(
π
)
r_t(\pi)
rt(π)不是
r
(
π
)
r(\pi)
r(π)。即
R
‾
t
\overline{R}_t
Rt,它是时刻
t
t
t对平均收益
r
(
π
)
r(\pi)
r(π)的估计。对于两类TD Error的微分方式以及w的更新如下:
{
δ
t
=
R
t
+
1
−
R
‾
t
+
1
+
v
^
(
S
t
+
1
,
w
t
)
−
v
^
(
S
t
,
w
t
)
w
t
+
1
=
w
t
+
α
δ
t
∇
q
^
(
S
t
,
w
t
)
\begin{cases} \delta_t=R_{t+1}-\overline{R}_{t+1}+\hat{v}(S_{t+1},w_t)-\hat{v}(S_t,w_t)\\ w_{t+1}=w_t+\alpha\delta_t\nabla\hat{q}(S_t,w_t)\\ \end{cases}
{δt=Rt+1−Rt+1+v^(St+1,wt)−v^(St,wt)wt+1=wt+αδt∇q^(St,wt)
以及
{
δ
t
=
R
t
+
1
−
R
‾
t
+
1
+
q
^
(
S
t
+
1
,
A
t
+
1
,
w
t
)
−
q
^
(
S
t
,
A
t
,
w
t
)
w
t
+
1
=
w
t
+
α
δ
t
∇
q
^
(
S
t
,
A
t
,
w
t
)
\begin{cases} \delta_t=R_{t+1}-\overline{R}_{t+1}+\hat{q}(S_{t+1},A_{t+1},w_t)-\hat{q}(S_t,A_t,w_t)\\ w_{t+1}=w_t+\alpha\delta_t\nabla\hat{q}(S_t,A_t,w_t) \end{cases}
{δt=Rt+1−Rt+1+q^(St+1,At+1,wt)−q^(St,At,wt)wt+1=wt+αδt∇q^(St,At,wt)
放弃使用Discounted Setting
略
微分Semi-SGD n-step Sarsa Control
将one-step扩展到n-step后的回报计算如下
G
t
:
t
+
n
=
R
t
+
1
−
R
‾
t
+
1
+
R
t
+
2
−
R
‾
t
+
2
+
.
.
.
+
R
t
+
n
−
R
‾
t
+
n
+
q
^
(
S
t
+
n
,
A
t
+
n
,
w
t
+
n
−
1
)
G_{t:t+n}=R_{t+1}-\overline{R}_{t+1}+R_{t+2}-\overline{R}_{t+2}+...+R_{t+n}-\overline{R}_{t+n}+\hat{q}(S_{t+n},A_{t+n},w_{t+n-1})
Gt:t+n=Rt+1−Rt+1+Rt+2−Rt+2+...+Rt+n−Rt+n+q^(St+n,At+n,wt+n−1)
其中,
R
‾
\overline{R}
R是对
r
(
π
)
r(\pi)
r(π)的估计,
n
≥
1
n\geq1
n≥1且
t
+
n
<
T
t+n<T
t+n<T。如果
t
+
n
≥
T
t+n\geq T
t+n≥T,和往常一样定义
G
t
:
t
+
n
=
G
t
G_{t:t+n}=G_t
Gt:t+n=Gt。n-step TD Error则变为:
δ
t
=
G
t
:
t
+
n
−
q
^
(
S
t
,
A
t
,
w
)
\delta_t=G_{t:t+n}-\hat{q}(S_t,A_t,w)
δt=Gt:t+n−q^(St,At,w)