论文地址
基本思路就是
\(Q(s,a)\)的值既和state有关,又和action有关。但是两种"有关"的程度不一样,或者说影响力不一样。
对于\(Q(s,a)\) 我们希望它能反应出两个方面的差异。
- 对于当前状态s,能够很好的区分不同action的影响
- 对于不同状态s,能够很好的区分不同state的影响
\(Q(s,a;\theta,\alpha, \beta) = V(s;\theta,\beta) + A(s,a;\theta,\alpha)\)
但是只使用上面的公式,神经网络可能会达不到我们想要的结果,我们不能直接接触到\(V,A\),只是得到的他们的和(结果很可能就跟DQN是一样的)。但是我们希望A能够体现动作对value 的影响 ,V 能够体现状态对value的影响。
所以将公式改为下面这样。这样\(Q(s,a_*)=V(s)\),这样V就真的反应了状态值,A就是体现不同action 的advantage
\(Q(s,a;\theta,\alpha, \beta) = V(s;\theta,\beta) + (A(s,a;\theta,\alpha)-\underset{a'\in |A|}{max}A(s,a';\theta,\alpha))\)
另一种方式如下,这种方式,V不能体现state value 但是只是一个小小的偏移,论文中说这样的实现更加稳定,效果基本相同。
\(Q(s,a;\theta,\alpha, \beta) = V(s;\theta,\beta) + (A(s,a;\theta,\alpha)-\frac{1}{|A|}\sum_{a'\in |A|}A(s,a';\theta,\alpha))\)