因为对于不同的state
网络估计的reward
值相差很大,而本质上来说reward
可以看做是更新的步长,所以我们要求,训练的时候至少更新的步长是差不多的,这样才能高效的进入极值点。
- 那
baseline
是怎么降低variance
的呢?
首先是经典解释方法,我们常把V(s)
当做baseline
,也就是average_a{Q(s,a)}
当做baseline
,这意味着Q(s,a)
大于V(s)
所对应的a
对π(a|s)
有提升作用,Q(s,a)
小于V(s)
所对应的a
对π(a|s)
有降低作用,尽管不同的a
对应的long time return
都是正值。
- 其次,
baseline
降低variance
可以从全局考虑,而不是局限于某一个state
所对应的action
的Q(s,a)
。
给个直观的例子,在s1
下a1,a2,a3
对应的Q
分别是200,210,220
,在s2
下a1,a2,a3
对应的Q
分别是105,110,115
;如果只是单纯的考虑某一个state
,比如s1
,那么200,210,220
和-10,0,10
(减去baseline=210
后得到)这两组数据的variance
其实是一样的;相反,如果从全局考虑,既考虑多个状态,那么200,210,220,105,110,115
和-10,0,10,-5,0,5
这两组数据的variance
显然后者更小。(注意,-5,0,5
是s2
下Q
值减去baseline
得到的,因为是不同的state
,减去不同的baseline
是reasonable
的)