个人理解:
AC+advantage = A2C
A2C+重要性采样+TD(n) = PPO
A2C:
所谓A2C就是在AC的基础上加了一个Advantage,公式有如下改进:
但是Q可以由V计算而来,因此转变位:
目的在于:给Q值增加一个基线,使得反馈有正有负,会增大方差,但是模型训练更合理。
参考:
PPO:
PPO算法有三个重点:
1.可以输出连续的控制信号,比如输出正太分布的均值和方差作为一个连续动作的动作概率
2.将PG的在线学习,改成离线学习,提高数据的利用率。
具体方法是使用重要性采样,将不同动作的TD-Error加上一个动作的概率,然后乘以不同策略反馈的梯度,从而可以用不同阶段策略的数据更新本阶段的模型。
3.N-step参数更新方式。
原本的AC模型中,使用0阶的TD-Error更新模型,前向探索能力不足,使用N步之后的TD-Error可以更有效的获取动作的好坏。
调参技巧:
PPO算法玩Atari游戏的时候,论文中默认使用的skip是4,但在一些动作较快的游戏中,比如Breakout-v0中,每一帧都有用,使用skip=1效果更好。
Breakout-v0 | 训练5000次的平均分 |
skip=1 | 55 |
skip=4 | 21 |
算法实现:
参考资料: