状态值函数在强化学习中一直扮演者“价值评估”的角色,这有点像深度学习训练中所采用的误差函数。
在当前策略
π
\pi
π下,假设我们获得了K条完整轨迹数据
[
(
s
k
,
0
,
a
k
,
0
,
r
k
,
1
)
,
?
?
,
(
s
k
,
L
k
,
a
k
,
L
k
,
r
k
,
L
k
+
1
)
,
(
s
T
,
a
k
,
L
k
+
1
,
r
k
,
L
k
+
2
)
]
 ̄
,
k
=
0
,
1
,
?
?
,
K
?
1
\underline{[(s_{k,0},a_{k,0},r_{k,1}),\cdots,(s_{k,L_k},a_{k,L_k},r_{k,L_k+1}),(s_T,a_{k,L_k+1},r_{k,L_k+2})]},k=0,1,\cdots,K-1
[(sk,0?,ak,0?,rk,1?),?,(sk,Lk??,ak,Lk??,rk,Lk?+1?),(sT?,ak,Lk?+1?,rk,Lk?+2?)]?,k=0,1,?,K?1
则估计V(s)的批处理算法流程如下:
初访法(first-visit)
V(s)=全部轨迹中状态值首次等于s的所有三元组中的累积回报的均值
每访法(every-visit)
V(s)=全部轨迹中状态值等于s的所有三元组中的累积回报的均值
根据大数定律可知:如果求一个状态的累积回报时,找到的状态值为s的三元组的个数越多,所得的均值越接近V(s)真实值。