一、PPO
由于PG算法加入了重要度采样,因此需要考虑到两个策略不能差异过大,而PPO就是来解决该问题的。为了衡量两个策略有多像,我们提出了下式控制元素:
该元素表示的含义在于给出同样地状态值s,两个策略所产生的动作之间的差距。将该元素用于目标函数J中
那么结合(一)(二)两课笔记我们可以梳理出来PPO的整体运行流程为:
由于重要度采样方法存在,这里的θ可以多次使用θ'的采样数据进行更新。那么如果两个参数pθ与pθ'真的差异很大了怎么办呢?我们以本文开头的KL散度为依据,通过改变β来控制:
二、 PPO2
PPO算法在KL散度方面仍然具有计算复杂的问题,PPO2采用下式减轻了计算量。
该式中clip(p1, p2, p3)的含义在于:取值只能在p2~p3之间,也就是说当p1<p2时输出p2,p1>p3时输出p3,当p1∈[p2, p3]之间时输出p1。用函数图像表示clip的话就是下图,横轴为pθ/pθ':
此时结合全式来看,加入的绿色虚线表示的是pθ/pθ'。那么全式中要取最小min的话,就为A>0与A<0两种情况,下图红线表示取最小min时pθ/pθ'的情况: