算法学习(十七)——A2C和PPO

个人理解:

AC+advantage = A2C

A2C+重要性采样+TD(n) = PPO

A2C:

所谓A2C就是在AC的基础上加了一个Advantage,公式有如下改进:

算法学习(十七)——A2C和PPO_第1张图片

但是Q可以由V计算而来,因此转变位:

算法学习(十七)——A2C和PPO_第2张图片

目的在于:给Q值增加一个基线,使得反馈有正有负,会增大方差,但是模型训练更合理。

参考:

强化学习AC、A2C、A3C算法原理与实现! - 知乎作者:石晓文 Python爱好者社区专栏作者 个人公众号:小小挖掘机 添加微信sxw2251,可以拉你进入小小挖掘机技术交流群哟! 博客专栏:wenwen跟着李宏毅老师的视频,复习了下AC算法,新学习了下A2C算法和A3C算法,…https://zhuanlan.zhihu.com/p/51645768

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

算法实现:

GitHub - ikostrikov/pytorch-a2c-ppo-acktr-gail: PyTorch implementation of Advantage Actor Critic (A2C), Proximal Policy Optimization (PPO), Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation (ACKTR) and Generative Adversarial Imitation Learning (GAIL).

参考资料:

如何直观理解PPO算法?[理论篇]

如何直观理解PPO算法[实战篇](附代码及代码解释)

你可能感兴趣的:(强化学习,算法,机器学习,pytorch)