两者的神经网络结构一模一样,都是分为两个网络,即策略神经网络和价值神经网络。但是两者的区别在于价值神经网络的作用不同,A2C中的可以评价当前状态的好坏,而REINFORCE中的
只是作为一个Baseline而已,唯一作用就是降低随机梯度造成的方差。
A2C算法的改进:
用multi-step TD target来改进A2C算法,因为之前计算TD target只用到一个奖励,所以是one step TD target。用multi-step TD target就是指计算TD target时里面包含多个奖励。
multi-step TD target就是观测m个transition,然后来计算TD targrt,最后得到修改后的算法:
REINFORCE with Baseline:
步骤:
1.完成一次训练,观测到一条轨迹,包括所有的状态,动作,以及奖励。
2.然后用观测到的奖励来计算回报,是从t时刻开始,所有奖励的加权和,
是完全真实观测到的,和TD target是不一样的。
3.计算error,是价值网络的预测值与的差,不是TD error,但是和TD error很像。
4.用策略梯度来更新策略网络。
5.做梯度下降来更新价值网络。
区别:
经过比较A2C和REINFORCE with Baseline的主要区别就是这两步: