前言

PPO是目前最好用的on-policy的算法,之前想学TRPO发现太复杂了,这里开个新坑

替代优势

首先,考虑一个问题,对于策略参数 更新为参数 的时候,到底带来了多少优势

定义优势函数为:

而替代优势可以写为:

如果引入无限长度的折扣分布,那么上面的式子可以把期望展开成:

由于我们希望这里面两个策略离得非常近,所以使用 来代替 上面的式子变成


重新把这个式子写成期望的形式:

后面那一项被称为替代优势,即:

PPO Penalty

这里面的想法很简单,使用下面这个式子来控制梯度的调整:

这里面的 通过检查目标散度与实际的KL散度的大小来更新,如果更新的KL大于设定值的1.5倍则倍增 来惩罚,如果小于一半则 减半来扩大信赖域