直接说结论:PPO算法属于on-policy。这个问题讨论很多,说下个人看法。
PPO继承于TRPO,PPO1和PPO2版本又不一样,以下只讨论使用clip的PPO2。
先引用Spinning up中的说明:
PPO is motivated by the same question as TRPO: how can we take the biggest possible improvement step on a policy using the data we currently have, without stepping so far that we accidentally cause performance collapse?
白话翻译:怎么充分学习利用当前样本来最大限度地提升策略(高效性),并保证策略是稳定提升的(安全性)。
- 在整个训练的宏观视角下,PPO仅仅学习当前策略产生的样本,学完之后丢弃,这是on-policy的最大体现。
- 在样本学习的微观视角下,PPO对当前策略产生的样本进行多轮学习,充分挖掘样本学习潜能,提高样本利用率,并加入clip保证策略提升稳定。
所以PPO算法是从on-policy出发,放宽了对目标策略和行为策略的严格约束,提高了on-policy的样本利用率,并加入clip来保证策略是可以稳定提升的。