PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛。
Actor-critic方法呢是一种将 策略(Policy Based)和价值(Value Based)相结合的方法。下面继续来理一下AC方法的思路!
Actor-Critic算法包括两部分,Actor网络使用PG里的策略函数,负责生成动作,和环境交互,Critic网络使用价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。
PG中我们用的是蒙特卡罗法来计算每一步的价值部分替代Critic的功能,现在我们在AC中用类似于DQN中的价值函数来替代蒙特卡罗法。
汇总来说,就是Critic通过Q网络计算状态的最优价值vt, 而Actor利用vt这个最优价值迭代更新策略函数的参数θ,进而选择动作,并得到反馈和新的状态,Critic使用反馈和新的状态更新Q网络参数w, 在后面Critic会使用新的网络参数w来帮Actor计算状态的最优价值vt。
AC算法的主要缺点在于:无论怎么调参,算法都很难收敛。故后面引入A3C就是为了解决这个问题
重点参考下一篇:AC的注释版本