强化学习Actor Critic编程学习

378 阅读1分钟

算法介绍

结合了 Policy Gradient (Actor) 和 Function Approximation (Critic) 的方法. Actor 基于概率选行为, Critic 基于 Actor 的行为评判行为的得分, Actor 根据 Critic 的评分修改选行为的概率.

Actor Critic 方法的优势: 可以进行单步更新, 比传统的 Policy Gradient 要快.

Actor Critic 方法的劣势: 取决于 Critic 的价值判断, 但是 Critic 难收敛, 再加上 Actor 的更新, 就更难收敛.所以改进为DDPG

算法原理

【强化学习导论第十三章】

【REINFORCE-with-baseline】里就用到了value function:

加入 baseline 不会对期望有任何影响,但能够减小方差。常用的选择是将\hat{v}(S_{t},w) 作为 baseline ,好处是无需做别的计算,利用现有的量就能同时更新 \thetaw

但是这个不是真正得actor-critic方法:因为这个 value function 仅仅是用作 baseline ,而没起到 critic 的用处,具体而言,即是它没有用来做 bootstrapping

区别在于:引入没做bootstrapping的value function来做baseline,可以降低方差,提高学习速率,而【REINFORCE-with-baseline】是MC方法,方差较大,学习速率慢且不太适合处理在线学习/连续型问题。

所以我们引入可以解决上述问题的TD更新模式,也就是【actor-critic】方法,critic中的value function是有在做bootstrapping更新的

首先考虑 one-step actor-critic methods ,将 full return 替换为 one-step return:

总结以下actor-critic和policy-gradiant的区别之处:

  • 回合制更新转变为单步更新,G_{t}变为了'TD-error'
  • 两个神经网络结构:actor 和 critic(可进行修改,就变成了DDPG了)

编程实现

build_net