1. 批量式策略评估方法的缺陷
上一篇讨论的批量式策略评估方法表明,只有当全部K个完整轨迹存储后才能对Q(s,a)进行一次估计。
这在实际中存在如下缺陷:
- 存储空间消耗大:所存储的轨迹数K越大,每个轨迹的步长 L k L_k Lk越大,存储空间消耗就越大;
- CPU消耗过于集中:在多个轨迹收集完后,才集中进行一次估计,相当于把计算负担加到一个时间点上,使得在特定时间点CPU消耗太大。
为克服批处理方法的缺陷,可以使用增量式方法估计 Q ( s , a ) Q(s,a) Q(s,a)
2.什么是增量式方法
每当获得一个完整的轨迹后,就对行为值函数进行一次更新的方法
3.增量式策略评估算法流程
3.1 输入
环境E、状态空间S、动作空间A,初始化行为值函数 Q ( s , a ) = 0 Q(s,a)=0 Q(s,a)=0,当前策略 π \pi π,步长 α ∈ ( 0 , 1 ) \alpha\in(0,1) α∈(0,1)
3.2 处理过程
for k = 1…m do
\qquad
按照策略
π
\pi
π与E产生完整轨迹
[
(
s
0
,
a
0
,
r
1
)
,
(
s
1
,
a
1
,
r
2
)
,
.
.
.
,
(
s
T
,
a
T
,
r
T
+
1
)
]
[(s_0,a_0,r_1),(s_1,a_1,r_2),...,(s_T,a_T,r_{T+1})]
[(s0,a0,r1),(s1,a1,r2),...,(sT,aT,rT+1)]
\qquad
for
i
=
1...
T
+
1
i = 1...T+1
i=1...T+1 do
r
i
←
G
i
=
∑
n
=
i
T
+
1
γ
n
−
i
r
i
\qquad\qquad r_i\leftarrow G_i=\sum_{n=i}^{T+1}\gamma^{n-i}r_i
ri←Gi=∑n=iT+1γn−iri
Q
(
s
i
,
a
i
)
←
Q
(
s
i
,
a
i
)
+
α
(
G
i
−
Q
(
s
i
,
a
i
)
)
\qquad\qquad Q(s_i,a_i)\leftarrow Q(s_i,a_i)+\alpha (G_i-Q(s_i,a_i))
Q(si,ai)←Q(si,ai)+α(Gi−Q(si,ai))
3.3 输出
Q ( s , a ) Q(s,a) Q(s,a)