PPO算法主要用于处理连续问题。
为什么提出?
本质是PG的一种延伸,在PG算法中学习效率难控制。如果过小,更新过慢,如果过大,更新幅度太大,会振荡,导致无法收敛。PPO基于此问题而提出,限制新策略的更新幅度。
PPO原理
通过伪代码,我们可以宏观看出其整体的思路。
伪代码
上图给出了PPO的简化伪代码,由于过于简单,
下面将网络更新分为三部分:
1、Actor网络更新:(值得说明)
第一项:新老policy的差距比例,差距越大,比例越大,更新幅度越大。优势函数的估计At_hat代表更新新策略的一个优势有多大。
第二项:惩罚项,限制了新老策略在差距较大时候的更新幅度。
2、Critic网络更新:
与大多数Critic网络的更新基本一致。
参考链接
@莫烦Python:https://www.bilibili.com/video/BV13W411Y75P?p=31&vd_source=948922ca6cec08e5d3c66940b4746f64