Proximal Policy Optimization

  PP是OpenAI默认的强化学习算法。

2.1 Review on PG

基本组成部分

策略π是一个关于参数θ的网络

  • 输入:机器所观察到的内容,表示成一个向量或矩阵
  • 输出:每个动作对应于输出层的一个神经元
轨迹 τ={s1,a1,s2,a2,,sT,aT} pθ(τ)=p(s1)pθ(a1s1)p(s2s1,a1)pθ(a2s2)p(s3s2,a2)=p(s1)t=1Tpθ(atst)p(st+1st,at)
expected reward R¯θ=τR(τ)pθ(τ)=Eτpθ(τ)[R(τ)]

  要使期望奖励最大,利用梯度上升法来更新参数。

policy gradient Rθ¯=τRτpθ(τ)=τRτpθ(τ)logpθ(τ)=Eτpθ(τ)[Rτlogpθ(τ)]1Nn=1NR(τn)logpθ(τn)=1Nn=1Nt=1TnR(τn)logpθ(atnstn)

2.1.1 Implementation

  如果从分类问题的角度看,将状态作为输入,每个行为看作是一个标签,那么输出就应该是每种类型对应的概率。可以看出,强化学习的过程相比于分类问题多了一个total reward。

2.1.2 Tips

1. Add a baseline

  可能存在R(τn)一直为正的情况(e.g. 打乒乓球),所以需要减去一个b

θnewθold+ηR¯θoldRθ¯1Nn=1Nt=1Tn(R(τn)b)logp(atnstn,θ)bE[R(τ)]
蓝色柱状面积表示概率大小,绿色的箭头长度表示奖励大小

2. Assign suitable credit

  在一个episode中,可能有好的action和不好的action,一个trajectory得到的total reward高并不能代表所有的action都很好。如果我们可以采样足够多次,那么就可以避免这个问题。但是,现在我们的采样次数有限,所以要给每个action一个credit,将total reward改为从某个行为被执行后累计的reward,并添加折扣因子。

2.2 On-policy → Off-policy

  • On-policy:学习到的agent和与环境交互的agent是同一个
  • Off-policy:学习到的agent和与环境交互的agent是不同的
Rθ¯=Eτpθ(τ)[Rτlogpθ(τ)]
  • 用策略πθ收集数据,当θ被更新时,必须要重新采样训练数据
  • 目标:用从策略πθ的采样来训练θθ是固定的,所以其采样数据可以重用。

重要性采样

  理论上,两个概率分布的期望是一样的,但是方差不一样。所以要有足够多的样本,并且两个概率分布的差距不能太大。

利用重要性采样R¯θ=Eτpθ(τ)[R(τ)logpθ(τ)]=Eτpθ(τ)[pθ(τ)pθ(τ)R(τ)logpθ(τ)],从θ采样数据,多次训练θ

目标函数可以写成Jθ(θ)==E(st,at)πθ[pθ(atst)pθ(atst)Aθ(st,at)]

2.3 Add Constraint

  因为重要性采样要求两个概率分布的差距不能太大,在PPO (Proximal Policy Optimization)中增加了一个KL(θ,θ)的约束

JPPOθ(θ)=Jθ(θ)βKL(θ,θ)Jθ(θ)=E(st,at)πθ[pθ(atst)pθ(atst)Aθ(st,at)]

  在TRPO (Trust Region Policy Optimization)中,这个约束的位置和PPO不一样。两种方法的效果相差不大,但是PPO更容易实现。

JPPOθ(θ)=E(st,at)πθ[pθ(atst)pθ(atst)Aθ(st,at)]KL(θ,θ)δ
注意

这里的KL距离(相对熵)指的是action的距离(即在两种概率分布下action出现的概率要相似),而不是指参数θ的距离。

2.3.1 PPO algorithm

  • 初始化策略参数θ0
  • 在每次迭代中
     用θk和环境交互收集{st,at}并计算advantage Aθk(st,at)
     找出能最优化JPPO(θ)θ

2.3.2 PPO2 algorithm

JPPO2θk(θ)(st,at)min(pθ(atst)pθk(atst)Aθk(st,at),clip(pθ(atst)pθk(atst),1ε,1+ε)Aθk(st,at))
红色实现为目标函数,绿色虚线为第一项,蓝色虚线为第二项

2.3.3 Experimental results

参考文献:Proximal Policy Optimization Algorithms

Comparison of several algorithms on several MuJoCo environments, training for one million timesteps