宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

什么是PPO

是一种off-policy 的 policy gradient。
PPO enables multiple epochs of minibatch updates.

Importance Sampling

image-20211222101116214

可以在q的distribution里sample data,不用直接从p里sample data。
但是得乘上一个weight,这个weight就是\(\frac{p(x)}{q(x)}\)

Issue:

初识Proximal Policy Optimization (PPO)-风君雪科技博客
Mean一样但是Variance不一定是一样的。
\(\frac{p(x)}{q(x)}\)比较大的时候,两个的方差会差很多。
如果sample的次数不够多,那么Mean和Variance可能都会差很多。

On-policy to Off-policy

image-20211222103325439

上面是On-policy,下面是Off-policy。
主要是要用红框里的weight去做修正。

trajectory分别在两个distribution中出现的概率。

Gradient for Update:

初识Proximal Policy Optimization (PPO)-风君雪科技博客
实际上得到的A,应该是\(\theta’\)的,因为在\(\theta’\)中sample。
\(\frac{p_{\theta}(s_t)}{p_{\theta’}(s_t)}\):很难算,而且两个应该要比较近似,所以删去这一项。
利用上面那个式子可以得到似然函数。HOW?

Add Constraint

避免两个distribution差太多,加constraint。
K-L Divergence: KL散度,量化两种概率分布之间差异的方式。

\(D_{KL}(p||q)=\sum_{i=1}^Np(x_i)\cdot log \frac{p(x_i)}{q(x_i)}\)

TRPO and PPO

TRPO是PPO的前身。
image-20211222112051261

用KL divergence作为一个penalty,而不是像TRPO那样用constraint,希望减小KL散度,希望学出来的两个不要太不一样。
TRPO和PPO只是KL散度放的地方不一样。
TRPO和PPO可能效果差不多,但是PPO在实操的时候更加容易。

这里KL散度不是参数上的举例,而是behavior上的距离。

给同个state的时候,output action distribution的差距。

PPO Algorithm

PPO1算法

初识Proximal Policy Optimization (PPO)-风君雪科技博客
Adaptive KL Penalty Coefficient:KL Penalty是可以动态调整的,你自己先设置一个你能接受的KL最小值和最大值。

KL大于最大值,就增加β。
KL小于最小值,就减小β。
image-20211222144239191

PPO2算法

初识Proximal Policy Optimization (PPO)-风君雪科技博客
PPO1使用KL散度,PPO2就不用KL散度了。
Clip:

image-20211222113208840

image-20211222113512647

Pseudo Code

image-20211222145001150

Reference

李宏毅的2021春机器学习课程视频
Proximal Policy Optimization Algorithms:http://arxiv.org/abs/1707.06347