1.Actor-Critic框架的提出
从策略梯度中可以看出,累积回报
其中
前三个直接应用轨迹的回报累积回报,由此计算出来的策略梯度不存在偏差,但是由于需要累积多步的回报,因此方差会很大。后三个利用动作值函数,优势函数和TD偏差代替累积回报,其优点是方差小,但是这三种方法中都用到了逼近方法,因此计算出来的策略梯度都存在偏差。这三种方法以牺牲偏差来换取小的方差。当
Actor为策略函数,经常用神经网络来表示,因此称为策略网络。Critic为评价函数,也常常用神经网络进行逼近,它的参数常用
当
策略网络部分的更新:
2.A2C算法
A2C全称为优势动作评论算法(Advantage Actor Critic)。
A2C使用优势函数代替Critic网络中的原始回报,可以作为衡量选取动作值和所有动作平均值好坏的指标。
什么是优势函数?
状态值函数
优势函数
如果优势函数大于零,则说明该动作比平均动作好,如果优势函数小于零,则说明当前动作还不如平均动作好。
3.A3C算法
A3C全称为异步优势动作评价算法(Asynchronous advantage actor-critic)。
前文讲到,神经网络训练时,需要的数据是独立同分布的,为了打破数据之间的相关性,DQN和DDPG的方法都采用了经验回放的技巧。然而经验回放需要大量的内存,打破数据的相关性,经验回放并非是唯一的方法。另外一种是异步的方法,所谓异步的方法是指数据并非同时产生,A3C的方法便是其中表现非常优异的异步强化学习算法。
A3C模型如下图所示,每个Worker直接从Global Network中拿参数,自己与环境互动输出行为。利用每个Worker的梯度,对Global Network的参数进行更新。每一个Worker都是一个A2C。
A3C的伪代码如图所示:
参考博客:
天津包子馅儿:Actor-Critic算法小结
相关论文:
https://arxiv.org/pdf/1602.01783.pdf