因为对于不同的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的)