policy gradient为什么要减去一个均值 baseline

因为对于不同的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所对应的actionQ(s,a)

给个直观的例子,在s1a1,a2,a3对应的Q分别是200,210,220,在s2a1,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,5s2Q值减去baseline得到的,因为是不同的state,减去不同的baselinereasonable的)

你可能感兴趣的:(policy gradient为什么要减去一个均值 baseline)